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 <heinrich.bo...@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); } }