package com.plectix.simulator.rulecompression; import java.io.File; import java.util.Collection; import java.util.List; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import com.plectix.simulator.FileNameCollectionGenerator; import com.plectix.simulator.OperationModeCollectionGenerator; import com.plectix.simulator.interfaces.ConnectedComponentInterface; import com.plectix.simulator.staticanalysis.Rule; import com.plectix.simulator.staticanalysis.localviews.LocalViewsMain; import com.plectix.simulator.staticanalysis.rulecompression.QuantitativeCompressor; import com.plectix.simulator.staticanalysis.subviews.AllSubViewsOfAllAgentsInterface; @RunWith(value = Parameterized.class) public class TestQuantitativeCompressions { private static final String prefixSourseModel = InitData.pathForSourseModel + "quantitative" + File.separator; private LocalViewsMain localViews; private List<Rule> rules; private final InitTestRuleCompressions initTestRuleCompressions = new InitTestRuleCompressions(); @Parameters public static Collection<Object[]> configs() { return OperationModeCollectionGenerator.generate(FileNameCollectionGenerator .getAllFileNamesWithPathWithModifyName(prefixSourseModel, "~kappa"),false); } public TestQuantitativeCompressions(String count, String patch, Integer opMode) throws Exception { initTestRuleCompressions.initializeSimulation(patch, count, opMode); } @Before public void setUp() { initLocalViews(initTestRuleCompressions.getSubViews()); this.rules = initTestRuleCompressions.getRules(); } private void initLocalViews(AllSubViewsOfAllAgentsInterface subViews) { if (localViews == null) { localViews = new LocalViewsMain(subViews); localViews.buildLocalViews(); } } @Test public void testQuantitativeCompression() { for (Rule rule : rules) { QuantitativeCompressor q = new QuantitativeCompressor(localViews); q.compress(rule); Rule comp = q.getCompressedRule(); for (ConnectedComponentInterface ic : comp.getLeftHandSide()) { if (ic.getAgents().isEmpty()) continue; } for (ConnectedComponentInterface ic : comp.getRightHandSide()) { if (ic.getAgents().isEmpty()) continue; } } } }