aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse
diff options
context:
space:
mode:
authorLibravatar Oszkar Semerath <Oszkar Semerath@DESKTOP-DNR7JQ7>2021-07-07 01:59:08 +0200
committerLibravatar Oszkar Semerath <Oszkar Semerath@DESKTOP-DNR7JQ7>2021-07-07 01:59:08 +0200
commit2cf31725acfa94b332de5d4722a85b2281b79401 (patch)
tree8318f371f8bb0b73fad6b5c523956581d96ec9ac /Solvers/VIATRA-Solver/org.eclipse.viatra.solver.data/tests/org/eclipse
parentno separate node iterators (diff)
downloadVIATRA-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.java2
-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.java133
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;
7import org.eclipse.viatra.solver.data.map.internal.VersionedMapImpl; 7import org.eclipse.viatra.solver.data.map.internal.VersionedMapImpl;
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9 9
10public class MapSmokeTest { 10public 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 @@
1package org.eclipse.viatra.solver.data.map;
2
3import static org.junit.Assert.fail;
4
5import java.util.Random;
6
7import org.eclipse.viatra.solver.data.map.internal.VersionedMapImpl;
8import org.junit.jupiter.api.Test;
9
10public 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}