From bd96ae5a4878defbaee7fa85f0576acea0edf91e Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 12 Sep 2019 12:17:28 -0400 Subject: [PATCH] Nestable array iterators + unit tests --- tests/src/test/java/ApplicationTests.java | 32 +++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/src/test/java/ApplicationTests.java b/tests/src/test/java/ApplicationTests.java index b9ef4dbf5c..a632849dcc 100644 --- a/tests/src/test/java/ApplicationTests.java +++ b/tests/src/test/java/ApplicationTests.java @@ -1,6 +1,7 @@ import io.anuke.arc.ApplicationCore; import io.anuke.arc.Core; import io.anuke.arc.backends.headless.HeadlessApplication; +import io.anuke.arc.collection.*; import io.anuke.arc.math.geom.Point2; import io.anuke.arc.util.Log; import io.anuke.arc.util.Time; @@ -223,6 +224,37 @@ public class ApplicationTests{ assertEquals(10, world.height()); } + @Test + void arrayIterators(){ + Array arr = Array.with("a", "b" , "c", "d", "e", "f"); + Array results = new Array<>(); + + for(String s : arr); + for(String s : results); + + Array.iteratorsAllocated = 0; + + //simulate non-enhanced for loops, which should be correct + + for(int i = 0; i < arr.size; i++){ + for(int j = 0; j < arr.size; j++){ + results.add(arr.get(i) + arr.get(j)); + } + } + + int index = 0; + + //test nested for loops + for(String s : arr){ + for(String s2 : arr){ + assertEquals(results.get(index++), s + s2); + } + } + + assertEquals(results.size, index); + assertEquals(0, Array.iteratorsAllocated, "No new iterators must have been allocated."); + } + @Test void inventoryDeposit(){ depositTest(Blocks.surgeSmelter, Items.copper);