use of il.ac.bgu.cs.bp.bpjs.execution.listeners.InMemoryEventLoggingListener in project BPjs by bThink-BGU.
the class BProgramTest method testPrependAndAppendSource.
@Test
public void testPrependAndAppendSource() throws InterruptedException {
System.out.println("\n\ntestPrependAndAppendSource");
String prependedCode = "var e1=bp.Event(\"1\");\n" + "var e2=bp.Event(\"2\");\n" + "var e3=bp.Event(\"3\");\n" + "bp.log.info('prepended code evaluated');\n" + "var o1=1; var o2=1; var o3=1;";
String coreSource = "bp.registerBThread(function() {\n" + " bsync( {request: e1} );\n" + " bsync( {request: e2} );\n" + " bsync( {request: e3} );\n" + "});" + "bp.log.info('main code evaluated');\n" + "var o2=2; var o3=2;";
String appendedSource = "bp.registerBThread(function(){\n" + " bsync({waitFor: e2});\n" + " bsync({request: bp.Event(\"2a\"),\n" + " block: e3});\n" + "});\n" + "bp.log.info('appended code evaluated');\n" + "var o3=3;";
BProgramRunner rnr = new BProgramRunner();
rnr.addListener(new PrintBProgramRunnerListener());
InMemoryEventLoggingListener el = rnr.addListener(new InMemoryEventLoggingListener());
BProgram sut = new StringBProgram(coreSource);
sut.prependSource(prependedCode);
sut.appendSource(appendedSource);
rnr.setBProgram(sut);
rnr.run();
assertEquals(asList("1", "2", "2a", "3"), el.getEvents().stream().map(BEvent::getName).collect(toList()));
assertEquals(Optional.of(1.0), sut.getFromGlobalScope("o1", Number.class));
assertEquals(Optional.of(2.0), sut.getFromGlobalScope("o2", Number.class));
assertEquals(Optional.of(3.0), sut.getFromGlobalScope("o3", Number.class));
System.out.println("-- testPrependAndAppendSource DONE");
}
use of il.ac.bgu.cs.bp.bpjs.execution.listeners.InMemoryEventLoggingListener in project BPjs by bThink-BGU.
the class NamedArgsHotNColdTest method superStepTest.
@Test
public void superStepTest() throws InterruptedException {
BProgramRunner sut = new BProgramRunner(new SingleResourceBProgram("NamedArgsHotNCold.js"));
sut.addListener(new PrintBProgramRunnerListener());
InMemoryEventLoggingListener eventLogger = sut.addListener(new InMemoryEventLoggingListener());
sut.run();
eventLogger.getEvents().forEach(e -> System.out.println(e));
final BEvent hotEvent = new BEvent("hotEvent");
final BEvent coldEvent = new BEvent("coldEvent");
final BEvent allDoneEvent = new BEvent("allDone");
EventPattern expected = new EventPattern().append(coldEvent).append(hotEvent).append(coldEvent).append(hotEvent).append(coldEvent).append(hotEvent).append(allDoneEvent);
assertTrue(expected.matches(eventLogger.getEvents()));
}
use of il.ac.bgu.cs.bp.bpjs.execution.listeners.InMemoryEventLoggingListener in project BPjs by bThink-BGU.
the class BSyncDataPassingTest method priorityDataTest_noBlocking.
@Test
public void priorityDataTest_noBlocking() {
BProgram bp = new SingleResourceBProgram("BSyncDataPassingTest.js");
bp.putInGlobalScope("block30", false);
bp.setEventSelectionStrategy(new PrioritizedBSyncEventSelectionStrategy());
BProgramRunner rnr = new BProgramRunner(bp);
InMemoryEventLoggingListener eventsLogger = rnr.addListener(new InMemoryEventLoggingListener());
rnr.addListener(new PrintBProgramRunnerListener());
rnr.run();
assertEquals(Arrays.asList("p30", "p20", "p10", "p3", "p2", "p1"), eventsLogger.eventNames());
}
use of il.ac.bgu.cs.bp.bpjs.execution.listeners.InMemoryEventLoggingListener in project BPjs by bThink-BGU.
the class BSyncDataPassingTest method priorityDataTest_blocking.
@Test
public void priorityDataTest_blocking() {
BProgram bp = new SingleResourceBProgram("BSyncDataPassingTest.js");
bp.putInGlobalScope("block30", true);
bp.setEventSelectionStrategy(new PrioritizedBSyncEventSelectionStrategy(17));
BProgramRunner rnr = new BProgramRunner(bp);
InMemoryEventLoggingListener eventsLogger = rnr.addListener(new InMemoryEventLoggingListener());
rnr.addListener(new PrintBProgramRunnerListener());
rnr.run();
assertEquals(Arrays.asList("p20", "p10", "p3", "p2", "p1"), eventsLogger.eventNames());
}
use of il.ac.bgu.cs.bp.bpjs.execution.listeners.InMemoryEventLoggingListener in project BPjs by bThink-BGU.
the class EventsArraysTest method testEventsWithData.
@Test
public void testEventsWithData() throws Exception {
BProgramRunner bpr = new BProgramRunner(new SingleResourceBProgram("EventArrays.js"));
bpr.addListener(new PrintBProgramRunnerListener());
InMemoryEventLoggingListener events = bpr.addListener(new InMemoryEventLoggingListener());
bpr.run();
assertEquals(Arrays.asList("e11", "e21"), events.getEvents().stream().map(BEvent::getName).collect(toList()));
}
Aggregations