package com.plectix.simulator.rulecompression; import java.io.File; import java.util.Collection; import java.util.LinkedHashSet; 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.staticanalysis.Rule; import com.plectix.simulator.staticanalysis.localviews.LocalViewsMain; import com.plectix.simulator.staticanalysis.rulecompression.QualitativeCompressor; import com.plectix.simulator.staticanalysis.rulecompression.RootedRulesGroup; import com.plectix.simulator.staticanalysis.subviews.AllSubViewsOfAllAgentsInterface; @RunWith(value = Parameterized.class) public class TestQualitativeCompressions { private static final String prefixSourseModel = InitData.pathForSourseModel + "qualitative" + 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 TestQualitativeCompressions(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 testCompress() { QualitativeCompressor q = new QualitativeCompressor(localViews); q.buildGroups(rules); q.setLocalViews(); q.compressGroups(); System.out.println("rules"); for (Rule r : rules) { System.out.println("========================="); System.out.println(r); System.out.println(q.getCompressedRule(r)); } System.out.println("groups"); LinkedHashSet<RootedRulesGroup> groupses = new LinkedHashSet<RootedRulesGroup>(); groupses.addAll(q.getGroups()); for (RootedRulesGroup rg : groupses) { System.out.println("++++++++++++++++++++++"); System.out.println(rg.getCompressedRule()); System.out.println("++++++++++++++++++++++"); } } }