Index: modules/awt/src/test/api/java/common/java/awt/geom/AffineTransformTest.java =================================================================== --- modules/awt/src/test/api/java/common/java/awt/geom/AffineTransformTest.java (revision 449668) +++ modules/awt/src/test/api/java/common/java/awt/geom/AffineTransformTest.java (working copy) @@ -612,7 +612,7 @@ } } - public void testTransform1() { + public void testTransformPoint() { for(int i = 0; i < points.length; i++) { AffineTransform at = new AffineTransform(points[i][0]); for(int j = 1; j < points[i].length; j++) { @@ -639,7 +639,7 @@ } } - public void testTransform2() { + public void testTransformArray1() { AffineTransform at = new AffineTransform(0, 1, -2, 0, 3, 4); Point2D[] src = new Point2D[]{ null, @@ -652,7 +652,7 @@ assertEquals(new Point2D.Float(1, 5), dst[3]); } - public void testTransform3() { + public void testTransformArray2() { AffineTransform at = new AffineTransform(0, 1, -2, 0, 3, 4); double[] src = new double[]{0, 0, 0, 0, 0, 0, 1, 1, 0, 0}; double[] dst = new double[6]; @@ -660,8 +660,8 @@ at.transform(src, 4, dst, 2, 2); assertEquals(expected, dst, 6, 0.0); } - - public void testTransform4() { + + public void testTransformArray3() { AffineTransform at = new AffineTransform(0, 1, -2, 0, 3, 4); float[] src = new float[]{0, 0, 0, 0, 0, 0, 1, 1, 0, 0}; float[] dst = new float[6]; @@ -670,7 +670,7 @@ assertEquals(expected, dst, 6, 0.0f); } - public void testTransform5() { + public void testTransformArray4() { AffineTransform at = new AffineTransform(0, 1, -2, 0, 3, 4); float[] src = new float[]{0, 0, 0, 0, 0, 0, 1, 1, 0, 0}; double[] dst = new double[6]; @@ -679,7 +679,7 @@ assertEquals(expected, dst, 6, 0.0); } - public void testTransform6() { + public void testTransformArray5() { AffineTransform at = new AffineTransform(0, 1, -2, 0, 3, 4); double[] src = new double[]{0, 0, 0, 0, 0, 0, 1, 1, 0, 0}; float[] dst = new float[6]; @@ -687,7 +687,25 @@ at.transform(src, 4, dst, 2, 2); assertEquals(expected, dst, 6, 0.0f); } + + public void testTransformArrayOverlap1() { + // Regresion test HARMONY-1603 + AffineTransform at = AffineTransform.getTranslateInstance(2, 3); + float[] src = new float[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; + float[] expected = new float[]{1, 2, 3, 4, 3, 5, 5, 7, 7, 9, 9, 11, 13, 14}; + at.transform(src, 0, src, 4, 4); + assertEquals(expected, src, src.length, 0); + } + public void testTransformArrayOverlap2() { + // Regresion test HARMONY-1603 + AffineTransform at = AffineTransform.getTranslateInstance(2, 3); + double[] src = new double[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; + double[] expected = new double[]{1, 2, 3, 4, 3, 5, 5, 7, 7, 9, 9, 11, 13, 14}; + at.transform(src, 0, src, 4, 4); + assertEquals(expected, src, src.length, 0); + } + public void testDeltaTransform1() { for(int i = 0; i < points.length; i++) { AffineTransform at = new AffineTransform(points[i][0]); Index: modules/awt/src/test/api/java/common/java/awt/geom/GeomTestCase.java =================================================================== --- modules/awt/src/test/api/java/common/java/awt/geom/GeomTestCase.java (revision 449668) +++ modules/awt/src/test/api/java/common/java/awt/geom/GeomTestCase.java (working copy) @@ -21,6 +21,7 @@ import java.awt.SerializeTestCase; import java.awt.Tools; +import java.util.Arrays; public class GeomTestCase extends SerializeTestCase { @@ -141,7 +142,9 @@ fail(concat(msg, "Wrong array length " + a2.length + ", needed at least " + length)); } for(int i = 0; i < length; i++) { - assertEquals(concat(msg, "Element " + i), a1[i], a2[i], delta); + if (a1[i] != a2[i]) { + fail(msg, Arrays.toString(a1), Arrays.toString(a2)); + } } } @@ -157,7 +160,9 @@ fail(concat(msg, "Wrong array length " + a2.length + ", needed at least " + length)); } for(int i = 0; i < length; i++) { - assertEquals(concat(msg, "Element " + i), a1[i], a2[i], delta); + if (a1[i] != a2[i]) { + fail(msg, Arrays.toString(a1), Arrays.toString(a2)); + } } } @@ -173,7 +178,9 @@ fail(concat(msg, "Wrong array length " + a2.length + ", needed at least " + length)); } for(int i = 0; i < length; i++) { - assertEquals(concat(msg, "Element " + i), a1[i], a2[i]); + if (a1[i] != a2[i]) { + fail(msg, Arrays.toString(a1), Arrays.toString(a2)); + } } }