Technical test for a job interview.
1# Current state
2Reads a string of words referring to a numeral and prints the digit equivalent.
3
4For example:
5`./bin/main "two hundred thousand, four hundred forty"` prints *200440*.
6
7# To do
8
9## Mixed text reading
10- Expect to read a mixed text (numeral and plain text mixed together), maybe as a file or as a direct input
11- Separate said mixed text into a list of chunks of pure plain text, and pure numeral string of words
12- Split the list of chunks in 2 recursively
13- For each leaf (chunk), evaluate the chunk (plain text evaluates to itself; numeral string evaluates to the equivalent integer value, converted back into a string)
14- At every split, concatenate evaluations of both branches
15- Parallelize on each split
16
17## Proper testing
18- Move the collection of assert calls & cout calls, away from the main file into proper test files
19- End goal: use GTest
20
21## Cleanup
22- Add const keywords to non-modified arguments (like the "text" in the NumeralManager::analyze_numeral, or the "words" in the Trie operations)
23- Properly alter types to better match their functions (like adding "unsigned" to many "pos" int arguments)
24- Better implement the language-agnostic setup (make NumeralManager to read from a file, instead of having a separate .cpp file only with the "language_setup" function)
25- Error handling
26- Make the whole CLI interface (help/usage tooltip message, options to read a [list of] string[s] or a [list of] file[s], ...)
27- Proper CMake configuration instead of a modified version of a Makefile generated at the beginning