{"id":21094471,"url":"https://github.com/innerjoin/cpp-testat2","last_synced_at":"2025-07-20T10:33:59.830Z","repository":{"id":86104471,"uuid":"45986700","full_name":"innerjoin/CPP-Testat2","owner":"innerjoin","description":"KWIC algorithm implementation","archived":false,"fork":false,"pushed_at":"2015-12-14T07:46:52.000Z","size":7,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-14T07:09:58.001Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/innerjoin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-11-11T14:30:40.000Z","updated_at":"2015-12-14T07:48:24.000Z","dependencies_parsed_at":"2023-03-17T12:46:14.125Z","dependency_job_id":null,"html_url":"https://github.com/innerjoin/CPP-Testat2","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/innerjoin/CPP-Testat2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innerjoin%2FCPP-Testat2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innerjoin%2FCPP-Testat2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innerjoin%2FCPP-Testat2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innerjoin%2FCPP-Testat2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/innerjoin","download_url":"https://codeload.github.com/innerjoin/CPP-Testat2/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innerjoin%2FCPP-Testat2/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266111439,"owners_count":23877980,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T22:17:36.864Z","updated_at":"2025-07-20T10:33:59.775Z","avatar_url":"https://github.com/innerjoin.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CPP-Testat2\nMy personal solution for the second 'Testat' @ HSR Hochschule für Technik Rapperswil. There is still room for some improvement, but that this solution can be considered save to pass the review.\n\n# Reqirements\nFrom Parnas [ Parnas72 ] we have a concise definition of the Keyword in Context problem:\n\n\u003e The KWIC index system accepts an ordered set of lines, each line is an ordered set of words, and each word is an ordered set of characters. Any line may be \"circularly shifted\" by repeatedly removing the first word and appending it at the end of the line. The KWIC index system outputs a listing of all circular shifts of all lines in alphabetical order. \n\nWrite a program kwic that reads lines from standard input and creates the variations of the line where each word is in front once. Output the stored lines in sorted order, so that you can see, how the words are used in context.\n\nExample input:\n\u003e this is a test \u003cbr\u003e\n\u003e this is another test\n\nresult:\n\u003e a test this is \u003cbr\u003e\n\u003e another test this is \u003cbr\u003e\n\u003e is a test this \u003cbr\u003e\n\u003e is another test this \u003cbr\u003e\n\u003e test this is a \u003cbr\u003e\n\u003e test this is another \u003cbr\u003e\n\u003e this is a test \u003cbr\u003e\n\u003e this is another test \u003cbr\u003e\n\n### Tipps:\n\n  - use algorithms rotate or rotate_copy to generate the word lists for each line.\n  - You must use your word class from ExW6 to be able to ignore punctuation and case of the letters.\n  - Use the appropriate data structures to achieve the result without unnecessary code or loops.\n  - In addition to the test of your word class you can also separate your logic into independently testable functions, provide the tests and your main() function. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finnerjoin%2Fcpp-testat2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finnerjoin%2Fcpp-testat2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finnerjoin%2Fcpp-testat2/lists"}