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