blob: bfe35ca7db0ddf7eee2a3ad267a0e7858a9172ac [file] [log] [blame]
Run on Android with
1) Build the tests.
2) Install the calculator with
adb install <tree root>/out/target/product/generic/data/app/ExactCalculator/ExactCalculator.apk
3) adb install <tree root>/out/target/product/generic/data/app/ExactCalculatorTests/ExactCalculatorTests.apk
4) adb shell am instrument -w com.android.calculator2.tests/android.test.InstrumentationTestRunner
There are three kinds of tests:
1. A superficial test of calculator functionality through the UI.
This is a resurrected version of a test that appeared in KitKat.
This is currently only a placeholder for regression tests we shouldn't
forget; it doesn't yet actually do much of anything.
2. A test of the BoundedRationals library that mostly checks for agreement
with the constructive reals (CR) package. (The BoundedRationals package
is used by the calculator mostly to identify exact results, i.e.
terminating decimal expansions. But it's also used to optimize CR
computations, and bugs in BoundedRational could result in incorrect
outputs.)
3. A quick test of Evaluator.testUnflipZeroes(), which we do not know how to
test manually.
We currently have no automatic tests for display formatting corner cases.
The following numbers have exhibited problems in the past and would be good
to test. Some of them are difficult to test automatically, because they
require scrolling to both ends of the result. For those with finite
decimal expansions, it also worth confirming that the "display with leading
digits" display shows an exact value when scrolled all the way to the right.
Some interesting manual test cases:
10^10 + 10^30
10^30 + 10^-10
-10^30 + 20
10^30 + 10^-30
-10^30 - 10^10
-1.2x10^-9
-1.2x10^-8
-1.2x10^-10
-10^-12
1 - 10^-98
1 - 10^-100
1 - 10^-300
1/-56x10^18 (on a Nexus 7 sized portrait display)
-10^-500 (scroll to see the 1, then scroll back & verify minus sign appears)