48 lines
1.8 KiB
Text
48 lines
1.8 KiB
Text
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)
|