diff options
Diffstat (limited to 'Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Main.java')
-rw-r--r-- | Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Main.java | 39 |
1 files changed, 18 insertions, 21 deletions
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Main.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Main.java index e1698e5b..261f32cc 100644 --- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Main.java +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Main.java | |||
@@ -4,11 +4,8 @@ import java.io.File; | |||
4 | import java.io.FileNotFoundException; | 4 | import java.io.FileNotFoundException; |
5 | import java.io.PrintStream; | 5 | import java.io.PrintStream; |
6 | import java.util.ArrayList; | 6 | import java.util.ArrayList; |
7 | import java.util.List; | ||
8 | import java.util.Map; | 7 | import java.util.Map; |
9 | 8 | ||
10 | import org.eclipse.viatra.query.runtime.matchers.aggregators.count; | ||
11 | |||
12 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain; | 9 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain; |
13 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance; | 10 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance; |
14 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph; | 11 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph; |
@@ -27,16 +24,16 @@ public class Main { | |||
27 | return message; | 24 | return message; |
28 | } | 25 | } |
29 | 26 | ||
30 | private static String configFolder = "yakinduum/"; | 27 | private static String configFolder = "yakinduum/config15/"; |
31 | private static String configFileName = configFolder + "info.csv"; | 28 | private static String configFileName = configFolder + "info_new_metric.csv"; |
32 | private static String aggregateViolationMeasureFileName = configFolder + "aggregateInfo2.csv"; | 29 | private static String aggregateViolationMeasureFileName = configFolder + "aggregateInfo.csv"; |
30 | private static String fileReadFolder = "output/Viatra_100/"; | ||
33 | 31 | ||
34 | public static void main(String args[]) { | 32 | public static void main(String args[]) { |
35 | // try { | ||
36 | 33 | ||
37 | 34 | ||
38 | long begin = System.currentTimeMillis(); | 35 | long begin = System.currentTimeMillis(); |
39 | String message = null;//runWithPath("yakinduGeneration.vsconfig"); | 36 | String message = runWithPath("yakinduGeneration.vsconfig"); |
40 | long elapsed = System.currentTimeMillis() - begin; | 37 | long elapsed = System.currentTimeMillis() - begin; |
41 | 38 | ||
42 | if(message != null) { | 39 | if(message != null) { |
@@ -48,17 +45,17 @@ public class Main { | |||
48 | infoOutput.add(time); | 45 | infoOutput.add(time); |
49 | output.add(infoOutput); | 46 | output.add(infoOutput); |
50 | System.out.println(time); | 47 | System.out.println(time); |
51 | //CsvFileWriter.write(output, configFileName); | 48 | CsvFileWriter.write(output, configFileName); |
52 | 49 | ||
53 | 50 | ||
54 | output = new ArrayList<ArrayList<String>>(); | 51 | output = new ArrayList<ArrayList<String>>(); |
55 | output.add(prepareInfo()); | 52 | output.add(prepareInfo()); |
56 | //CsvFileWriter.append(output, configFileName); | 53 | CsvFileWriter.append(output, configFileName); |
57 | 54 | ||
58 | // for(int i = 0; i < 50; i++) { | 55 | for(int i = 0; i < 50; i++) { |
59 | // singleModelViolationMeasure(i+1); | 56 | generateModel(i+1); |
60 | // } | 57 | } |
61 | aggregateViolationMeasure(50); | 58 | //aggregateViolationMeasure(50); |
62 | System.out.println("Finished"); | 59 | System.out.println("Finished"); |
63 | } | 60 | } |
64 | 61 | ||
@@ -70,7 +67,7 @@ public class Main { | |||
70 | infoOutput.add(run+ ""); | 67 | infoOutput.add(run+ ""); |
71 | infoOutput.addAll(calculateMetric(run)); | 68 | infoOutput.addAll(calculateMetric(run)); |
72 | 69 | ||
73 | YakinduumModel model = new YakinduumModel("output/Viatra_100/run"+run+"/"+ filename); | 70 | YakinduumModel model = new YakinduumModel(fileReadFolder +"run" +run + "/" + filename); |
74 | int violationCount = ViolationCheck.calculateViolationCounts(model.yakinduum); | 71 | int violationCount = ViolationCheck.calculateViolationCounts(model.yakinduum); |
75 | infoOutput.add(violationCount + ""); | 72 | infoOutput.add(violationCount + ""); |
76 | 73 | ||
@@ -78,18 +75,18 @@ public class Main { | |||
78 | 75 | ||
79 | //save model to another directory | 76 | //save model to another directory |
80 | model.save(configFolder + run + ".xmi"); | 77 | model.save(configFolder + run + ".xmi"); |
81 | 78 | output.add(infoOutput); | |
82 | CsvFileWriter.append(output, configFileName); | 79 | CsvFileWriter.append(output, configFileName); |
83 | } | 80 | } |
84 | 81 | ||
85 | public static void singleModelViolationMeasure(int run) { | 82 | public static void singleModelViolationMeasure(int run) { |
86 | String filename = run+".xmi"; | 83 | String filename = run+"_1.xmi"; |
87 | //prepare initial info | 84 | //prepare initial info |
88 | ArrayList<ArrayList<String>> output = new ArrayList<ArrayList<String>>(); | 85 | ArrayList<ArrayList<String>> output = new ArrayList<ArrayList<String>>(); |
89 | ArrayList<String> infoOutput = new ArrayList<String>(); | 86 | ArrayList<String> infoOutput = new ArrayList<String>(); |
90 | infoOutput.add(run+ ""); | 87 | infoOutput.add(run+ ""); |
91 | 88 | ||
92 | YakinduumModel model = new YakinduumModel("yakinduum\\config8\\"+ filename); | 89 | YakinduumModel model = new YakinduumModel("output/Viatra_100/run"+run+"/"+ filename); |
93 | 90 | ||
94 | //parse map of violation counts to two list and add them to the result list | 91 | //parse map of violation counts to two list and add them to the result list |
95 | Map<String, Integer> map = ViolationCheck.violationMaps(model.yakinduum); | 92 | Map<String, Integer> map = ViolationCheck.violationMaps(model.yakinduum); |
@@ -112,8 +109,8 @@ public class Main { | |||
112 | ArrayList<String> counts = new ArrayList<String>(); | 109 | ArrayList<String> counts = new ArrayList<String>(); |
113 | ArrayList<String> violationNames = null; | 110 | ArrayList<String> violationNames = null; |
114 | for(int run = 1; run < size+1; run++) { | 111 | for(int run = 1; run < size+1; run++) { |
115 | String filename = run+".xmi"; | 112 | String filename = run+"_1.xmi"; |
116 | YakinduumModel model = new YakinduumModel("yakinduum\\config8\\"+ filename); | 113 | YakinduumModel model = new YakinduumModel("output/Viatra_100/run"+run+"/"+ filename); |
117 | 114 | ||
118 | Map<String, Integer> map = ViolationCheck.violationMaps(model.yakinduum); | 115 | Map<String, Integer> map = ViolationCheck.violationMaps(model.yakinduum); |
119 | if(run == 1) { | 116 | if(run == 1) { |
@@ -147,7 +144,7 @@ public class Main { | |||
147 | //read model and metric | 144 | //read model and metric |
148 | ArrayList<String> output = new ArrayList<String>(); | 145 | ArrayList<String> output = new ArrayList<String>(); |
149 | GraphReader reader = new GraphReader(YakindummPackage.eINSTANCE); | 146 | GraphReader reader = new GraphReader(YakindummPackage.eINSTANCE); |
150 | EMFGraph graph = reader.readModels("output/Viatra_100/run"+run+"/").get(0); | 147 | EMFGraph graph = reader.readModel(fileReadFolder+"/run"+run, run + "_1.xmi"); |
151 | 148 | ||
152 | //KS distance | 149 | //KS distance |
153 | KSDistance ks = new KSDistance(Domain.Yakinduum); | 150 | KSDistance ks = new KSDistance(Domain.Yakinduum); |