diff options
author | Oszkar Semerath <Oszkar Semerath@DESKTOP-DNR7JQ7> | 2021-07-07 01:59:08 +0200 |
---|---|---|
committer | Oszkar Semerath <Oszkar Semerath@DESKTOP-DNR7JQ7> | 2021-07-07 01:59:08 +0200 |
commit | 2cf31725acfa94b332de5d4722a85b2281b79401 (patch) | |
tree | 8318f371f8bb0b73fad6b5c523956581d96ec9ac /Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse | |
parent | no separate node iterators (diff) | |
download | VIATRA-Generator-2cf31725acfa94b332de5d4722a85b2281b79401.tar.gz VIATRA-Generator-2cf31725acfa94b332de5d4722a85b2281b79401.tar.zst VIATRA-Generator-2cf31725acfa94b332de5d4722a85b2281b79401.zip |
Tests and iterators
Diffstat (limited to 'Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse')
-rw-r--r-- | Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/MapTestEnvironment.java | 2 | ||||
-rw-r--r-- | Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/SmokeTest1Mutable.java (renamed from Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/MapSmokeTest.java) | 2 | ||||
-rw-r--r-- | Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/SmokeTest2Commit.java | 133 |
3 files changed, 135 insertions, 2 deletions
diff --git a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/MapTestEnvironment.java b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/MapTestEnvironment.java index 507e8dc2..1dcf7a63 100644 --- a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/MapTestEnvironment.java +++ b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/MapTestEnvironment.java | |||
@@ -61,7 +61,7 @@ public class MapTestEnvironment<KEY,VALUE> { | |||
61 | // 3. Checking sizes | 61 | // 3. Checking sizes |
62 | // Counting of non-default value pairs. | 62 | // Counting of non-default value pairs. |
63 | int oracleSize = oracle.entrySet().size(); | 63 | int oracleSize = oracle.entrySet().size(); |
64 | int sutSize = sut.getSize(); | 64 | long sutSize = sut.getSize(); |
65 | if(oracleSize != sutSize || oracleSize != elementsInSutEntrySet) { | 65 | if(oracleSize != sutSize || oracleSize != elementsInSutEntrySet) { |
66 | printComparison(); | 66 | printComparison(); |
67 | fail(title + ": Non-eqivalent size() result: SUT.getSize()="+sutSize+", SUT.entryset.size="+elementsInSutEntrySet+", Oracle="+oracleSize+"!" ); | 67 | fail(title + ": Non-eqivalent size() result: SUT.getSize()="+sutSize+", SUT.entryset.size="+elementsInSutEntrySet+", Oracle="+oracleSize+"!" ); |
diff --git a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/MapSmokeTest.java b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/SmokeTest1Mutable.java index 8532da63..9b08a7bc 100644 --- a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/MapSmokeTest.java +++ b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/SmokeTest1Mutable.java | |||
@@ -7,7 +7,7 @@ import java.util.Random; | |||
7 | import org.eclipse.viatra.solver.data.map.internal.VersionedMapImpl; | 7 | import org.eclipse.viatra.solver.data.map.internal.VersionedMapImpl; |
8 | import org.junit.jupiter.api.Test; | 8 | import org.junit.jupiter.api.Test; |
9 | 9 | ||
10 | public class MapSmokeTest { | 10 | public class SmokeTest1Mutable { |
11 | 11 | ||
12 | private void runSmokeTest(String scenario, int seed, int steps, int maxKey, int maxValue) { | 12 | private void runSmokeTest(String scenario, int seed, int steps, int maxKey, int maxValue) { |
13 | String[] values = prepareValues(maxValue); | 13 | String[] values = prepareValues(maxValue); |
diff --git a/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/SmokeTest2Commit.java b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/SmokeTest2Commit.java new file mode 100644 index 00000000..8be9adb6 --- /dev/null +++ b/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse/viatra/solver/data/map/SmokeTest2Commit.java | |||
@@ -0,0 +1,133 @@ | |||
1 | package org.eclipse.viatra.solver.data.map; | ||
2 | |||
3 | import static org.junit.Assert.fail; | ||
4 | |||
5 | import java.util.Random; | ||
6 | |||
7 | import org.eclipse.viatra.solver.data.map.internal.VersionedMapImpl; | ||
8 | import org.junit.jupiter.api.Test; | ||
9 | |||
10 | public class SmokeTest2Commit { | ||
11 | private void runSmokeTest(String scenario, int seed, int steps, int maxKey, int maxValue, int commitFrequency) { | ||
12 | String[] values = prepareValues(maxValue); | ||
13 | ContinousHashProvider<Integer> chp = prepareHashProvider(); | ||
14 | |||
15 | VersionedMapStore<Integer, String> store = new VersionedMapStoreImpl<Integer, String>(chp, values[0]); | ||
16 | VersionedMapImpl<Integer, String> sut = (VersionedMapImpl<Integer, String>) store.createMap(); | ||
17 | MapTestEnvironment<Integer, String> e = new MapTestEnvironment<Integer, String>(sut); | ||
18 | |||
19 | Random r = new Random(seed); | ||
20 | |||
21 | iterativeRandomPutsAndCommits(scenario, steps, maxKey, values, e, r, commitFrequency); | ||
22 | } | ||
23 | |||
24 | |||
25 | |||
26 | private String[] prepareValues(int maxValue) { | ||
27 | String[] values = new String[maxValue]; | ||
28 | values[0] = "DEFAULT"; | ||
29 | for(int i = 1; i<values.length; i++) { | ||
30 | values[i] = "VAL"+i; | ||
31 | } | ||
32 | return values; | ||
33 | } | ||
34 | private ContinousHashProvider<Integer> prepareHashProvider() { | ||
35 | ContinousHashProvider<Integer> chp = new ContinousHashProvider<Integer>() { | ||
36 | |||
37 | @Override | ||
38 | public int getHash(Integer key, int index) { | ||
39 | int result = 1; | ||
40 | final int prime = 31; | ||
41 | result = prime*result + key; | ||
42 | result = prime*result + index; | ||
43 | return result; | ||
44 | } | ||
45 | |||
46 | @Override | ||
47 | public boolean equals(Integer key1, Integer key2) { | ||
48 | return key1.equals(key2); | ||
49 | } | ||
50 | }; | ||
51 | return chp; | ||
52 | } | ||
53 | |||
54 | void iterativeRandomPutsAndCommits( | ||
55 | String scenario, | ||
56 | int steps, | ||
57 | int maxKey, | ||
58 | String[] values, | ||
59 | MapTestEnvironment<Integer, String> e, | ||
60 | Random r, | ||
61 | int commitFrequency) | ||
62 | { | ||
63 | int stopAt = -1; | ||
64 | for(int i=0; i<steps; i++) { | ||
65 | int index = i+1; | ||
66 | int nextKey = r.nextInt(maxKey); | ||
67 | String nextValue = values[r.nextInt(values.length)]; | ||
68 | if(index == stopAt) { | ||
69 | System.out.println("issue!"); | ||
70 | System.out.println("State before:"); | ||
71 | e.printComparison(); | ||
72 | e.sut.prettyPrint(); | ||
73 | System.out.println("Next: put("+nextKey+","+nextValue+")"); | ||
74 | } | ||
75 | try { | ||
76 | e.put(nextKey, nextValue); | ||
77 | if(index == stopAt) { | ||
78 | e.sut.prettyPrint(); | ||
79 | } | ||
80 | e.checkEquivalence(scenario+":"+index); | ||
81 | } catch (Exception exception) { | ||
82 | exception.printStackTrace(); | ||
83 | fail(scenario+":"+index+": exception happened: "+exception); | ||
84 | } | ||
85 | if(index%10000==0) System.out.println(scenario+":"+index+" finished"); | ||
86 | if(index%commitFrequency == 0) { | ||
87 | long version = e.sut.commit(); | ||
88 | System.out.println(scenario+":"+index+": Commit! " + version); | ||
89 | } | ||
90 | } | ||
91 | } | ||
92 | |||
93 | @Test | ||
94 | void MiniSmokeK3V2v1() { | ||
95 | runSmokeTest("MiniSmokeK3V2v1",0, 1000, 3, 2, 10); | ||
96 | } | ||
97 | @Test | ||
98 | void MiniSmokeK3V2v2() { | ||
99 | runSmokeTest("MiniSmokeK3V2v2",1, 1000, 3, 2, 10); | ||
100 | } | ||
101 | @Test | ||
102 | void MiniSmokeK3V2v3() { | ||
103 | runSmokeTest("MiniSmokeK3V2v3",3, 1000, 3, 2, 10); | ||
104 | } | ||
105 | @Test | ||
106 | void MiniSmokeK3V3v1() { | ||
107 | runSmokeTest("MiniSmokeK3V2v1",0, 1000, 3, 3, 10); | ||
108 | } | ||
109 | @Test | ||
110 | void MiniSmokeK3V3v2() { | ||
111 | runSmokeTest("MiniSmokeK3V2v2",1, 1000, 3, 3, 10); | ||
112 | } | ||
113 | @Test | ||
114 | void MiniSmokeK3V3v3() { | ||
115 | runSmokeTest("MiniSmokeK3V2v3",3, 1000, 3, 3, 10); | ||
116 | } | ||
117 | @Test | ||
118 | void MediumSmokeK3V2v1() { | ||
119 | runSmokeTest("MediumSmokeK3V2v1",1, 1000, 32, 2, 10); | ||
120 | } | ||
121 | @Test | ||
122 | void MediumSmokeK3V2v2() { | ||
123 | runSmokeTest("MediumSmokeK3V2v2",2, 1000, 32, 2, 10); | ||
124 | } | ||
125 | @Test | ||
126 | void MediumSmokeK3V2v3() { | ||
127 | runSmokeTest("MediumSmokeK3V2v3",3, 1000, 32, 2, 10); | ||
128 | } | ||
129 | // @Test | ||
130 | // void SmokeLarge() { | ||
131 | // runSmokeTest("SmokeLarge",0, 32*32*32*32, 32*32-1, 2); | ||
132 | // } | ||
133 | } | ||