LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Go Back   LinuxQuestions.org > Blogs > astrogeek
User Name
Password

Notices


Rate this Entry

Test Cases: Limits

Posted 10-10-2021 at 11:53 PM by astrogeek

This post is part of the Alphanumeric Calculator program group.

Test cases to validate limits and range of expressions, undefined input errors.

Test cases input file:

Code:
cat tests_limits
/* Tests detection and reporting of limits and unexpected input
*/
######## Valid - Min/Max values
999999999999
-999999999999
nine hundred ninety nine billion nine hundred ninety nine million nine hundred ninety nine thousand nine hundred ninety nine
negative nine hundred ninety nine billion nine hundred ninety nine million nine hundred ninety nine thousand nine hundred ninety nine
######## Undefined input at start, middle and end of lines
abcdef
one hundred plux three thousand
one abcdefghijabcdefghijabcdefghijabcdefghij one thousand
######## Invalid - Limits and range of input, numeric and expressions
1000000000000 - 1
999999999999 + 1
-999999999999 - 1
nine hundred ninety nine billion nine hundred ninety nine million nine hundred ninety nine thousand nine hundred ninety nine plus one
negative nine hundred ninety nine billion nine hundred ninety nine million nine hundred ninety nine thousand nine hundred ninety nine minus one
######## Detect multiplication overflow: 1 is OK, 2 is range err, 3 is overflow, 4/5 attempt div by 0 in overflow test
99999999999 times 9
99999999999 times 99
99999999999 times 99999999
zero times one
one times zero
######## Division by zero error
1/0
one thousand over (five minus ten over two)
######## Exceed the lexer input limit LLONG_MAX, 1 is OK but range err, 2 is overflow error
9223372036854775807
9223372036854775808
And the results using Rev.3 lexer/parser as posted to this blog.

Code:
./alphacalc tests_limits -c
######## Valid - Min/Max values
nine hundred ninety nine billion nine hundred ninety nine million nine hundred ninety nine thousand nine hundred ninety nine
negative nine hundred ninety nine billion nine hundred ninety nine million nine hundred ninety nine thousand nine hundred ninety nine
nine hundred ninety nine billion nine hundred ninety nine million nine hundred ninety nine thousand nine hundred ninety nine
negative nine hundred ninety nine billion nine hundred ninety nine million nine hundred ninety nine thousand nine hundred ninety nine
######## Undefined input at start, middle and end of lines
tests_limits:9.1-9.7: error: Undefined input! abcdef
tests_limits:9.1-9.7: error: syntax error
tests_limits:10.13-10.17: error: Undefined input! plux
tests_limits:10.13-10.17: error: syntax error
tests_limits:11.5-11.20: error: Undefined input! abcdefghijabcde
tests_limits:11.5-11.20: error: syntax error
tests_limits:11.21-11.36: error: Undefined input! fghijabcdefghij
tests_limits:11.37-11.47: error: Undefined input! abcdefghij
######## Invalid - Limits and range of input, numeric and expressions
tests_limits:13.1-13.13: error: Value out of range!
tests_limits:14.14-14.14: error: Sum out of range!
tests_limits:15.15-15.15: error: Difference out of range!
tests_limits:16.126-16.129: error: Sum out of range!
tests_limits:17.135-17.139: error: Difference out of range!
######## Detect multiplication overflow: 1 is OK, 2 is range err, 3 is overflow, 4/5 attempt div by 0 in overflow test
eight hundred ninety nine billion nine hundred ninety nine million nine hundred ninety nine thousand nine hundred ninety one
tests_limits:20.13-20.17: error: Product out of range!
tests_limits:21.13-21.17: error: Multiplication overflow!
zero
zero
######## Division by zero error
tests_limits:25.3-25.3: error: Division by zero!
tests_limits:26.19-26.43: error: Division by zero!
######## Exceed the lexer input limit LLONG_MAX, 1 is OK but range err, 2 is overflow error
tests_limits:28.1-28.19: error: Value out of range!
tests_limits:29.1-29.19: error: Invalid numeric input!
« Prev     Main     Next »
Total Comments 0

Comments

 

  



All times are GMT -5. The time now is 02:11 PM.

Main Menu
Advertisement
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration