Python program that searches for provided keywords on local file hscic-news containing a list of News Articles.
The program can be executed with the following command:
python NewsSearch.py [-h] keyword_list [keyword_list ...] {and,or,AND,OR}
where [keyword_list ...\]
is the list of keywords to search, separated by whitespace ( ), followed by the type of search, AND
or OR
. Both lower-case and upper-case versions are valid.
Running the following
NewsSearch.py [-h]
will display the usage information on the console.
To search for September AND 2004:
python NewsSearch.py September 2004 AND
the output should be the following:
[9]
to search for the words June, July OR December:
pyton NewsSearch June July December or
with the result
[0, 1, 2, 3, 4, 8]
It was assumed that the search is case-sensitive. This way searching for september
should return different results than searching for September
.
No major performance considerations were taken over code simplicity and readability. It was assumed that the file and set operations have no negative impact on the desired performance.
The provided acceptance criteria were implemented as unit tests on the file NewsSearchTest.py. Two extra negative tests were added as first TDD iterations.
To execute the unit tests simply run
python NewsSearchTest.py
and the output should be:
.......
----------------------------------------------------------------------
Ran 7 tests in 0.010s
OK