aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/test/smoke/TestPermuter.java
diff options
context:
space:
mode:
authorLibravatar Oszkar Semerath <Oszkar Semerath@DESKTOP-DNR7JQ7>2021-07-26 15:01:23 +0200
committerLibravatar Oszkar Semerath <Oszkar Semerath@DESKTOP-DNR7JQ7>2021-07-26 15:01:23 +0200
commit1527e27f36762a5e3a1cdbb84467f67322cb7cba (patch)
treec076fb8117180a15989535743bd3bab32db01c71 /Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/test/smoke/TestPermuter.java
parentbetter progress logging in smoke tests (diff)
downloadVIATRA-Generator-1527e27f36762a5e3a1cdbb84467f67322cb7cba.tar.gz
VIATRA-Generator-1527e27f36762a5e3a1cdbb84467f67322cb7cba.tar.zst
VIATRA-Generator-1527e27f36762a5e3a1cdbb84467f67322cb7cba.zip
Smoketest refactor splitting fast and slow smoke tests
Diffstat (limited to 'Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/test/smoke/TestPermuter.java')
-rw-r--r--Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/test/smoke/TestPermuter.java90
1 files changed, 90 insertions, 0 deletions
diff --git a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/test/smoke/TestPermuter.java b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/test/smoke/TestPermuter.java
new file mode 100644
index 00000000..d9e50508
--- /dev/null
+++ b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/test/smoke/TestPermuter.java
@@ -0,0 +1,90 @@
1package org.eclipse.viatra.solver.data.map.test.smoke;
2
3import static org.junit.Assert.assertTrue;
4import static org.junit.jupiter.api.Assertions.assertEquals;
5
6import java.util.LinkedList;
7import java.util.List;
8import java.util.stream.Stream;
9
10import org.junit.jupiter.api.Test;
11import org.junit.jupiter.params.provider.Arguments;
12
13public class TestPermuter {
14 private static List<List<Object>> permutation_internal(int from, Object[]... valueOption) {
15 if(valueOption.length == from) {
16 return List.of(List.of()); // empty list
17 } else {
18 Object[] permuteThis = valueOption[from];
19 List<List<Object>> otherCombination = permutation_internal(from+1,valueOption);
20
21 List<List<Object>> result = new LinkedList<>();
22 for(Object permuteThisElement : permuteThis) {
23 for(List<Object> otherCombinationList : otherCombination) {
24 List<Object> newResult = new LinkedList<>();
25 newResult.add(permuteThisElement);
26 newResult.addAll(otherCombinationList);
27 result.add(newResult);
28 }
29 }
30 return result;
31 }
32 }
33 public static Stream<Arguments> permutation(Object[]... valueOption) {
34 List<List<Object>> permutations = permutation_internal(0, valueOption);
35 return permutations.stream().map(x -> Arguments.of(x.toArray()));
36 }
37 public static Stream<Arguments> permutationWithSize(Object[]... valueOption) {
38 int size = 1;
39 for(int i = 0; i< valueOption.length; i++) {
40 size *= valueOption[i].length;
41 }
42 Object[][] newValueOption = new Object[valueOption.length+1][];
43 newValueOption[0] = new Object[] {size};
44 for(int i = 1; i<newValueOption.length; i++) {
45 newValueOption[i]=valueOption[i-1];
46 }
47 return permutation(newValueOption);
48 }
49
50 @Test
51 public void permutation_internalTest() {
52 List<List<Object>> res = permutation_internal(0,
53 new Object[]{1,2,3},
54 new Object[]{'a','b','c'},
55 new Object[]{"alpha","beta","gamma","delta"}
56 );
57// for(var permutation : res) {
58// System.out.print("[");
59// for(int index = 0; index<permutation.size(); index++) {
60// if(index!=0) System.out.print(",");
61// System.out.print(permutation.get(index));
62// }
63// System.out.println("]");
64// }
65 assertTrue(res.size()==3*3*4);
66 }
67
68 @Test
69 public void permutationTest1() {
70 var res = permutation(
71 new Object[]{1,2,3},
72 new Object[]{'a','b','c'},
73 new Object[]{"alpha","beta","gamma","delta"}
74 );
75 assertTrue(res.count()==3*3*4);
76 }
77 @Test
78 public void permutationTest2() {
79 var res = permutation(
80 new Object[]{1,2,3},
81 new Object[]{'a','b','c'},
82 new Object[]{"alpha","beta","gamma","delta"}
83 );
84 var arguments = res.findFirst().get().get();
85 assertEquals(arguments[0], 1);
86 assertEquals(arguments[1], 'a');
87 assertEquals(arguments[2], "alpha");
88 System.out.println(arguments[0]);
89 }
90}