You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2019/06/18 13:17:18 UTC
[commons-numbers] 33/34: Add Generics in test classes of
commons-numbers-field
This is an automated email from the ASF dual-hosted git repository.
erans pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-numbers.git
commit b1a114f406e90b2432b6e925cfcc2497477ce339
Author: Schamschi <he...@gmx.at>
AuthorDate: Sun Jun 16 17:44:28 2019 +0200
Add Generics in test classes of commons-numbers-field
Improve type safety by imposing equality constraints with type parameters
---
.../commons/numbers/field/FieldParametricTest.java | 118 ++++++++++-----------
.../commons/numbers/field/FieldTestData.java | 28 ++---
.../apache/commons/numbers/field/FieldsList.java | 6 +-
3 files changed, 71 insertions(+), 81 deletions(-)
diff --git a/commons-numbers-field/src/test/java/org/apache/commons/numbers/field/FieldParametricTest.java b/commons-numbers-field/src/test/java/org/apache/commons/numbers/field/FieldParametricTest.java
index 319edf2..4658a01 100644
--- a/commons-numbers-field/src/test/java/org/apache/commons/numbers/field/FieldParametricTest.java
+++ b/commons-numbers-field/src/test/java/org/apache/commons/numbers/field/FieldParametricTest.java
@@ -27,115 +27,105 @@ import java.util.stream.Stream;
*/
public class FieldParametricTest {
- private static Stream<FieldTestData> getList() {
+ private static Stream<FieldTestData<?>> getList() {
return FieldsList.list().stream();
}
@ParameterizedTest
@MethodSource("getList")
- public void testAdditionAssociativity(FieldTestData data) {
- Field field = data.getField();
- Object a = data.getA();
- Object b = data.getB();
- Object c = data.getC();
- final Object r1 = field.add(field.add(a, b), c);
- final Object r2 = field.add(a, field.add(b, c));
+ public <T> void testAdditionAssociativity(FieldTestData<T> data) {
+ Field<T> field = data.getField();
+ T a = data.getA();
+ T b = data.getB();
+ T c = data.getC();
+ final T r1 = field.add(field.add(a, b), c);
+ final T r2 = field.add(a, field.add(b, c));
assertEquals(r1, r2);
}
@ParameterizedTest
@MethodSource("getList")
- public void testAdditionCommutativity(FieldTestData data) {
- Field field = data.getField();
- Object a = data.getA();
- Object b = data.getB();
- Object c = data.getC();
- final Object r1 = field.add(a, b);
- final Object r2 = field.add(b, a);
+ public <T> void testAdditionCommutativity(FieldTestData<T> data) {
+ Field<T> field = data.getField();
+ T a = data.getA();
+ T b = data.getB();
+ final T r1 = field.add(a, b);
+ final T r2 = field.add(b, a);
assertEquals(r1, r2);
}
@ParameterizedTest
@MethodSource("getList")
- public void testAdditiveIdentity(FieldTestData data) {
- Field field = data.getField();
- Object a = data.getA();
- Object b = data.getB();
- Object c = data.getC();
- final Object r1 = field.add(a, field.zero());
- final Object r2 = a;
+ public <T> void testAdditiveIdentity(FieldTestData<T> data) {
+ Field<T> field = data.getField();
+ T a = data.getA();
+ final T r1 = field.add(a, field.zero());
+ final T r2 = a;
assertEquals(r1, r2);
}
@ParameterizedTest
@MethodSource("getList")
- public void testAdditiveInverse(FieldTestData data) {
- Field field = data.getField();
- Object a = data.getA();
- Object b = data.getB();
- Object c = data.getC();
- final Object r1 = field.add(a, field.negate(a));
- final Object r2 = field.zero();
+ public <T> void testAdditiveInverse(FieldTestData<T> data) {
+ Field<T> field = data.getField();
+ T a = data.getA();
+ final T r1 = field.add(a, field.negate(a));
+ final T r2 = field.zero();
assertEquals(r1, r2);
}
@ParameterizedTest
@MethodSource("getList")
- public void testMultiplicationAssociativity(FieldTestData data) {
- Field field = data.getField();
- Object a = data.getA();
- Object b = data.getB();
- Object c = data.getC();
- final Object r1 = field.multiply(field.multiply(a, b), c);
- final Object r2 = field.multiply(a, field.multiply(b, c));
+ public <T> void testMultiplicationAssociativity(FieldTestData<T> data) {
+ Field<T> field = data.getField();
+ T a = data.getA();
+ T b = data.getB();
+ T c = data.getC();
+ final T r1 = field.multiply(field.multiply(a, b), c);
+ final T r2 = field.multiply(a, field.multiply(b, c));
assertEquals(r1, r2);
}
@ParameterizedTest
@MethodSource("getList")
- public void testMultiplicationCommutativity(FieldTestData data) {
- Field field = data.getField();
- Object a = data.getA();
- Object b = data.getB();
- Object c = data.getC();
- final Object r1 = field.multiply(a, b);
- final Object r2 = field.multiply(b, a);
+ public <T> void testMultiplicationCommutativity(FieldTestData<T> data) {
+ Field<T> field = data.getField();
+ T a = data.getA();
+ T b = data.getB();
+ final T r1 = field.multiply(a, b);
+ final T r2 = field.multiply(b, a);
assertEquals(r1, r2);
}
@ParameterizedTest
@MethodSource("getList")
- public void testMultiplicativeIdentity(FieldTestData data) {
- Field field = data.getField();
- Object a = data.getA();
- Object b = data.getB();
- Object c = data.getC();
- final Object r1 = field.multiply(a, field.one());
- final Object r2 = a;
+ public <T> void testMultiplicativeIdentity(FieldTestData<T> data) {
+ Field<T> field = data.getField();
+ T a = data.getA();
+ final T r1 = field.multiply(a, field.one());
+ final T r2 = a;
assertEquals(r1, r2);
}
@ParameterizedTest
@MethodSource("getList")
- public void testMultiplicativeInverse(FieldTestData data) {
- Field field = data.getField();
- Object a = data.getA();
- Object b = data.getB();
- Object c = data.getC();
- final Object r1 = field.multiply(a, field.reciprocal(a));
- final Object r2 = field.one();
+ public <T> void testMultiplicativeInverse(FieldTestData<T> data) {
+ Field<T> field = data.getField();
+ T a = data.getA();
+ final T r1 = field.multiply(a, field.reciprocal(a));
+ final T r2 = field.one();
assertEquals(r1, r2);
}
@ParameterizedTest
@MethodSource("getList")
- public void testDistributivity(FieldTestData data) {
- Field field = data.getField();
- Object a = data.getA();
- Object b = data.getB();
- Object c = data.getC();
- final Object r1 = field.multiply(a, field.add(b, c));
- final Object r2 = field.add(field.multiply(a, b), field.multiply(a, c));
+ public <T> void testDistributivity(FieldTestData<T> data) {
+ Field<T> field = data.getField();
+ T a = data.getA();
+ T b = data.getB();
+ T c = data.getC();
+ final T r1 = field.multiply(a, field.add(b, c));
+ final T r2 = field.add(field.multiply(a, b), field.multiply(a, c));
assertEquals(r1, r2);
}
diff --git a/commons-numbers-field/src/test/java/org/apache/commons/numbers/field/FieldTestData.java b/commons-numbers-field/src/test/java/org/apache/commons/numbers/field/FieldTestData.java
index 82dc1a0..0a2b1cd 100644
--- a/commons-numbers-field/src/test/java/org/apache/commons/numbers/field/FieldTestData.java
+++ b/commons-numbers-field/src/test/java/org/apache/commons/numbers/field/FieldTestData.java
@@ -21,35 +21,35 @@ import java.util.Arrays;
/**
* Data store for {@link FieldParametricTest}.
*/
-class FieldTestData {
- private final Field<?> field;
- private final Object a;
- private final Object b;
- private final Object c;
-
- public FieldTestData(Field<?> field,
- Object a,
- Object b,
- Object c) {
+class FieldTestData<T> {
+ private final Field<T> field;
+ private final T a;
+ private final T b;
+ private final T c;
+
+ public FieldTestData(Field<T> field,
+ T a,
+ T b,
+ T c) {
this.field = field;
this.a = a;
this.b = b;
this.c = c;
}
- public Field<?> getField() {
+ public Field<T> getField() {
return field;
}
- public Object getA() {
+ public T getA() {
return a;
}
- public Object getB() {
+ public T getB() {
return b;
}
- public Object getC() {
+ public T getC() {
return c;
}
diff --git a/commons-numbers-field/src/test/java/org/apache/commons/numbers/field/FieldsList.java b/commons-numbers-field/src/test/java/org/apache/commons/numbers/field/FieldsList.java
index 396c83f..76a15cd 100644
--- a/commons-numbers-field/src/test/java/org/apache/commons/numbers/field/FieldsList.java
+++ b/commons-numbers-field/src/test/java/org/apache/commons/numbers/field/FieldsList.java
@@ -28,7 +28,7 @@ import org.apache.commons.numbers.fraction.Fraction;
*/
final class FieldsList {
/** List of all fields implemented in the library. */
- private static final List<FieldTestData> LIST =
+ private static final List<FieldTestData<?>> LIST =
new ArrayList<>();
static {
@@ -62,7 +62,7 @@ final class FieldsList {
T a,
T b,
T c) {
- LIST.add(new FieldTestData(field, a, b, c));
+ LIST.add(new FieldTestData<>(field, a, b, c));
}
/**
@@ -71,7 +71,7 @@ final class FieldsList {
*
* @return the list of all fields.
*/
- static List<FieldTestData> list() {
+ static List<FieldTestData<?>> list() {
return Collections.unmodifiableList(LIST);
}
}