-package org.simantics.scl.runtime.tests;\r
-\r
-import java.util.Random;\r
-\r
-import org.junit.Assert;\r
-import org.junit.Test;\r
-import org.simantics.scl.runtime.chr.Fact;\r
-import org.simantics.scl.runtime.chr.FactActivationQueue;\r
-\r
-import gnu.trove.list.array.TIntArrayList;\r
-\r
-public class TestFactActivationQueue {\r
- public static Random RANDOM = new Random();\r
- \r
- private static class MyFact implements Fact {\r
- TIntArrayList list;\r
- int priority;\r
-\r
- public MyFact(TIntArrayList list, int priority) {\r
- this.list = list;\r
- this.priority = priority;\r
- }\r
-\r
- @Override\r
- public int activate(Object context, int priority) {\r
- Assert.assertEquals(this.priority, priority);\r
- list.add(priority);\r
- return -1;\r
- }\r
-\r
- @Override\r
- public boolean isAlive() {\r
- return true;\r
- }\r
- }\r
- \r
- private void testRandomly(int priorities, int size) {\r
- FactActivationQueue queue = new FactActivationQueue(priorities);\r
- TIntArrayList list = new TIntArrayList(size); \r
- for(int i=0;i<size;++i) {\r
- int val = RANDOM.nextInt(priorities);\r
- queue.add(val, new MyFact(list, val));\r
- }\r
- queue.activate(null, priorities);\r
- Assert.assertEquals(size, list.size());\r
- for(int i=1;i<list.size();++i) {\r
- int a = list.get(i-1);\r
- int b = list.get(i);\r
- Assert.assertTrue(a <= b);\r
- }\r
- }\r
- \r
- @Test\r
- public void testRandomly() {\r
- for(int i=0;i<10000;++i)\r
- testRandomly(10, 10000);\r
- }\r
-}\r
+package org.simantics.scl.runtime.tests;
+
+import java.util.Random;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.simantics.scl.runtime.chr.Fact;
+import org.simantics.scl.runtime.chr.FactActivationQueue;
+
+import gnu.trove.list.array.TIntArrayList;
+
+public class TestFactActivationQueue {
+ public static Random RANDOM = new Random();
+
+ private static class MyFact implements Fact {
+ TIntArrayList list;
+ int priority;
+
+ public MyFact(TIntArrayList list, int priority) {
+ this.list = list;
+ this.priority = priority;
+ }
+
+ @Override
+ public int activate(Object context, int priority) {
+ Assert.assertEquals(this.priority, priority);
+ list.add(priority);
+ return -1;
+ }
+
+ @Override
+ public boolean isAlive() {
+ return true;
+ }
+ }
+
+ private void testRandomly(int priorities, int size) {
+ FactActivationQueue queue = new FactActivationQueue(priorities);
+ TIntArrayList list = new TIntArrayList(size);
+ for(int i=0;i<size;++i) {
+ int val = RANDOM.nextInt(priorities);
+ queue.add(val, new MyFact(list, val));
+ }
+ queue.activate(null, priorities);
+ Assert.assertEquals(size, list.size());
+ for(int i=1;i<list.size();++i) {
+ int a = list.get(i-1);
+ int b = list.get(i);
+ Assert.assertTrue(a <= b);
+ }
+ }
+
+ @Test
+ public void testRandomly() {
+ for(int i=0;i<10000;++i)
+ testRandomly(10, 10000);
+ }
+}