You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2020/04/09 11:34:47 UTC
[commons-numbers] 05/07: Fraction: Add alternative zero to common
test cases.
This is an automated email from the ASF dual-hosted git repository.
aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-numbers.git
commit eea818d1781314504e8de7fa6873005739117c7b
Author: aherbert <ah...@apache.org>
AuthorDate: Thu Apr 9 12:31:45 2020 +0100
Fraction: Add alternative zero to common test cases.
Zero can be 0 / 1 or 0 / -1.
Zero divide is specified to return the original faction and not
Fraction.ZERO.
---
.../apache/commons/numbers/fraction/CommonTestCases.java | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/CommonTestCases.java b/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/CommonTestCases.java
index 3f1f343..efebc48 100644
--- a/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/CommonTestCases.java
+++ b/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/CommonTestCases.java
@@ -188,6 +188,8 @@ final class CommonTestCases {
testCases.add(new UnaryOperatorTestCase(10, 21, 10, 21));
testCases.add(new UnaryOperatorTestCase(-11, 23, 11, 23));
testCases.add(new UnaryOperatorTestCase(13, -24, -13, -24));
+ testCases.add(new UnaryOperatorTestCase(0, 1, 0, 1));
+ testCases.add(new UnaryOperatorTestCase(0, -1, 0, -1));
return testCases;
}
@@ -220,6 +222,9 @@ final class CommonTestCases {
testCases.add(new UnaryOperatorTestCase(-50, 75, 2, 3));
testCases.add(new UnaryOperatorTestCase(Integer.MAX_VALUE - 1, Integer.MAX_VALUE, Integer.MIN_VALUE + 2, Integer.MAX_VALUE));
testCases.add(new UnaryOperatorTestCase(1, Integer.MIN_VALUE, -1, Integer.MIN_VALUE));
+ // Negation of zero is a no-op
+ testCases.add(new UnaryOperatorTestCase(0, 1, 0, 1));
+ testCases.add(new UnaryOperatorTestCase(0, -1, 0, -1));
// XXX Failed by "BigFraction" (whose implementation differs from "Fraction").
// These are tested explicitly in FractionTest.
@@ -242,7 +247,9 @@ final class CommonTestCases {
testCases.add(new BinaryOperatorTestCase(2, 3, 1, 2, 7, 6));
testCases.add(new BinaryOperatorTestCase(2, 3, 2, 3, 4, 3));
testCases.add(new BinaryOperatorTestCase(2, 3, 0, 5, 2, 3));
+ testCases.add(new BinaryOperatorTestCase(2, 3, 0, -5, 2, 3));
testCases.add(new BinaryOperatorTestCase(0, 7, 2, 3, 2, 3));
+ testCases.add(new BinaryOperatorTestCase(0, -7, 2, 3, 2, 3));
testCases.add(new BinaryOperatorTestCase(2, 3, -2, 3, 0, 1));
testCases.add(new BinaryOperatorTestCase(
@@ -290,6 +297,8 @@ final class CommonTestCases {
testCases.add(new BinaryOperatorTestCase(2, 3, 1, 2, 4, 3));
testCases.add(new BinaryOperatorTestCase(2, 3, 2, 3, 1, 1));
testCases.add(new BinaryOperatorTestCase(0, 3, 2, 3, 0, 1));
+ // Return the original zero representation
+ testCases.add(new BinaryOperatorTestCase(0, -3, 2, 3, 0, -1));
testCases.add(new BinaryOperatorTestCase(
2, 7,
@@ -320,7 +329,9 @@ final class CommonTestCases {
testCases.add(new BinaryOperatorTestCase(2, 3, 1, 2, 1, 3));
testCases.add(new BinaryOperatorTestCase(2, 3, 2, 3, 4, 9));
testCases.add(new BinaryOperatorTestCase(0, 3, 2, 3, 0, 1));
+ testCases.add(new BinaryOperatorTestCase(0, -3, 2, 3, 0, 1));
testCases.add(new BinaryOperatorTestCase(2, 3, 0, 3, 0, 1));
+ testCases.add(new BinaryOperatorTestCase(2, 3, 0, -3, 0, 1));
testCases.add(new BinaryOperatorTestCase(
Integer.MAX_VALUE, 1,
@@ -343,7 +354,9 @@ final class CommonTestCases {
testCases.add(new BinaryOperatorTestCase(2, 3, 1, 2, 1, 6));
testCases.add(new BinaryOperatorTestCase(2, 3, 2, 3, 0, 1));
testCases.add(new BinaryOperatorTestCase(0, 3, 1, 5, -1, 5));
+ testCases.add(new BinaryOperatorTestCase(0, -3, 1, 5, -1, 5));
testCases.add(new BinaryOperatorTestCase(2, 3, 0, 5, 2, 3));
+ testCases.add(new BinaryOperatorTestCase(2, 3, 0, -5, 2, 3));
// if this fraction is subtracted naively, it will overflow the int range.
// check that it doesn't.