# Test Cases: Optional AND Input and Output Handling

This post is part of the Alphanumeric Calculator program group.

Test cases to validate handling of optional "and" in english numeric expressions.

Use of "and" in input stream is always optional. For example, either of these basic forms is allowed:

By default output follows input usage per expression - if "and" appears in the input stream then the output stream will also include "and" as appropriate.

The user may also enable/disable "and" in the output stream for all expressions by typing "and" as the only word on an input line.

Test cases input file:

And the results using Rev.3 lexer/parser as posted to this blog.

Test cases to validate handling of optional "and" in english numeric expressions.

Use of "and" in input stream is always optional. For example, either of these basic forms is allowed:

Code:

one thousand one hundred one one thousand one hundred and one

The user may also enable/disable "and" in the output stream for all expressions by typing "and" as the only word on an input line.

Test cases input file:

Code:

cat tests_optand /* Test optional "and" input and output handling. The "specification" is what sounds right to myself and others who have commented, but in the absence of any linguistic definition, "how it works" should be taken as the actual spec - feel free to add your own rules! Note: Output handling is slightly more strict than input handling, so that some output usage may differ from input usage - but all output strings are valid when used as input. */ ######## Output follows input usage - 1 is No input AND, 2 is input stream AND one hundred three thousand one hundred three one hundred and three thousand one hundred three ######## Toggle default output AND state with same input one million one hundred twenty one thousand three and one million one hundred twenty one thousand three and one million one hundred twenty one thousand three ######## Single digit tail with successive left-most multipliers and one twenty one one hundred one one thousand one one million one one billion one ######## Double digit tail with successive left-most multipliers eleven twenty one one hundred twenty one one thousand twenty one one million twenty one one billion twenty one ######## Single digit term in successive left-most multipliers one hundred one one hundred one thousand one hundred one million one hundred one billion ######## Double digit term in successive left-most multipliers one hundred twenty one one hundred twenty one thousand one hundred twenty one million one hundred twenty one billion ######## Cumulative multiplier terms one hundred billion one hundred million one hundred thousand one hundred one hundred one billion one hundred one million one hundred one thousand one hundred one ######## Invalid use of AND in input stream one hundred and zero one thousand and one hundred one thousand and one hundred and one one thousand one hundred and zero one million and one thousand and one hundred

Code:

./alphacalc tests_optand -c ######## Output follows input usage - 1 is No input AND, 2 is input stream AND one hundred three thousand one hundred three one hundred and three thousand one hundred and three ######## Toggle default output AND state with same input one million one hundred twenty one thousand three one million one hundred and twenty one thousand and three one million one hundred twenty one thousand three ######## Single digit tail with successive left-most multipliers one twenty one one hundred and one one thousand and one one million and one one billion and one ######## Double digit tail with successive left-most multipliers eleven twenty one one hundred and twenty one one thousand and twenty one one million and twenty one one billion and twenty one ######## Single digit term in successive left-most multipliers one hundred and one one hundred and one thousand one hundred and one million one hundred and one billion ######## Double digit term in successive left-most multipliers one hundred and twenty one one hundred and twenty one thousand one hundred and twenty one million one hundred and twenty one billion ######## Cuumulative multiplier terms one hundred billion one hundred million one hundred thousand one hundred one hundred and one billion one hundred and one million one hundred and one thousand one hundred and one ######## Invalid use of AND in input stream tests_optand:45.17-45.20: error: syntax error tests_optand:46.22-46.28: error: syntax error tests_optand:47.22-47.28: error: syntax error tests_optand:48.30-48.33: error: syntax error tests_optand:49.38-49.44: error: syntax error

Total Comments 0