diff options
author | 2019-07-10 10:56:00 -0400 | |
---|---|---|
committer | 2019-07-10 10:56:00 -0400 | |
commit | 991dacefdb8f78fccc359d3d2ec836dc2e7fc80a (patch) | |
tree | 6b18aa59c5f711a845aa9e3e5cf3fd3632ad7a33 /Metrics | |
parent | add sample domain for measuring realistic metrics (diff) | |
download | VIATRA-Generator-991dacefdb8f78fccc359d3d2ec836dc2e7fc80a.tar.gz VIATRA-Generator-991dacefdb8f78fccc359d3d2ec836dc2e7fc80a.tar.zst VIATRA-Generator-991dacefdb8f78fccc359d3d2ec836dc2e7fc80a.zip |
measurements for the different violation types, comparison for differenct generation config
Diffstat (limited to 'Metrics')
88 files changed, 2149 insertions, 347 deletions
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/.gitignore index 67ee5625..683b1de1 100644 --- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/.gitignore +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/.gitignore | |||
@@ -1,6 +1 @@ | |||
1 | /ca/ | /ca/ | |
2 | /socialnetwork.aird | ||
3 | /socialnetwork.ecore | ||
4 | /socialnetwork.genmodel | ||
5 | /socialnetwork/ | ||
6 | /statistics/ | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.aird b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.aird new file mode 100644 index 00000000..e7e28ecd --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.aird | |||
@@ -0,0 +1,183 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style"> | ||
3 | <viewpoint:DAnalysis uid="_TZr30HA1EemKP426GDjFOg" selectedViews="_Ta8cEHA1EemKP426GDjFOg" version="14.1.0.201810161215"> | ||
4 | <semanticResources>socialnetwork.ecore</semanticResources> | ||
5 | <semanticResources>socialnetwork.genmodel</semanticResources> | ||
6 | <ownedViews xmi:type="viewpoint:DView" uid="_Ta8cEHA1EemKP426GDjFOg"> | ||
7 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> | ||
8 | <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_TbTBZXA1EemKP426GDjFOg" name="socialnetwork" repPath="#_TbTBYHA1EemKP426GDjFOg"> | ||
9 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | ||
10 | <target xmi:type="ecore:EPackage" href="socialnetwork.ecore#/"/> | ||
11 | </ownedRepresentationDescriptors> | ||
12 | </ownedViews> | ||
13 | </viewpoint:DAnalysis> | ||
14 | <diagram:DSemanticDiagram uid="_TbTBYHA1EemKP426GDjFOg" name="socialnetwork"> | ||
15 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_TbTBYXA1EemKP426GDjFOg" source="DANNOTATION_CUSTOMIZATION_KEY"> | ||
16 | <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_TbTBYnA1EemKP426GDjFOg"> | ||
17 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_ZZkWoHA1EemKP426GDjFOg" sourceArrow="FillDiamond" routingStyle="manhattan"> | ||
18 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
19 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_ZZkWoXA1EemKP426GDjFOg" showIcon="false" labelExpression="service:render"> | ||
20 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
21 | </centerLabelStyleDescription> | ||
22 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_ZZkWonA1EemKP426GDjFOg" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> | ||
23 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> | ||
24 | </endLabelStyleDescription> | ||
25 | </computedStyleDescriptions> | ||
26 | </data> | ||
27 | </ownedAnnotationEntries> | ||
28 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_TbTBZnA1EemKP426GDjFOg" source="GMF_DIAGRAMS"> | ||
29 | <data xmi:type="notation:Diagram" xmi:id="_TbTBZ3A1EemKP426GDjFOg" type="Sirius" element="_TbTBYHA1EemKP426GDjFOg" measurementUnit="Pixel"> | ||
30 | <children xmi:type="notation:Node" xmi:id="_Ur9YAHA1EemKP426GDjFOg" type="2003" element="_Ur5GkHA1EemKP426GDjFOg"> | ||
31 | <children xmi:type="notation:Node" xmi:id="_Ur9YA3A1EemKP426GDjFOg" type="5007"/> | ||
32 | <children xmi:type="notation:Node" xmi:id="_Ur9YBHA1EemKP426GDjFOg" type="7004"> | ||
33 | <children xmi:type="notation:Node" xmi:id="_W_L-4HA1EemKP426GDjFOg" type="3010" element="_W_DcAHA1EemKP426GDjFOg"> | ||
34 | <styles xmi:type="notation:FontStyle" xmi:id="_W_L-4XA1EemKP426GDjFOg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> | ||
35 | <layoutConstraint xmi:type="notation:Location" xmi:id="_W_L-4nA1EemKP426GDjFOg"/> | ||
36 | </children> | ||
37 | <styles xmi:type="notation:SortingStyle" xmi:id="_Ur9YBXA1EemKP426GDjFOg"/> | ||
38 | <styles xmi:type="notation:FilteringStyle" xmi:id="_Ur9YBnA1EemKP426GDjFOg"/> | ||
39 | </children> | ||
40 | <styles xmi:type="notation:ShapeStyle" xmi:id="_Ur9YAXA1EemKP426GDjFOg" fontName="Segoe UI" fontHeight="8"/> | ||
41 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ur9YAnA1EemKP426GDjFOg" x="285" y="165" width="120" height="100"/> | ||
42 | </children> | ||
43 | <children xmi:type="notation:Node" xmi:id="_X2ASIHA1EemKP426GDjFOg" type="2003" element="_X14WUHA1EemKP426GDjFOg"> | ||
44 | <children xmi:type="notation:Node" xmi:id="_X2A5MHA1EemKP426GDjFOg" type="5007"/> | ||
45 | <children xmi:type="notation:Node" xmi:id="_X2A5MXA1EemKP426GDjFOg" type="7004"> | ||
46 | <children xmi:type="notation:Node" xmi:id="_jitw4HA1EemKP426GDjFOg" type="3010" element="_jirUoHA1EemKP426GDjFOg"> | ||
47 | <styles xmi:type="notation:FontStyle" xmi:id="_jitw4XA1EemKP426GDjFOg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> | ||
48 | <layoutConstraint xmi:type="notation:Location" xmi:id="_jitw4nA1EemKP426GDjFOg"/> | ||
49 | </children> | ||
50 | <styles xmi:type="notation:SortingStyle" xmi:id="_X2A5MnA1EemKP426GDjFOg"/> | ||
51 | <styles xmi:type="notation:FilteringStyle" xmi:id="_X2A5M3A1EemKP426GDjFOg"/> | ||
52 | </children> | ||
53 | <styles xmi:type="notation:ShapeStyle" xmi:id="_X2ASIXA1EemKP426GDjFOg" fontName="Segoe UI" fontHeight="8"/> | ||
54 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X2ASInA1EemKP426GDjFOg" x="690" y="180" width="120" height="100"/> | ||
55 | </children> | ||
56 | <styles xmi:type="notation:DiagramStyle" xmi:id="_TbTBaHA1EemKP426GDjFOg"/> | ||
57 | <edges xmi:type="notation:Edge" xmi:id="_ZZnZ8HA1EemKP426GDjFOg" type="4001" element="_ZZjvkHA1EemKP426GDjFOg" source="_Ur9YAHA1EemKP426GDjFOg" target="_X2ASIHA1EemKP426GDjFOg"> | ||
58 | <children xmi:type="notation:Node" xmi:id="_ZZnZ9HA1EemKP426GDjFOg" type="6001"> | ||
59 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZZnZ9XA1EemKP426GDjFOg" x="6" y="10"/> | ||
60 | </children> | ||
61 | <children xmi:type="notation:Node" xmi:id="_ZZnZ9nA1EemKP426GDjFOg" type="6002"> | ||
62 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZZnZ93A1EemKP426GDjFOg" x="1" y="10"/> | ||
63 | </children> | ||
64 | <children xmi:type="notation:Node" xmi:id="_ZZnZ-HA1EemKP426GDjFOg" type="6003"> | ||
65 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZZnZ-XA1EemKP426GDjFOg" x="-1" y="10"/> | ||
66 | </children> | ||
67 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_ZZnZ8XA1EemKP426GDjFOg" routing="Rectilinear"/> | ||
68 | <styles xmi:type="notation:FontStyle" xmi:id="_ZZnZ8nA1EemKP426GDjFOg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
69 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZZnZ83A1EemKP426GDjFOg" points="[0, 0, -287, 4]$[143, 0, -144, 4]$[143, -4, -144, 0]$[287, -4, 0, 0]"/> | ||
70 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZZnZ-nA1EemKP426GDjFOg" id="(1.0,0.5)"/> | ||
71 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZZnZ-3A1EemKP426GDjFOg" id="(0.0,0.30612244897959184)"/> | ||
72 | </edges> | ||
73 | <edges xmi:type="notation:Edge" xmi:id="_f8gfMHA1EemKP426GDjFOg" type="4001" element="_f8eC8HA1EemKP426GDjFOg" source="_X2ASIHA1EemKP426GDjFOg" target="_X2ASIHA1EemKP426GDjFOg"> | ||
74 | <children xmi:type="notation:Node" xmi:id="_f8gfNHA1EemKP426GDjFOg" type="6001"> | ||
75 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8gfNXA1EemKP426GDjFOg" x="-8" y="7"/> | ||
76 | </children> | ||
77 | <children xmi:type="notation:Node" xmi:id="_f8hGQHA1EemKP426GDjFOg" type="6002"> | ||
78 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8hGQXA1EemKP426GDjFOg" x="12" y="10"/> | ||
79 | </children> | ||
80 | <children xmi:type="notation:Node" xmi:id="_f8hGQnA1EemKP426GDjFOg" type="6003"> | ||
81 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8hGQ3A1EemKP426GDjFOg" y="-10"/> | ||
82 | </children> | ||
83 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_f8gfMXA1EemKP426GDjFOg" routing="Rectilinear"/> | ||
84 | <styles xmi:type="notation:FontStyle" xmi:id="_f8gfMnA1EemKP426GDjFOg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
85 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f8gfM3A1EemKP426GDjFOg" points="[4, 1, 0, -21]$[51, 1, 47, -21]$[51, -53, 47, -75]$[-25, -53, -29, -75]$[-25, -8, -29, -30]"/> | ||
86 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f8hGRHA1EemKP426GDjFOg" id="(0.9666666666666667,0.09)"/> | ||
87 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f8hGRXA1EemKP426GDjFOg" id="(1.0,0.30612244897959184)"/> | ||
88 | </edges> | ||
89 | <edges xmi:type="notation:Edge" xmi:id="_eUOggHA6EemKP426GDjFOg" type="4001" element="_eULdMHA6EemKP426GDjFOg" source="_X2ASIHA1EemKP426GDjFOg" target="_X2ASIHA1EemKP426GDjFOg"> | ||
90 | <children xmi:type="notation:Node" xmi:id="_eUOghHA6EemKP426GDjFOg" type="6001"> | ||
91 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eUOghXA6EemKP426GDjFOg" y="-10"/> | ||
92 | </children> | ||
93 | <children xmi:type="notation:Node" xmi:id="_eUOghnA6EemKP426GDjFOg" type="6002"> | ||
94 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eUOgh3A6EemKP426GDjFOg" y="10"/> | ||
95 | </children> | ||
96 | <children xmi:type="notation:Node" xmi:id="_eUOgiHA6EemKP426GDjFOg" type="6003"> | ||
97 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eUOgiXA6EemKP426GDjFOg" y="10"/> | ||
98 | </children> | ||
99 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_eUOggXA6EemKP426GDjFOg" routing="Rectilinear"/> | ||
100 | <styles xmi:type="notation:FontStyle" xmi:id="_eUOggnA6EemKP426GDjFOg" fontName="Segoe UI" fontHeight="8"/> | ||
101 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eUOgg3A6EemKP426GDjFOg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> | ||
102 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eUOginA6EemKP426GDjFOg" id="(0.5,0.5)"/> | ||
103 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eUOgi3A6EemKP426GDjFOg" id="(0.5,0.5)"/> | ||
104 | </edges> | ||
105 | </data> | ||
106 | </ownedAnnotationEntries> | ||
107 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Ur5GkHA1EemKP426GDjFOg" name="SocialNetwork" tooltipText="" outgoingEdges="_ZZjvkHA1EemKP426GDjFOg" width="12" height="10"> | ||
108 | <target xmi:type="ecore:EClass" href="socialnetwork.ecore#//SocialNetwork"/> | ||
109 | <semanticElements xmi:type="ecore:EClass" href="socialnetwork.ecore#//SocialNetwork"/> | ||
110 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_XY_mAHA1EemKP426GDjFOg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
111 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
112 | </ownedStyle> | ||
113 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
114 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_W_DcAHA1EemKP426GDjFOg" name="name : EString" tooltipText=""> | ||
115 | <target xmi:type="ecore:EAttribute" href="socialnetwork.ecore#//SocialNetwork/name"/> | ||
116 | <semanticElements xmi:type="ecore:EAttribute" href="socialnetwork.ecore#//SocialNetwork/name"/> | ||
117 | <ownedStyle xmi:type="diagram:BundledImage" uid="_XZANEHA1EemKP426GDjFOg" labelAlignment="LEFT"> | ||
118 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> | ||
119 | </ownedStyle> | ||
120 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | ||
121 | </ownedElements> | ||
122 | </ownedDiagramElements> | ||
123 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_X14WUHA1EemKP426GDjFOg" name="Person" tooltipText="" outgoingEdges="_f8eC8HA1EemKP426GDjFOg _eULdMHA6EemKP426GDjFOg" incomingEdges="_ZZjvkHA1EemKP426GDjFOg _f8eC8HA1EemKP426GDjFOg _eULdMHA6EemKP426GDjFOg" width="12" height="10"> | ||
124 | <target xmi:type="ecore:EClass" href="socialnetwork.ecore#//Person"/> | ||
125 | <semanticElements xmi:type="ecore:EClass" href="socialnetwork.ecore#//Person"/> | ||
126 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
127 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
128 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
129 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_kAhuQHA1EemKP426GDjFOg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
130 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
131 | </ownedStyle> | ||
132 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
133 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_jirUoHA1EemKP426GDjFOg" name="name : EString" tooltipText=""> | ||
134 | <target xmi:type="ecore:EAttribute" href="socialnetwork.ecore#//Person/name"/> | ||
135 | <semanticElements xmi:type="ecore:EAttribute" href="socialnetwork.ecore#//Person/name"/> | ||
136 | <ownedStyle xmi:type="diagram:BundledImage" uid="_kAiVUHA1EemKP426GDjFOg" labelAlignment="LEFT"> | ||
137 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> | ||
138 | </ownedStyle> | ||
139 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | ||
140 | </ownedElements> | ||
141 | </ownedDiagramElements> | ||
142 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ZZjvkHA1EemKP426GDjFOg" name="[0..*] persons" sourceNode="_Ur5GkHA1EemKP426GDjFOg" targetNode="_X14WUHA1EemKP426GDjFOg"> | ||
143 | <target xmi:type="ecore:EReference" href="socialnetwork.ecore#//SocialNetwork/persons"/> | ||
144 | <semanticElements xmi:type="ecore:EReference" href="socialnetwork.ecore#//SocialNetwork/persons"/> | ||
145 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ZZkWo3A1EemKP426GDjFOg" description="_ZZkWoHA1EemKP426GDjFOg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
146 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ZZkWpHA1EemKP426GDjFOg" showIcon="false"> | ||
147 | <customFeatures>labelSize</customFeatures> | ||
148 | </centerLabelStyle> | ||
149 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_ZZkWpXA1EemKP426GDjFOg" showIcon="false" labelColor="39,76,114"> | ||
150 | <customFeatures>labelSize</customFeatures> | ||
151 | </endLabelStyle> | ||
152 | </ownedStyle> | ||
153 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
154 | </ownedDiagramElements> | ||
155 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_f8eC8HA1EemKP426GDjFOg" name="[0..*] friends" sourceNode="_X14WUHA1EemKP426GDjFOg" targetNode="_X14WUHA1EemKP426GDjFOg"> | ||
156 | <target xmi:type="ecore:EReference" href="socialnetwork.ecore#//Person/friends"/> | ||
157 | <semanticElements xmi:type="ecore:EReference" href="socialnetwork.ecore#//Person/friends"/> | ||
158 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_erMusHA9EemKP426GDjFOg" routingStyle="manhattan" strokeColor="0,0,0"> | ||
159 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/> | ||
160 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_erMusXA9EemKP426GDjFOg" showIcon="false"/> | ||
161 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_erMusnA9EemKP426GDjFOg" labelSize="6" showIcon="false" labelColor="39,76,114"/> | ||
162 | </ownedStyle> | ||
163 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
164 | </ownedDiagramElements> | ||
165 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_eULdMHA6EemKP426GDjFOg" sourceNode="_X14WUHA1EemKP426GDjFOg" targetNode="_X14WUHA1EemKP426GDjFOg" beginLabel="[0..*] children" endLabel="[0..2] parents"> | ||
166 | <target xmi:type="ecore:EReference" href="socialnetwork.ecore#//Person/parents"/> | ||
167 | <semanticElements xmi:type="ecore:EReference" href="socialnetwork.ecore#//Person/children"/> | ||
168 | <semanticElements xmi:type="ecore:EReference" href="socialnetwork.ecore#//Person/parents"/> | ||
169 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_eUMEQHA6EemKP426GDjFOg" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0"> | ||
170 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/> | ||
171 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_eUMEQXA6EemKP426GDjFOg" showIcon="false"/> | ||
172 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_eUMEQnA6EemKP426GDjFOg" showIcon="false"/> | ||
173 | </ownedStyle> | ||
174 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/> | ||
175 | </ownedDiagramElements> | ||
176 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | ||
177 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_TbTBZHA1EemKP426GDjFOg"/> | ||
178 | <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> | ||
179 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/> | ||
180 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/> | ||
181 | <target xmi:type="ecore:EPackage" href="socialnetwork.ecore#/"/> | ||
182 | </diagram:DSemanticDiagram> | ||
183 | </xmi:XMI> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.ecore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.ecore new file mode 100644 index 00000000..cacf9921 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.ecore | |||
@@ -0,0 +1,17 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="socialnetwork" nsURI="http://ecse.mcgill.ca/socialnetwork" nsPrefix="socialnetwork"> | ||
4 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"/> | ||
5 | <eClassifiers xsi:type="ecore:EClass" name="SocialNetwork"> | ||
6 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" | ||
7 | defaultValueLiteral="SocialNetwork"/> | ||
8 | <eStructuralFeatures xsi:type="ecore:EReference" name="persons" upperBound="-1" | ||
9 | eType="#//Person" containment="true"/> | ||
10 | </eClassifiers> | ||
11 | <eClassifiers xsi:type="ecore:EClass" name="Person"> | ||
12 | <eStructuralFeatures xsi:type="ecore:EReference" name="friends" upperBound="-1" | ||
13 | eType="#//Person"/> | ||
14 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" | ||
15 | defaultValueLiteral="Name"/> | ||
16 | </eClassifiers> | ||
17 | </ecore:EPackage> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.genmodel b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.genmodel new file mode 100644 index 00000000..c9515653 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.genmodel | |||
@@ -0,0 +1,21 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" | ||
4 | modelDirectory="/SocialNetwork_plugin/encore_gen" creationIcons="false" | ||
5 | editDirectory="/ca.mcgill.ecse.socialnetwork.edit/src-gen" editorDirectory="/ca.mcgill.ecse.socialnetwork.editor/src-gen" | ||
6 | modelPluginID="SocialNetwork_plugin" modelName="Socialnetwork" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" | ||
7 | codeFormatting="true" importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" | ||
8 | copyrightFields="false" operationReflection="true" importOrganizing="true"> | ||
9 | <foreignModel>socialnetwork.ecore</foreignModel> | ||
10 | <testsDirectory xsi:nil="true"/> | ||
11 | <genPackages prefix="Socialnetwork" disposableProviderFactory="true" ecorePackage="socialnetwork.ecore#/"> | ||
12 | <genClasses ecoreClass="socialnetwork.ecore#//SocialNetwork"> | ||
13 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute socialnetwork.ecore#//SocialNetwork/name"/> | ||
14 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference socialnetwork.ecore#//SocialNetwork/persons"/> | ||
15 | </genClasses> | ||
16 | <genClasses ecoreClass="socialnetwork.ecore#//Person"> | ||
17 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference socialnetwork.ecore#//Person/friends"/> | ||
18 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute socialnetwork.ecore#//Person/name"/> | ||
19 | </genClasses> | ||
20 | </genPackages> | ||
21 | </genmodel:GenModel> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/200_nodes.jpg b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/200_nodes.jpg new file mode 100644 index 00000000..a35c291b --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/200_nodes.jpg | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/220_nodes.jpg b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/220_nodes.jpg new file mode 100644 index 00000000..4d41dff7 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/220_nodes.jpg | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/260_nodes.jpg b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/260_nodes.jpg new file mode 100644 index 00000000..b16cdfb2 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/260_nodes.jpg | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/280_nodes.jpg b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/280_nodes.jpg new file mode 100644 index 00000000..16c0ee23 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/280_nodes.jpg | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/output.txt b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/output.txt new file mode 100644 index 00000000..35158e20 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/output.txt | |||
@@ -0,0 +1,300 @@ | |||
1 | 1 | ||
2 | 9 | ||
3 | 7 | ||
4 | 0 | ||
5 | 4 | ||
6 | 6 | ||
7 | 16 | ||
8 | 0 | ||
9 | 2 | ||
10 | 4 | ||
11 | 17 | ||
12 | 20 | ||
13 | 1 | ||
14 | 5 | ||
15 | 2 | ||
16 | 3 | ||
17 | 11 | ||
18 | 6 | ||
19 | 4 | ||
20 | 0 | ||
21 | 2 | ||
22 | 1 | ||
23 | 3 | ||
24 | 5 | ||
25 | 9 | ||
26 | 13 | ||
27 | 11 | ||
28 | 0 | ||
29 | 1 | ||
30 | 10 | ||
31 | 3 | ||
32 | 0 | ||
33 | 1 | ||
34 | 1 | ||
35 | 0 | ||
36 | 17 | ||
37 | 0 | ||
38 | 4 | ||
39 | 2 | ||
40 | 0 | ||
41 | 1 | ||
42 | 10 | ||
43 | 10 | ||
44 | 0 | ||
45 | 24 | ||
46 | 9 | ||
47 | 0 | ||
48 | 14 | ||
49 | 1 | ||
50 | 11 | ||
51 | 2 | ||
52 | 17 | ||
53 | 3 | ||
54 | 3 | ||
55 | 3 | ||
56 | 0 | ||
57 | 3 | ||
58 | 1 | ||
59 | 3 | ||
60 | 2 | ||
61 | 2 | ||
62 | 1 | ||
63 | 0 | ||
64 | 3 | ||
65 | 6 | ||
66 | 3 | ||
67 | 16 | ||
68 | 3 | ||
69 | 10 | ||
70 | 6 | ||
71 | 6 | ||
72 | 6 | ||
73 | 11 | ||
74 | 6 | ||
75 | 10 | ||
76 | 20 | ||
77 | 1 | ||
78 | 4 | ||
79 | 13 | ||
80 | 0 | ||
81 | 0 | ||
82 | 3 | ||
83 | 2 | ||
84 | 0 | ||
85 | 12 | ||
86 | 0 | ||
87 | 0 | ||
88 | 22 | ||
89 | 4 | ||
90 | 0 | ||
91 | 0 | ||
92 | 20 | ||
93 | 1 | ||
94 | 10 | ||
95 | 9 | ||
96 | 11 | ||
97 | 5 | ||
98 | 27 | ||
99 | 1 | ||
100 | 3 | ||
101 | 9 | ||
102 | 0 | ||
103 | 23 | ||
104 | 10 | ||
105 | 9 | ||
106 | 23 | ||
107 | 0 | ||
108 | 3 | ||
109 | 7 | ||
110 | 2 | ||
111 | 0 | ||
112 | 9 | ||
113 | 3 | ||
114 | 0 | ||
115 | 12 | ||
116 | 11 | ||
117 | 7 | ||
118 | 6 | ||
119 | 9 | ||
120 | 2 | ||
121 | 0 | ||
122 | 3 | ||
123 | 4 | ||
124 | 3 | ||
125 | 9 | ||
126 | 3 | ||
127 | 0 | ||
128 | 7 | ||
129 | 2 | ||
130 | 1 | ||
131 | 9 | ||
132 | 1 | ||
133 | 11 | ||
134 | 6 | ||
135 | 5 | ||
136 | 16 | ||
137 | 0 | ||
138 | 19 | ||
139 | 14 | ||
140 | 9 | ||
141 | 13 | ||
142 | 2 | ||
143 | 8 | ||
144 | 0 | ||
145 | 6 | ||
146 | 1 | ||
147 | 1 | ||
148 | 2 | ||
149 | 0 | ||
150 | 3 | ||
151 | 15 | ||
152 | 3 | ||
153 | 0 | ||
154 | 3 | ||
155 | 17 | ||
156 | 1 | ||
157 | 15 | ||
158 | 5 | ||
159 | 1 | ||
160 | 21 | ||
161 | 8 | ||
162 | 2 | ||
163 | 7 | ||
164 | 3 | ||
165 | 16 | ||
166 | 11 | ||
167 | 1 | ||
168 | 5 | ||
169 | 1 | ||
170 | 5 | ||
171 | 1 | ||
172 | 6 | ||
173 | 3 | ||
174 | 16 | ||
175 | 6 | ||
176 | 17 | ||
177 | 3 | ||
178 | 5 | ||
179 | 7 | ||
180 | 2 | ||
181 | 9 | ||
182 | 2 | ||
183 | 1 | ||
184 | 11 | ||
185 | 1 | ||
186 | 0 | ||
187 | 3 | ||
188 | 5 | ||
189 | 6 | ||
190 | 2 | ||
191 | 5 | ||
192 | 1 | ||
193 | 4 | ||
194 | 9 | ||
195 | 0 | ||
196 | 11 | ||
197 | 1 | ||
198 | 10 | ||
199 | 13 | ||
200 | 6 | ||
201 | 2 | ||
202 | 1 | ||
203 | 3 | ||
204 | 4 | ||
205 | 0 | ||
206 | 1 | ||
207 | 2 | ||
208 | 10 | ||
209 | 12 | ||
210 | 3 | ||
211 | 3 | ||
212 | 3 | ||
213 | 0 | ||
214 | 2 | ||
215 | 4 | ||
216 | 2 | ||
217 | 18 | ||
218 | 3 | ||
219 | 8 | ||
220 | 7 | ||
221 | 5 | ||
222 | 3 | ||
223 | 16 | ||
224 | 1 | ||
225 | 4 | ||
226 | 8 | ||
227 | 15 | ||
228 | 1 | ||
229 | 11 | ||
230 | 15 | ||
231 | 1 | ||
232 | 8 | ||
233 | 7 | ||
234 | 1 | ||
235 | 2 | ||
236 | 0 | ||
237 | 9 | ||
238 | 5 | ||
239 | 2 | ||
240 | 1 | ||
241 | 3 | ||
242 | 6 | ||
243 | 4 | ||
244 | 8 | ||
245 | 3 | ||
246 | 12 | ||
247 | 4 | ||
248 | 21 | ||
249 | 9 | ||
250 | 2 | ||
251 | 3 | ||
252 | 2 | ||
253 | 1 | ||
254 | 3 | ||
255 | 11 | ||
256 | 2 | ||
257 | 9 | ||
258 | 0 | ||
259 | 10 | ||
260 | 6 | ||
261 | 1 | ||
262 | 2 | ||
263 | 0 | ||
264 | 8 | ||
265 | 5 | ||
266 | 2 | ||
267 | 3 | ||
268 | 8 | ||
269 | 1 | ||
270 | 13 | ||
271 | 8 | ||
272 | 2 | ||
273 | 2 | ||
274 | 11 | ||
275 | 4 | ||
276 | 21 | ||
277 | 6 | ||
278 | 5 | ||
279 | 0 | ||
280 | 8 | ||
281 | 8 | ||
282 | 12 | ||
283 | 0 | ||
284 | 0 | ||
285 | 4 | ||
286 | 1 | ||
287 | 19 | ||
288 | 5 | ||
289 | 3 | ||
290 | 1 | ||
291 | 3 | ||
292 | 12 | ||
293 | 2 | ||
294 | 6 | ||
295 | 11 | ||
296 | 8 | ||
297 | 8 | ||
298 | 2 | ||
299 | 18 | ||
300 | 0 | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/plot_distribution.m b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/plot_distribution.m new file mode 100644 index 00000000..4c67a191 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/plot_distribution.m | |||
@@ -0,0 +1,11 @@ | |||
1 | clear; | ||
2 | clc; | ||
3 | |||
4 | matrix = load('-ascii', "output.txt"); | ||
5 | hist(matrix,unique(matrix)); | ||
6 | hold on; | ||
7 | [a,b] = hist(matrix,unique(matrix)) | ||
8 | plot(b, a) | ||
9 | hold off; | ||
10 | sum(matrix) | ||
11 | average = sum(matrix) / length(matrix) \ No newline at end of file | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/mpc_rep/R_2016324.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/mpc_rep/R_2016324.xmi new file mode 100644 index 00000000..493a1731 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/mpc_rep/R_2016324.xmi | |||
@@ -0,0 +1,128 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"> | ||
3 | <regions> | ||
4 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
5 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
6 | <regions> | ||
7 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
8 | <regions> | ||
9 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
10 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
11 | </vertices> | ||
12 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
13 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
14 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
15 | </vertices> | ||
16 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
17 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
18 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
19 | </vertices> | ||
20 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
21 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
22 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
23 | </vertices> | ||
24 | </regions> | ||
25 | </vertices> | ||
26 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.11/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.11/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.12/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.12/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
27 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.12"/> | ||
28 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.11"/> | ||
29 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
30 | </vertices> | ||
31 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.13/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.13/@outgoingTransitions.1"> | ||
32 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.13"/> | ||
33 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.7"/> | ||
34 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
35 | </vertices> | ||
36 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
37 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
38 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.10"/> | ||
39 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.6"/> | ||
40 | </vertices> | ||
41 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.1"> | ||
42 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
43 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
44 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.9"/> | ||
45 | </vertices> | ||
46 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
47 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
48 | </vertices> | ||
49 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.2"> | ||
50 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
51 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
52 | </vertices> | ||
53 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.1"> | ||
54 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
55 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
56 | </vertices> | ||
57 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.0"> | ||
58 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
59 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
60 | </vertices> | ||
61 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.2"> | ||
62 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
63 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
64 | </vertices> | ||
65 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
66 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
67 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
68 | </vertices> | ||
69 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
70 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
71 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
72 | </vertices> | ||
73 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
74 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
75 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
76 | </vertices> | ||
77 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
78 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
79 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
80 | </vertices> | ||
81 | </regions> | ||
82 | </vertices> | ||
83 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
84 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
85 | </vertices> | ||
86 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State"> | ||
87 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
88 | <regions> | ||
89 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry" incomingTransitions="//@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
90 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
91 | </vertices> | ||
92 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
93 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
94 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
95 | </vertices> | ||
96 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.9/@outgoingTransitions.1"> | ||
97 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.8"/> | ||
98 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.10"/> | ||
99 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.4"/> | ||
100 | </vertices> | ||
101 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.8/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.8/@outgoingTransitions.1"> | ||
102 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.7"/> | ||
103 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.9"/> | ||
104 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.10"/> | ||
105 | </vertices> | ||
106 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
107 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
108 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.5"/> | ||
109 | </vertices> | ||
110 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.1"/> | ||
111 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.1"/> | ||
112 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
113 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
114 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.6"/> | ||
115 | </vertices> | ||
116 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
117 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
118 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
119 | </vertices> | ||
120 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
121 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
122 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
123 | </vertices> | ||
124 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.2 //@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.1"/> | ||
125 | </regions> | ||
126 | </vertices> | ||
127 | </regions> | ||
128 | </hu.bme.mit.inf.yakindumm:Statechart> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/na_rep/R_2017419.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/na_rep/R_2017419.xmi new file mode 100644 index 00000000..369760bf --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/na_rep/R_2017419.xmi | |||
@@ -0,0 +1,138 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"> | ||
3 | <regions> | ||
4 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.5/@outgoingTransitions.0"> | ||
5 | <regions> | ||
6 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.2 //@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.2 //@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.2 //@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.3"> | ||
7 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
8 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
9 | </vertices> | ||
10 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.1"> | ||
11 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
12 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
13 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
14 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
15 | </vertices> | ||
16 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
17 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
18 | </vertices> | ||
19 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.3"> | ||
20 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
21 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
22 | </vertices> | ||
23 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
24 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
25 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
26 | </vertices> | ||
27 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.0"> | ||
28 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.6"/> | ||
29 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.7"/> | ||
30 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
31 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
32 | </vertices> | ||
33 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.0"> | ||
34 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
35 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
36 | </vertices> | ||
37 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
38 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
39 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
40 | </vertices> | ||
41 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.3 //@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.1"> | ||
42 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.10"/> | ||
43 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.9"/> | ||
44 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
45 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
46 | </vertices> | ||
47 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.1"> | ||
48 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
49 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
50 | </vertices> | ||
51 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.0"> | ||
52 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
53 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
54 | </vertices> | ||
55 | </regions> | ||
56 | </vertices> | ||
57 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.4/@outgoingTransitions.1"> | ||
58 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
59 | <regions> | ||
60 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.7/@outgoingTransitions.0"> | ||
61 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
62 | </vertices> | ||
63 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
64 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3"/> | ||
65 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
66 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.5"/> | ||
67 | </vertices> | ||
68 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.6/@outgoingTransitions.0"/> | ||
69 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.6/@outgoingTransitions.1"> | ||
70 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.7"/> | ||
71 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.6"/> | ||
72 | </vertices> | ||
73 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
74 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.1"/> | ||
75 | </vertices> | ||
76 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
77 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2"/> | ||
78 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.1"/> | ||
79 | </vertices> | ||
80 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
81 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2"/> | ||
82 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3"/> | ||
83 | </vertices> | ||
84 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
85 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.0"/> | ||
86 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.0"/> | ||
87 | </vertices> | ||
88 | </regions> | ||
89 | </vertices> | ||
90 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@outgoingTransitions.1 //@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
91 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
92 | <regions> | ||
93 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.1"> | ||
94 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | ||
95 | </vertices> | ||
96 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
97 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
98 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | ||
99 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.5"/> | ||
100 | </vertices> | ||
101 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.0"/> | ||
102 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.6/@outgoingTransitions.1"> | ||
103 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.6"/> | ||
104 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.7"/> | ||
105 | </vertices> | ||
106 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
107 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
108 | </vertices> | ||
109 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
110 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
111 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
112 | </vertices> | ||
113 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
114 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
115 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
116 | </vertices> | ||
117 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
118 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
119 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
120 | </vertices> | ||
121 | </regions> | ||
122 | </vertices> | ||
123 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
124 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
125 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
126 | </vertices> | ||
127 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
128 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
129 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
130 | </vertices> | ||
131 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@outgoingTransitions.0"> | ||
132 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
133 | </vertices> | ||
134 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
135 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
136 | </vertices> | ||
137 | </regions> | ||
138 | </hu.bme.mit.inf.yakindumm:Statechart> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/out_d_rep/R_2015225.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/out_d_rep/R_2015225.xmi new file mode 100644 index 00000000..21fee5a9 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/out_d_rep/R_2015225.xmi | |||
@@ -0,0 +1,145 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"> | ||
3 | <regions> | ||
4 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
5 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
6 | </vertices> | ||
7 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.2 //@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
8 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
9 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
10 | </vertices> | ||
11 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
12 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
13 | <regions> | ||
14 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.2"> | ||
15 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
16 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
17 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
18 | </vertices> | ||
19 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.9/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.10/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.9/@outgoingTransitions.0"> | ||
20 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.9"/> | ||
21 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
22 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.10"/> | ||
23 | </vertices> | ||
24 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.8/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.8/@outgoingTransitions.1"> | ||
25 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.8"/> | ||
26 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
27 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.7"/> | ||
28 | </vertices> | ||
29 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.6/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
30 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.6"/> | ||
31 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.5"/> | ||
32 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
33 | </vertices> | ||
34 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
35 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
36 | </vertices> | ||
37 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
38 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
39 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
40 | </vertices> | ||
41 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
42 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
43 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
44 | </vertices> | ||
45 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
46 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
47 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
48 | </vertices> | ||
49 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
50 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
51 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
52 | </vertices> | ||
53 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
54 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
55 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
56 | </vertices> | ||
57 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
58 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
59 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
60 | </vertices> | ||
61 | </regions> | ||
62 | </vertices> | ||
63 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.6/@outgoingTransitions.0"> | ||
64 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
65 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
66 | <regions> | ||
67 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
68 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.1"/> | ||
69 | </vertices> | ||
70 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
71 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.2"/> | ||
72 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.3"/> | ||
73 | </vertices> | ||
74 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
75 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.4"/> | ||
76 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.6"/> | ||
77 | </vertices> | ||
78 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.8/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.3/@regions.0/@vertices.4/@outgoingTransitions.1"> | ||
79 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.8"/> | ||
80 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.5"/> | ||
81 | </vertices> | ||
82 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
83 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.3"/> | ||
84 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.3"/> | ||
85 | </vertices> | ||
86 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
87 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.2"/> | ||
88 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.2"/> | ||
89 | </vertices> | ||
90 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.2/@outgoingTransitions.1"> | ||
91 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.2"/> | ||
92 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.7"/> | ||
93 | </vertices> | ||
94 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.1 //@regions.0/@vertices.3/@regions.0/@vertices.6/@outgoingTransitions.1"/> | ||
95 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
96 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.3"/> | ||
97 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.9"/> | ||
98 | </vertices> | ||
99 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.8/@outgoingTransitions.1 //@regions.0/@vertices.5/@outgoingTransitions.2"/> | ||
100 | </regions> | ||
101 | </vertices> | ||
102 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.0"> | ||
103 | <outgoingTransitions target="//@regions.0/@vertices.6"/> | ||
104 | <regions> | ||
105 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
106 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.1"/> | ||
107 | </vertices> | ||
108 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
109 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.3"/> | ||
110 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.2"/> | ||
111 | </vertices> | ||
112 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.4/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
113 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.4"/> | ||
114 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.8"/> | ||
115 | </vertices> | ||
116 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.4/@regions.0/@vertices.6/@outgoingTransitions.0"> | ||
117 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.9"/> | ||
118 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.6"/> | ||
119 | </vertices> | ||
120 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
121 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.2"/> | ||
122 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.5"/> | ||
123 | </vertices> | ||
124 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.4/@outgoingTransitions.1 //@regions.0/@vertices.6/@outgoingTransitions.2"/> | ||
125 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
126 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.3"/> | ||
127 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.7"/> | ||
128 | </vertices> | ||
129 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.6/@outgoingTransitions.1 //@regions.0/@vertices.6/@outgoingTransitions.1"/> | ||
130 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.2/@outgoingTransitions.1"/> | ||
131 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.3/@outgoingTransitions.0"/> | ||
132 | </regions> | ||
133 | </vertices> | ||
134 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
135 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | ||
136 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.7"/> | ||
137 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.9"/> | ||
138 | </vertices> | ||
139 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.4/@outgoingTransitions.0"> | ||
140 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
141 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.7"/> | ||
142 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.5"/> | ||
143 | </vertices> | ||
144 | </regions> | ||
145 | </hu.bme.mit.inf.yakindumm:Statechart> | ||
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 72ea45d1..e1698e5b 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,6 +4,10 @@ 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; | ||
9 | |||
10 | import org.eclipse.viatra.query.runtime.matchers.aggregators.count; | ||
7 | 11 | ||
8 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain; | 12 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain; |
9 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance; | 13 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance; |
@@ -23,59 +27,127 @@ public class Main { | |||
23 | return message; | 27 | return message; |
24 | } | 28 | } |
25 | 29 | ||
30 | private static String configFolder = "yakinduum/"; | ||
31 | private static String configFileName = configFolder + "info.csv"; | ||
32 | private static String aggregateViolationMeasureFileName = configFolder + "aggregateInfo2.csv"; | ||
33 | |||
26 | public static void main(String args[]) { | 34 | public static void main(String args[]) { |
27 | // try { | 35 | // try { |
28 | 36 | ||
37 | |||
38 | long begin = System.currentTimeMillis(); | ||
39 | String message = null;//runWithPath("yakinduGeneration.vsconfig"); | ||
40 | long elapsed = System.currentTimeMillis() - begin; | ||
41 | |||
42 | if(message != null) { | ||
43 | return; | ||
44 | } | ||
29 | ArrayList<ArrayList<String>> output = new ArrayList<ArrayList<String>>(); | 45 | ArrayList<ArrayList<String>> output = new ArrayList<ArrayList<String>>(); |
46 | String time = formatTime(elapsed); | ||
47 | ArrayList<String> infoOutput = new ArrayList<String>(); | ||
48 | infoOutput.add(time); | ||
49 | output.add(infoOutput); | ||
50 | System.out.println(time); | ||
51 | //CsvFileWriter.write(output, configFileName); | ||
52 | |||
53 | |||
54 | output = new ArrayList<ArrayList<String>>(); | ||
30 | output.add(prepareInfo()); | 55 | output.add(prepareInfo()); |
31 | CsvFileWriter.write(output, "yakinduum/info.csv"); | 56 | //CsvFileWriter.append(output, configFileName); |
32 | //YakinduumModel.init(); | 57 | |
33 | generateModel(1); | 58 | // for(int i = 0; i < 50; i++) { |
34 | // }catch(Exception e) { | 59 | // singleModelViolationMeasure(i+1); |
35 | // e.printStackTrace(); | ||
36 | // }finally { | ||
37 | // outDegreeStatistic(); | ||
38 | // } | 60 | // } |
39 | // outDegreeStatistic(); | 61 | aggregateViolationMeasure(50); |
40 | 62 | System.out.println("Finished"); | |
41 | } | 63 | } |
42 | 64 | ||
43 | public static void generateModel(int run) { | 65 | public static void generateModel(int run) { |
66 | String filename = run+"_1.xmi"; | ||
44 | //prepare initial info | 67 | //prepare initial info |
45 | long begin = System.currentTimeMillis(); | 68 | ArrayList<ArrayList<String>> output = new ArrayList<ArrayList<String>>(); |
46 | String message = runWithPath("yakinduGeneration.vsconfig"); | 69 | ArrayList<String> infoOutput = new ArrayList<String>(); |
70 | infoOutput.add(run+ ""); | ||
71 | infoOutput.addAll(calculateMetric(run)); | ||
72 | |||
73 | YakinduumModel model = new YakinduumModel("output/Viatra_100/run"+run+"/"+ filename); | ||
74 | int violationCount = ViolationCheck.calculateViolationCounts(model.yakinduum); | ||
75 | infoOutput.add(violationCount + ""); | ||
76 | |||
77 | |||
78 | |||
79 | //save model to another directory | ||
80 | model.save(configFolder + run + ".xmi"); | ||
81 | |||
82 | CsvFileWriter.append(output, configFileName); | ||
83 | } | ||
47 | 84 | ||
85 | public static void singleModelViolationMeasure(int run) { | ||
86 | String filename = run+".xmi"; | ||
87 | //prepare initial info | ||
88 | ArrayList<ArrayList<String>> output = new ArrayList<ArrayList<String>>(); | ||
89 | ArrayList<String> infoOutput = new ArrayList<String>(); | ||
90 | infoOutput.add(run+ ""); | ||
91 | |||
92 | YakinduumModel model = new YakinduumModel("yakinduum\\config8\\"+ filename); | ||
48 | 93 | ||
94 | //parse map of violation counts to two list and add them to the result list | ||
95 | Map<String, Integer> map = ViolationCheck.violationMaps(model.yakinduum); | ||
96 | ArrayList<String> counts = new ArrayList<String>(); | ||
97 | ArrayList<String> violationNames = new ArrayList<String>(map.keySet()); | ||
98 | for(int i = 0; i < violationNames.size(); i++) { | ||
99 | String name = violationNames.get(i); | ||
100 | int total = map.get(name); | ||
101 | counts.add(total + ""); | ||
102 | } | ||
103 | output.add(infoOutput); | ||
104 | output.add(violationNames); | ||
105 | output.add(counts); | ||
106 | |||
107 | CsvFileWriter.append(output, configFileName); | ||
108 | } | ||
109 | |||
110 | public static void aggregateViolationMeasure(int size) { | ||
111 | ArrayList<ArrayList<String>> output = new ArrayList<ArrayList<String>>(); | ||
112 | ArrayList<String> counts = new ArrayList<String>(); | ||
113 | ArrayList<String> violationNames = null; | ||
114 | for(int run = 1; run < size+1; run++) { | ||
115 | String filename = run+".xmi"; | ||
116 | YakinduumModel model = new YakinduumModel("yakinduum\\config8\\"+ filename); | ||
117 | |||
118 | Map<String, Integer> map = ViolationCheck.violationMaps(model.yakinduum); | ||
119 | if(run == 1) { | ||
120 | violationNames = new ArrayList<String>(map.keySet()); | ||
121 | for(int i = 0; i < violationNames.size(); i++) { | ||
122 | String name = violationNames.get(i); | ||
123 | int total = map.get(name); | ||
124 | counts.add(total + ""); | ||
125 | } | ||
126 | }else { | ||
127 | for(int i = 0; i < violationNames.size(); i++) { | ||
128 | int count = Integer.parseInt(counts.get(i)); | ||
129 | String name = violationNames.get(i); | ||
130 | int total = count + map.get(name); | ||
131 | counts.set(i, total + ""); | ||
132 | } | ||
133 | } | ||
134 | } | ||
49 | 135 | ||
50 | if(message == null) { | 136 | for(int i = 0; i < counts.size(); i++) { |
51 | ArrayList<ArrayList<String>> output = new ArrayList<ArrayList<String>>(); | 137 | double count = Integer.parseInt(counts.get(i)) / (double) size; |
52 | long elapsed = System.currentTimeMillis() - begin; | 138 | counts.set(i, count + ""); |
53 | String time = formatTime(elapsed); | ||
54 | |||
55 | ArrayList<String> infoOutput = new ArrayList<String>(); | ||
56 | infoOutput.add(run+ ""); | ||
57 | infoOutput.add(time); | ||
58 | infoOutput.addAll(calculateMetric()); | ||
59 | |||
60 | YakinduumModel model = new YakinduumModel("output/Viatra_100/1.xmi"); | ||
61 | int violationCount = ViolationCheck.calculateViolationCounts(model.yakinduum); | ||
62 | infoOutput.add(violationCount + ""); | ||
63 | |||
64 | //save model to another directory | ||
65 | model.save("yakinduum/" + run + ".xmi"); | ||
66 | |||
67 | output.add(infoOutput); | ||
68 | CsvFileWriter.append(output, "yakinduum/info.csv"); | ||
69 | System.out.println("Finished"); | ||
70 | } | 139 | } |
71 | 140 | ||
141 | output.add(violationNames); | ||
142 | output.add(counts); | ||
143 | CsvFileWriter.write(output, aggregateViolationMeasureFileName); | ||
72 | } | 144 | } |
73 | 145 | ||
74 | public static ArrayList<String> calculateMetric() { | 146 | public static ArrayList<String> calculateMetric(int run) { |
75 | //read model and metric | 147 | //read model and metric |
76 | ArrayList<String> output = new ArrayList<String>(); | 148 | ArrayList<String> output = new ArrayList<String>(); |
77 | GraphReader reader = new GraphReader(YakindummPackage.eINSTANCE); | 149 | GraphReader reader = new GraphReader(YakindummPackage.eINSTANCE); |
78 | EMFGraph graph = reader.readModels("output/Viatra_100/").get(0); | 150 | EMFGraph graph = reader.readModels("output/Viatra_100/run"+run+"/").get(0); |
79 | 151 | ||
80 | //KS distance | 152 | //KS distance |
81 | KSDistance ks = new KSDistance(Domain.Yakinduum); | 153 | KSDistance ks = new KSDistance(Domain.Yakinduum); |
@@ -86,17 +158,18 @@ public class Main { | |||
86 | output.add(ks.outDegreeDistance(samples.outDegreeSamples) + ""); | 158 | output.add(ks.outDegreeDistance(samples.outDegreeSamples) + ""); |
87 | output.add(ks.naDistance(samples.naSamples)+ ""); | 159 | output.add(ks.naDistance(samples.naSamples)+ ""); |
88 | output.add(ks.mpcDistance(samples.mpcSamples) + ""); | 160 | output.add(ks.mpcDistance(samples.mpcSamples) + ""); |
161 | output.add(ks.typedOutDegreeDistance(samples.typedOutDegreeSamples) + ""); | ||
89 | return output; | 162 | return output; |
90 | } | 163 | } |
91 | 164 | ||
92 | public static ArrayList<String> prepareInfo() { | 165 | public static ArrayList<String> prepareInfo() { |
93 | ArrayList<String> info = new ArrayList<String>(); | 166 | ArrayList<String> info = new ArrayList<String>(); |
94 | info.add("ID"); | 167 | info.add("ID"); |
95 | info.add("Time"); | ||
96 | info.add("# of Nodes"); | 168 | info.add("# of Nodes"); |
97 | info.add("Out Degree"); | 169 | info.add("Out Degree"); |
98 | info.add("Node Activity"); | 170 | info.add("Node Activity"); |
99 | info.add("MPC"); | 171 | info.add("MPC"); |
172 | info.add("Typed Out Degree"); | ||
100 | info.add("Violations"); | 173 | info.add("Violations"); |
101 | return info; | 174 | return info; |
102 | } | 175 | } |
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduGeneration.vsconfig b/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduGeneration.vsconfig index cf08c562..14e1a3f7 100644 --- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduGeneration.vsconfig +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduGeneration.vsconfig | |||
@@ -1,5 +1,5 @@ | |||
1 | import epackage "../VIATRA-Generator/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/model/yakindu_simplified.ecore" | 1 | import epackage "../../../Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/model/yakindu_simplified.ecore" |
2 | import viatra "../VIATRA-Generator/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql" | 2 | import viatra "../../../Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql" |
3 | 3 | ||
4 | generate { | 4 | generate { |
5 | metamodel = { package yakindumm excluding { Synchronization}} | 5 | metamodel = { package yakindumm excluding { Synchronization}} |
@@ -13,7 +13,7 @@ generate { | |||
13 | } | 13 | } |
14 | 14 | ||
15 | number = 1 | 15 | number = 1 |
16 | runs = 1 | 16 | runs = 50 |
17 | config = { | 17 | config = { |
18 | log-level = none | 18 | log-level = none |
19 | } | 19 | } |
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduum/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduum/.gitignore new file mode 100644 index 00000000..17126b28 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduum/.gitignore | |||
@@ -0,0 +1,4 @@ | |||
1 | # ignore everything in this folder except for this folder it self | ||
2 | |||
3 | * | ||
4 | !.gitignore \ No newline at end of file | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduum/1.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduum/1.xmi deleted file mode 100644 index 6bee747f..00000000 --- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduum/1.xmi +++ /dev/null | |||
@@ -1,130 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"> | ||
3 | <regions> | ||
4 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:FinalState" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.2/@outgoingTransitions.1"/> | ||
5 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Exit" incomingTransitions="//@regions.0/@vertices.3/@regions.1/@vertices.1/@outgoingTransitions.5 //@regions.0/@vertices.3/@regions.1/@vertices.1/@outgoingTransitions.7"> | ||
6 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
7 | </vertices> | ||
8 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Exit" incomingTransitions="//@regions.1/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.5/@regions.0/@vertices.0/@outgoingTransitions.1 //@regions.0/@vertices.3/@regions.0/@vertices.7/@outgoingTransitions.2"/> | ||
9 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.5/@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.3/@outgoingTransitions.4 //@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.1/@vertices.1/@outgoingTransitions.4"> | ||
10 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.1/@vertices.1"/> | ||
11 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
12 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
13 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.0"/> | ||
14 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
15 | <outgoingTransitions target="//@regions.1/@vertices.1"/> | ||
16 | <regions> | ||
17 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:FinalState" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.3/@outgoingTransitions.3"> | ||
18 | <outgoingTransitions target="//@regions.1/@vertices.3"/> | ||
19 | </vertices> | ||
20 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.1/@vertices.3/@outgoingTransitions.1"> | ||
21 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.1/@vertices.1"/> | ||
22 | <outgoingTransitions target="//@regions.0/@vertices.5/@regions.0/@vertices.4"/> | ||
23 | </vertices> | ||
24 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
25 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.2"/> | ||
26 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
27 | </vertices> | ||
28 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
29 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.5"/> | ||
30 | </vertices> | ||
31 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State"/> | ||
32 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.5/@outgoingTransitions.1 //@regions.0/@vertices.3/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
33 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.0"/> | ||
34 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.5"/> | ||
35 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
36 | <outgoingTransitions target="//@regions.1/@vertices.3"/> | ||
37 | </vertices> | ||
38 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:FinalState" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.1 //@regions.0/@vertices.5/@regions.0/@vertices.4/@outgoingTransitions.2"/> | ||
39 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.1/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.7/@outgoingTransitions.1"> | ||
40 | <outgoingTransitions target="//@regions.1/@vertices.0"/> | ||
41 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.7"/> | ||
42 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
43 | </vertices> | ||
44 | </regions> | ||
45 | <regions> | ||
46 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.1/@vertices.0/@outgoingTransitions.0"> | ||
47 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.1/@vertices.0"/> | ||
48 | </vertices> | ||
49 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.1/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.1/@vertices.2/@outgoingTransitions.0 //@regions.1/@vertices.8/@outgoingTransitions.1"> | ||
50 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | ||
51 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.1/@vertices.1"/> | ||
52 | <outgoingTransitions target="//@regions.0/@vertices.5/@regions.0/@vertices.5"/> | ||
53 | <outgoingTransitions target="//@regions.1/@vertices.7"/> | ||
54 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
55 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
56 | <outgoingTransitions target="//@regions.1/@vertices.6"/> | ||
57 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
58 | </vertices> | ||
59 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
60 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.1/@vertices.1"/> | ||
61 | </vertices> | ||
62 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.1/@vertices.3/@outgoingTransitions.0"> | ||
63 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.1/@vertices.3"/> | ||
64 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.1"/> | ||
65 | </vertices> | ||
66 | </regions> | ||
67 | </vertices> | ||
68 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.1/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.5/@outgoingTransitions.3"> | ||
69 | <outgoingTransitions target="//@regions.0/@vertices.6"/> | ||
70 | </vertices> | ||
71 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.5/@outgoingTransitions.2 //@regions.0/@vertices.3/@outgoingTransitions.1 //@regions.0/@vertices.3/@outgoingTransitions.2 //@regions.0/@vertices.5/@outgoingTransitions.2 //@regions.1/@vertices.2/@outgoingTransitions.0"> | ||
72 | <outgoingTransitions target="//@regions.1/@vertices.2"/> | ||
73 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.6"/> | ||
74 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
75 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | ||
76 | <regions> | ||
77 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.1/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.5/@regions.0/@vertices.0/@outgoingTransitions.2"> | ||
78 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
79 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
80 | <outgoingTransitions target="//@regions.0/@vertices.5/@regions.0/@vertices.0"/> | ||
81 | <outgoingTransitions target="//@regions.0/@vertices.5/@regions.0/@vertices.5"/> | ||
82 | </vertices> | ||
83 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Exit" incomingTransitions="//@regions.1/@vertices.8/@outgoingTransitions.0"/> | ||
84 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
85 | <outgoingTransitions/> | ||
86 | </vertices> | ||
87 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.5/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
88 | <outgoingTransitions target="//@regions.1/@vertices.0"/> | ||
89 | <outgoingTransitions target="//@regions.0/@vertices.5/@regions.0/@vertices.3"/> | ||
90 | </vertices> | ||
91 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.5/@regions.0/@vertices.4/@outgoingTransitions.1 //@regions.0/@vertices.3/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
92 | <outgoingTransitions target="//@regions.1/@vertices.3"/> | ||
93 | <outgoingTransitions target="//@regions.0/@vertices.5/@regions.0/@vertices.4"/> | ||
94 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.6"/> | ||
95 | </vertices> | ||
96 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Exit" incomingTransitions="//@regions.0/@vertices.3/@regions.1/@vertices.1/@outgoingTransitions.2 //@regions.0/@vertices.5/@regions.0/@vertices.0/@outgoingTransitions.3"/> | ||
97 | </regions> | ||
98 | </vertices> | ||
99 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:FinalState" incomingTransitions="//@regions.1/@vertices.0/@outgoingTransitions.1 //@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.1/@vertices.2/@outgoingTransitions.1"/> | ||
100 | </regions> | ||
101 | <regions> | ||
102 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.5/@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.1/@vertices.0/@outgoingTransitions.2"> | ||
103 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.7"/> | ||
104 | <outgoingTransitions target="//@regions.0/@vertices.6"/> | ||
105 | <outgoingTransitions target="//@regions.1/@vertices.0"/> | ||
106 | <outgoingTransitions target="//@regions.1/@vertices.5"/> | ||
107 | </vertices> | ||
108 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:FinalState" incomingTransitions="//@regions.1/@vertices.5/@outgoingTransitions.2 //@regions.0/@vertices.3/@outgoingTransitions.5"/> | ||
109 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.0"> | ||
110 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
111 | <outgoingTransitions target="//@regions.0/@vertices.6"/> | ||
112 | </vertices> | ||
113 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Exit" incomingTransitions="//@regions.0/@vertices.5/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.5/@outgoingTransitions.3 //@regions.0/@vertices.3/@regions.0/@vertices.0/@outgoingTransitions.0"/> | ||
114 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
115 | <outgoingTransitions target="//@regions.0/@vertices.5/@regions.0/@vertices.0"/> | ||
116 | </vertices> | ||
117 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.1/@vertices.0/@outgoingTransitions.3 //@regions.1/@vertices.5/@outgoingTransitions.1"> | ||
118 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
119 | <outgoingTransitions target="//@regions.1/@vertices.5"/> | ||
120 | <outgoingTransitions target="//@regions.1/@vertices.1"/> | ||
121 | <outgoingTransitions target="//@regions.1/@vertices.8"/> | ||
122 | </vertices> | ||
123 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:FinalState" incomingTransitions="//@regions.0/@vertices.3/@regions.1/@vertices.1/@outgoingTransitions.6"/> | ||
124 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:FinalState" incomingTransitions="//@regions.0/@vertices.3/@regions.1/@vertices.1/@outgoingTransitions.3"/> | ||
125 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.1/@vertices.5/@outgoingTransitions.3"> | ||
126 | <outgoingTransitions target="//@regions.0/@vertices.5/@regions.0/@vertices.1"/> | ||
127 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.1/@vertices.1"/> | ||
128 | </vertices> | ||
129 | </regions> | ||
130 | </hu.bme.mit.inf.yakindumm:Statechart> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduum/info.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduum/info.csv index e11b75f9..c79bc07f 100644 --- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduum/info.csv +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduum/info.csv | |||
@@ -1,2 +1,150 @@ | |||
1 | ID,Time,# of Nodes,Out Degree,Node Activity,MPC,Violations | 1 | 1 |
2 | 1,3 : 50.959,100,0.031818181818181815,0.10775510204081633,0.10059701492537314,4 | 2 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry |
3 | 0,0,4,0,12,6,0,0,0,8 | ||
4 | 2 | ||
5 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
6 | 0,0,5,0,12,13,4,0,0,2 | ||
7 | 3 | ||
8 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
9 | 0,0,3,1,4,9,3,0,0,0 | ||
10 | 4 | ||
11 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
12 | 0,0,1,0,7,12,3,0,0,2 | ||
13 | 5 | ||
14 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
15 | 0,0,1,0,8,7,6,0,0,2 | ||
16 | 6 | ||
17 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
18 | 0,0,5,0,11,6,4,0,1,6 | ||
19 | 7 | ||
20 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
21 | 0,0,4,2,9,10,4,1,0,2 | ||
22 | 8 | ||
23 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
24 | 0,0,3,0,9,7,5,0,0,0 | ||
25 | 9 | ||
26 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
27 | 0,0,6,0,13,8,4,0,0,10 | ||
28 | 10 | ||
29 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
30 | 0,0,2,0,7,8,2,0,0,4 | ||
31 | 11 | ||
32 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
33 | 0,0,2,0,8,7,3,0,0,2 | ||
34 | 12 | ||
35 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
36 | 0,0,5,0,13,4,1,0,0,2 | ||
37 | 13 | ||
38 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
39 | 0,0,3,1,12,20,2,0,0,2 | ||
40 | 14 | ||
41 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
42 | 0,0,6,0,13,7,2,0,0,0 | ||
43 | 15 | ||
44 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
45 | 0,0,2,0,15,12,3,0,2,2 | ||
46 | 16 | ||
47 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
48 | 0,0,3,0,6,10,1,0,0,2 | ||
49 | 17 | ||
50 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
51 | 0,0,4,1,9,7,2,0,0,4 | ||
52 | 18 | ||
53 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
54 | 0,0,1,0,8,12,4,0,0,0 | ||
55 | 19 | ||
56 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
57 | 0,0,4,0,10,10,1,0,0,0 | ||
58 | 20 | ||
59 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
60 | 0,0,4,2,11,11,6,0,0,2 | ||
61 | 21 | ||
62 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
63 | 0,0,3,1,15,12,4,1,0,2 | ||
64 | 22 | ||
65 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
66 | 0,0,5,0,14,4,1,0,0,4 | ||
67 | 23 | ||
68 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
69 | 0,0,3,1,8,11,4,0,0,2 | ||
70 | 24 | ||
71 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
72 | 0,0,1,0,12,10,4,0,0,0 | ||
73 | 25 | ||
74 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
75 | 0,0,1,1,9,1,4,0,0,2 | ||
76 | 26 | ||
77 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
78 | 0,0,5,0,9,4,7,1,0,2 | ||
79 | 27 | ||
80 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
81 | 0,0,3,0,11,31,0,0,0,2 | ||
82 | 28 | ||
83 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
84 | 0,0,5,0,6,12,0,1,0,2 | ||
85 | 29 | ||
86 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
87 | 0,0,3,1,10,10,3,0,0,0 | ||
88 | 30 | ||
89 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
90 | 0,0,1,0,10,23,4,0,0,2 | ||
91 | 31 | ||
92 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
93 | 0,0,4,0,4,8,3,0,0,2 | ||
94 | 32 | ||
95 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
96 | 0,0,3,0,20,3,1,0,0,2 | ||
97 | 33 | ||
98 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
99 | 0,0,1,1,9,11,7,0,0,2 | ||
100 | 34 | ||
101 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
102 | 0,0,3,3,1,11,7,0,0,2 | ||
103 | 35 | ||
104 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
105 | 0,0,2,0,7,14,6,0,0,0 | ||
106 | 36 | ||
107 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
108 | 0,0,4,0,7,10,1,0,0,0 | ||
109 | 37 | ||
110 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
111 | 0,0,1,0,13,8,3,0,1,2 | ||
112 | 38 | ||
113 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
114 | 0,0,4,0,10,2,5,0,0,4 | ||
115 | 39 | ||
116 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
117 | 0,0,3,1,11,8,5,0,0,2 | ||
118 | 40 | ||
119 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
120 | 0,0,3,0,12,19,4,0,0,6 | ||
121 | 41 | ||
122 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
123 | 0,0,7,0,2,14,1,2,0,2 | ||
124 | 42 | ||
125 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
126 | 0,0,3,1,17,5,2,0,0,0 | ||
127 | 43 | ||
128 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
129 | 0,0,4,0,10,6,2,0,0,0 | ||
130 | 44 | ||
131 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
132 | 0,0,4,0,9,5,4,0,0,0 | ||
133 | 45 | ||
134 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
135 | 0,0,1,0,7,13,4,0,0,2 | ||
136 | 46 | ||
137 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
138 | 0,0,4,0,8,6,1,1,0,4 | ||
139 | 47 | ||
140 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
141 | 0,0,5,0,8,11,6,0,0,0 | ||
142 | 48 | ||
143 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
144 | 0,0,2,0,22,4,3,1,0,4 | ||
145 | 49 | ||
146 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
147 | 0,0,4,0,10,5,2,0,0,2 | ||
148 | 50 | ||
149 | choiceHasNoOutgoing,choiceHasNoIncoming,incomingToEntry,noStateInRegion,outgoingFromFinal,outgoingFromExit,noEntryInRegion,multipleEntryInRegion,noOutgoingTransitionFromEntry,multipleTransitionFromEntry | ||
150 | 0,0,3,0,13,11,2,0,0,6 | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/data/Yakinduum/mpc_rep/R_2016324.xmi b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/data/Yakinduum/mpc_rep/R_2016324.xmi new file mode 100644 index 00000000..493a1731 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/data/Yakinduum/mpc_rep/R_2016324.xmi | |||
@@ -0,0 +1,128 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"> | ||
3 | <regions> | ||
4 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
5 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
6 | <regions> | ||
7 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
8 | <regions> | ||
9 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
10 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
11 | </vertices> | ||
12 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
13 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
14 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
15 | </vertices> | ||
16 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
17 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
18 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
19 | </vertices> | ||
20 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
21 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
22 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
23 | </vertices> | ||
24 | </regions> | ||
25 | </vertices> | ||
26 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.11/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.11/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.12/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.12/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
27 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.12"/> | ||
28 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.11"/> | ||
29 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
30 | </vertices> | ||
31 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.13/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.13/@outgoingTransitions.1"> | ||
32 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.13"/> | ||
33 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.7"/> | ||
34 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
35 | </vertices> | ||
36 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
37 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
38 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.10"/> | ||
39 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.6"/> | ||
40 | </vertices> | ||
41 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.1"> | ||
42 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
43 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
44 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.9"/> | ||
45 | </vertices> | ||
46 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
47 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
48 | </vertices> | ||
49 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.2"> | ||
50 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
51 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
52 | </vertices> | ||
53 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.1"> | ||
54 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
55 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
56 | </vertices> | ||
57 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.0"> | ||
58 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
59 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
60 | </vertices> | ||
61 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.2"> | ||
62 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
63 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
64 | </vertices> | ||
65 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
66 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
67 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
68 | </vertices> | ||
69 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
70 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
71 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
72 | </vertices> | ||
73 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
74 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
75 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
76 | </vertices> | ||
77 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
78 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
79 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
80 | </vertices> | ||
81 | </regions> | ||
82 | </vertices> | ||
83 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
84 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
85 | </vertices> | ||
86 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State"> | ||
87 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
88 | <regions> | ||
89 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry" incomingTransitions="//@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
90 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
91 | </vertices> | ||
92 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
93 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
94 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
95 | </vertices> | ||
96 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.9/@outgoingTransitions.1"> | ||
97 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.8"/> | ||
98 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.10"/> | ||
99 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.4"/> | ||
100 | </vertices> | ||
101 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.8/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.8/@outgoingTransitions.1"> | ||
102 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.7"/> | ||
103 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.9"/> | ||
104 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.10"/> | ||
105 | </vertices> | ||
106 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
107 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
108 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.5"/> | ||
109 | </vertices> | ||
110 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.1"/> | ||
111 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.1"/> | ||
112 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
113 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
114 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.6"/> | ||
115 | </vertices> | ||
116 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
117 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
118 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
119 | </vertices> | ||
120 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
121 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
122 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
123 | </vertices> | ||
124 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.2 //@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.1"/> | ||
125 | </regions> | ||
126 | </vertices> | ||
127 | </regions> | ||
128 | </hu.bme.mit.inf.yakindumm:Statechart> | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/data/Yakinduum/na_rep/R_2017419.xmi b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/data/Yakinduum/na_rep/R_2017419.xmi new file mode 100644 index 00000000..369760bf --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/data/Yakinduum/na_rep/R_2017419.xmi | |||
@@ -0,0 +1,138 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"> | ||
3 | <regions> | ||
4 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.5/@outgoingTransitions.0"> | ||
5 | <regions> | ||
6 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.2 //@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.2 //@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.2 //@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.3"> | ||
7 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
8 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
9 | </vertices> | ||
10 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.1"> | ||
11 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
12 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
13 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
14 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
15 | </vertices> | ||
16 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
17 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
18 | </vertices> | ||
19 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.3"> | ||
20 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
21 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
22 | </vertices> | ||
23 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
24 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
25 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
26 | </vertices> | ||
27 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.0"> | ||
28 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.6"/> | ||
29 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.7"/> | ||
30 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
31 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
32 | </vertices> | ||
33 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.0"> | ||
34 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
35 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
36 | </vertices> | ||
37 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
38 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
39 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
40 | </vertices> | ||
41 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.3 //@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.1"> | ||
42 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.10"/> | ||
43 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.9"/> | ||
44 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
45 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
46 | </vertices> | ||
47 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.1"> | ||
48 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
49 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
50 | </vertices> | ||
51 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.0"> | ||
52 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
53 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
54 | </vertices> | ||
55 | </regions> | ||
56 | </vertices> | ||
57 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.4/@outgoingTransitions.1"> | ||
58 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
59 | <regions> | ||
60 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.7/@outgoingTransitions.0"> | ||
61 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
62 | </vertices> | ||
63 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
64 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3"/> | ||
65 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
66 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.5"/> | ||
67 | </vertices> | ||
68 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.6/@outgoingTransitions.0"/> | ||
69 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.6/@outgoingTransitions.1"> | ||
70 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.7"/> | ||
71 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.6"/> | ||
72 | </vertices> | ||
73 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
74 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.1"/> | ||
75 | </vertices> | ||
76 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
77 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2"/> | ||
78 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.1"/> | ||
79 | </vertices> | ||
80 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
81 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2"/> | ||
82 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3"/> | ||
83 | </vertices> | ||
84 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
85 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.0"/> | ||
86 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.0"/> | ||
87 | </vertices> | ||
88 | </regions> | ||
89 | </vertices> | ||
90 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@outgoingTransitions.1 //@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
91 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
92 | <regions> | ||
93 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.1"> | ||
94 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | ||
95 | </vertices> | ||
96 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
97 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
98 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | ||
99 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.5"/> | ||
100 | </vertices> | ||
101 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.0"/> | ||
102 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.6/@outgoingTransitions.1"> | ||
103 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.6"/> | ||
104 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.7"/> | ||
105 | </vertices> | ||
106 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
107 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
108 | </vertices> | ||
109 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
110 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
111 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
112 | </vertices> | ||
113 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
114 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
115 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
116 | </vertices> | ||
117 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
118 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
119 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
120 | </vertices> | ||
121 | </regions> | ||
122 | </vertices> | ||
123 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
124 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
125 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
126 | </vertices> | ||
127 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
128 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
129 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
130 | </vertices> | ||
131 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@outgoingTransitions.0"> | ||
132 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
133 | </vertices> | ||
134 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
135 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
136 | </vertices> | ||
137 | </regions> | ||
138 | </hu.bme.mit.inf.yakindumm:Statechart> | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/data/Yakinduum/out_d_rep/R_2015225.xmi b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/data/Yakinduum/out_d_rep/R_2015225.xmi new file mode 100644 index 00000000..21fee5a9 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/data/Yakinduum/out_d_rep/R_2015225.xmi | |||
@@ -0,0 +1,145 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"> | ||
3 | <regions> | ||
4 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
5 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
6 | </vertices> | ||
7 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.2 //@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
8 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
9 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
10 | </vertices> | ||
11 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
12 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
13 | <regions> | ||
14 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.2"> | ||
15 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
16 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
17 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
18 | </vertices> | ||
19 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.9/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.10/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.9/@outgoingTransitions.0"> | ||
20 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.9"/> | ||
21 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
22 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.10"/> | ||
23 | </vertices> | ||
24 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.8/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.8/@outgoingTransitions.1"> | ||
25 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.8"/> | ||
26 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
27 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.7"/> | ||
28 | </vertices> | ||
29 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.6/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
30 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.6"/> | ||
31 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.5"/> | ||
32 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
33 | </vertices> | ||
34 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
35 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
36 | </vertices> | ||
37 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
38 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
39 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
40 | </vertices> | ||
41 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
42 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
43 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
44 | </vertices> | ||
45 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
46 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
47 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
48 | </vertices> | ||
49 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
50 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
51 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
52 | </vertices> | ||
53 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
54 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
55 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
56 | </vertices> | ||
57 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
58 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
59 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
60 | </vertices> | ||
61 | </regions> | ||
62 | </vertices> | ||
63 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.6/@outgoingTransitions.0"> | ||
64 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
65 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
66 | <regions> | ||
67 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
68 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.1"/> | ||
69 | </vertices> | ||
70 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
71 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.2"/> | ||
72 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.3"/> | ||
73 | </vertices> | ||
74 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
75 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.4"/> | ||
76 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.6"/> | ||
77 | </vertices> | ||
78 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.8/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.3/@regions.0/@vertices.4/@outgoingTransitions.1"> | ||
79 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.8"/> | ||
80 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.5"/> | ||
81 | </vertices> | ||
82 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
83 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.3"/> | ||
84 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.3"/> | ||
85 | </vertices> | ||
86 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
87 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.2"/> | ||
88 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.2"/> | ||
89 | </vertices> | ||
90 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.2/@outgoingTransitions.1"> | ||
91 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.2"/> | ||
92 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.7"/> | ||
93 | </vertices> | ||
94 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.1 //@regions.0/@vertices.3/@regions.0/@vertices.6/@outgoingTransitions.1"/> | ||
95 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
96 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.3"/> | ||
97 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.9"/> | ||
98 | </vertices> | ||
99 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.8/@outgoingTransitions.1 //@regions.0/@vertices.5/@outgoingTransitions.2"/> | ||
100 | </regions> | ||
101 | </vertices> | ||
102 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.0"> | ||
103 | <outgoingTransitions target="//@regions.0/@vertices.6"/> | ||
104 | <regions> | ||
105 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
106 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.1"/> | ||
107 | </vertices> | ||
108 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
109 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.3"/> | ||
110 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.2"/> | ||
111 | </vertices> | ||
112 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.4/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
113 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.4"/> | ||
114 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.8"/> | ||
115 | </vertices> | ||
116 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.4/@regions.0/@vertices.6/@outgoingTransitions.0"> | ||
117 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.9"/> | ||
118 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.6"/> | ||
119 | </vertices> | ||
120 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
121 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.2"/> | ||
122 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.5"/> | ||
123 | </vertices> | ||
124 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.4/@outgoingTransitions.1 //@regions.0/@vertices.6/@outgoingTransitions.2"/> | ||
125 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
126 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.3"/> | ||
127 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.7"/> | ||
128 | </vertices> | ||
129 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.6/@outgoingTransitions.1 //@regions.0/@vertices.6/@outgoingTransitions.1"/> | ||
130 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.2/@outgoingTransitions.1"/> | ||
131 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.3/@outgoingTransitions.0"/> | ||
132 | </regions> | ||
133 | </vertices> | ||
134 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
135 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | ||
136 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.7"/> | ||
137 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.9"/> | ||
138 | </vertices> | ||
139 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.4/@outgoingTransitions.0"> | ||
140 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
141 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.7"/> | ||
142 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.5"/> | ||
143 | </vertices> | ||
144 | </regions> | ||
145 | </hu.bme.mit.inf.yakindumm:Statechart> | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend index 1745bc35..58ac7aea 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend | |||
@@ -35,7 +35,7 @@ class Main { | |||
35 | 35 | ||
36 | //human input has different package declaration | 36 | //human input has different package declaration |
37 | // reader = new GraphReader(Yakindumm2PackageImpl.eINSTANCE); | 37 | // reader = new GraphReader(Yakindumm2PackageImpl.eINSTANCE); |
38 | val human = new RWInformation("inputs/Fake_Random_Random/", "outputs/", 1); | 38 | val human = new RWInformation("inputs/config7/", "outputs/", 1); |
39 | calculateAllModels(human.inputFolder, human.outputFolder,human.numRuns, reader); | 39 | calculateAllModels(human.inputFolder, human.outputFolder,human.numRuns, reader); |
40 | 40 | ||
41 | 41 | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend index 45986ecf..cdce185a 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend | |||
@@ -1,5 +1,6 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app | 1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app |
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.EuclideanDistance | ||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.JSDistance | 4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.JSDistance |
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance | 5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance |
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.StateData | 6 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.StateData |
@@ -8,6 +9,7 @@ import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric | |||
8 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric | 9 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric |
9 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric | 10 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric |
10 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric | 11 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric |
12 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedOutDegree | ||
11 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.predictor.LinearModel | 13 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.predictor.LinearModel |
12 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation | 14 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation |
13 | import java.util.ArrayList | 15 | import java.util.ArrayList |
@@ -21,6 +23,7 @@ class PartialInterpretationMetricDistance { | |||
21 | 23 | ||
22 | var KSDistance ks; | 24 | var KSDistance ks; |
23 | var JSDistance js; | 25 | var JSDistance js; |
26 | var EuclideanDistance ed; | ||
24 | var Map<Object, StateData> stateAndHistory; | 27 | var Map<Object, StateData> stateAndHistory; |
25 | var OLSMultipleLinearRegression regression; | 28 | var OLSMultipleLinearRegression regression; |
26 | List<StateData> samples; | 29 | List<StateData> samples; |
@@ -32,6 +35,7 @@ class PartialInterpretationMetricDistance { | |||
32 | new(){ | 35 | new(){ |
33 | ks = new KSDistance(Domain.Yakinduum); | 36 | ks = new KSDistance(Domain.Yakinduum); |
34 | js = new JSDistance(Domain.Yakinduum); | 37 | js = new JSDistance(Domain.Yakinduum); |
38 | ed = new EuclideanDistance(Domain.Yakinduum); | ||
35 | regression = new OLSMultipleLinearRegression(); | 39 | regression = new OLSMultipleLinearRegression(); |
36 | regression.noIntercept = false; | 40 | regression.noIntercept = false; |
37 | stateAndHistory = new HashMap<Object, StateData>(); | 41 | stateAndHistory = new HashMap<Object, StateData>(); |
@@ -44,6 +48,7 @@ class PartialInterpretationMetricDistance { | |||
44 | metrics.add(new OutDegreeMetric()); | 48 | metrics.add(new OutDegreeMetric()); |
45 | metrics.add(new NodeActivityMetric()); | 49 | metrics.add(new NodeActivityMetric()); |
46 | metrics.add(new MultiplexParticipationCoefficientMetric()); | 50 | metrics.add(new MultiplexParticipationCoefficientMetric()); |
51 | metrics.add(new TypedOutDegree()); | ||
47 | 52 | ||
48 | val metricCalculator = new PartialInterpretationGraph(partial, metrics, null); | 53 | val metricCalculator = new PartialInterpretationGraph(partial, metrics, null); |
49 | var metricSamples = metricCalculator.evaluateAllMetricsToSamples(); | 54 | var metricSamples = metricCalculator.evaluateAllMetricsToSamples(); |
@@ -51,6 +56,24 @@ class PartialInterpretationMetricDistance { | |||
51 | var mpc = ks.mpcDistance(metricSamples.mpcSamples); | 56 | var mpc = ks.mpcDistance(metricSamples.mpcSamples); |
52 | var na = ks.naDistance(metricSamples.naSamples); | 57 | var na = ks.naDistance(metricSamples.naSamples); |
53 | var outDegree = ks.outDegreeDistance(metricSamples.outDegreeSamples); | 58 | var outDegree = ks.outDegreeDistance(metricSamples.outDegreeSamples); |
59 | var typedOutDegree = ks.typedOutDegreeDistance(metricSamples.typedOutDegreeSamples); | ||
60 | |||
61 | return new MetricDistanceGroup(mpc, na, outDegree, typedOutDegree); | ||
62 | } | ||
63 | |||
64 | def MetricDistanceGroup calculateMetricEuclidean(PartialInterpretation partial){ | ||
65 | val metrics = new ArrayList<Metric>(); | ||
66 | metrics.add(new OutDegreeMetric()); | ||
67 | metrics.add(new NodeActivityMetric()); | ||
68 | metrics.add(new MultiplexParticipationCoefficientMetric()); | ||
69 | metrics.add(new TypedOutDegree()); | ||
70 | |||
71 | val metricCalculator = new PartialInterpretationGraph(partial, metrics, null); | ||
72 | var metricSamples = metricCalculator.evaluateAllMetricsToSamples(); | ||
73 | |||
74 | var mpc = ed.mpcDistance(metricSamples.mpcSamples); | ||
75 | var na = ed.naDistance(metricSamples.naSamples); | ||
76 | var outDegree = ed.outDegreeDistance(metricSamples.outDegreeSamples); | ||
54 | 77 | ||
55 | return new MetricDistanceGroup(mpc, na, outDegree); | 78 | return new MetricDistanceGroup(mpc, na, outDegree); |
56 | } | 79 | } |
@@ -132,14 +155,13 @@ class PartialInterpretationMetricDistance { | |||
132 | } | 155 | } |
133 | 156 | ||
134 | def double[] calculateFeature(int step, int violations){ | 157 | def double[] calculateFeature(int step, int violations){ |
135 | var features = newDoubleArrayOfSize(5); | 158 | var features = newDoubleArrayOfSize(2); |
136 | //constant term | 159 | //constant term |
137 | features.set(0, 1); | 160 | features.set(0, 1); |
138 | 161 | ||
139 | features.set(1, 1.0 / step); | 162 | features.set(1, 1.0 / step); |
140 | features.set(2, violations); | 163 | // features.set(2, violations); |
141 | features.set(3, Math.pow(violations, 2)); | 164 | // features.set(3, Math.pow(violations, 2)); |
142 | features.set(4, Math.pow(violations, 0.5)); | ||
143 | 165 | ||
144 | return features; | 166 | return features; |
145 | } | 167 | } |
@@ -149,6 +171,14 @@ class MetricDistanceGroup{ | |||
149 | var double mpcDistance; | 171 | var double mpcDistance; |
150 | var double naDistance; | 172 | var double naDistance; |
151 | var double outDegreeDistance; | 173 | var double outDegreeDistance; |
174 | var double typedOutDegreeDistance; | ||
175 | |||
176 | new(double mpcDistance, double naDistance, double outDegreeDistance, double typedOutDegreeDistance){ | ||
177 | this.mpcDistance = mpcDistance; | ||
178 | this.naDistance = naDistance; | ||
179 | this.outDegreeDistance = outDegreeDistance; | ||
180 | this.typedOutDegreeDistance = typedOutDegreeDistance; | ||
181 | } | ||
152 | 182 | ||
153 | new(double mpcDistance, double naDistance, double outDegreeDistance){ | 183 | new(double mpcDistance, double naDistance, double outDegreeDistance){ |
154 | this.mpcDistance = mpcDistance; | 184 | this.mpcDistance = mpcDistance; |
@@ -156,6 +186,10 @@ class MetricDistanceGroup{ | |||
156 | this.outDegreeDistance = outDegreeDistance; | 186 | this.outDegreeDistance = outDegreeDistance; |
157 | } | 187 | } |
158 | 188 | ||
189 | def double getTypedOutDegreeDistance(){ | ||
190 | return this.typedOutDegreeDistance; | ||
191 | } | ||
192 | |||
159 | def double getMPCDistance(){ | 193 | def double getMPCDistance(){ |
160 | return this.mpcDistance | 194 | return this.mpcDistance |
161 | } | 195 | } |
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/CostDistance.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/CostDistance.xtend index 33d10fa3..613f0f43 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/CostDistance.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/CostDistance.xtend | |||
@@ -1,9 +1,25 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance | 1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance |
2 | 2 | ||
3 | import java.text.DecimalFormat | ||
4 | import java.util.HashMap | ||
5 | import java.util.List | ||
3 | import org.eclipse.xtend.lib.annotations.Accessors | 6 | import org.eclipse.xtend.lib.annotations.Accessors |
4 | 7 | ||
5 | class CostDistance { | 8 | abstract class CostDistance { |
6 | 9 | def abstract double naDistance(List<Double> samples); | |
10 | def abstract double mpcDistance(List<Double> samples); | ||
11 | def abstract double outDegreeDistance(List<Double> samples); | ||
12 | |||
13 | def protected pmfFromSamples(double[] samples, DecimalFormat formatter){ | ||
14 | var length = samples.length; | ||
15 | var pmfMap = new HashMap<String, Double>(); | ||
16 | |||
17 | for(sample : samples){ | ||
18 | pmfMap.put(formatter.format(sample), pmfMap.getOrDefault(formatter.format(sample), 0.0) + 1.0 / length); | ||
19 | } | ||
20 | |||
21 | return pmfMap; | ||
22 | } | ||
7 | } | 23 | } |
8 | 24 | ||
9 | class StateData{ | 25 | class StateData{ |
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/EuclideanDistance.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/EuclideanDistance.xtend new file mode 100644 index 00000000..b945d97b --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/EuclideanDistance.xtend | |||
@@ -0,0 +1,73 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.RepMetricsReader | ||
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup | ||
6 | import com.google.common.collect.Sets | ||
7 | import java.text.DecimalFormat | ||
8 | import java.util.ArrayList | ||
9 | import java.util.HashMap | ||
10 | import java.util.List | ||
11 | import java.util.Map | ||
12 | import java.util.Set | ||
13 | |||
14 | class EuclideanDistance extends CostDistance{ | ||
15 | var MetricSampleGroup g; | ||
16 | var HashMap<String, Double> mpcPMF; | ||
17 | var HashMap<String, Double> naPMF; | ||
18 | var HashMap<String, Double> outDegreePMF; | ||
19 | var DecimalFormat formatter; | ||
20 | |||
21 | new(Domain d){ | ||
22 | var metrics = RepMetricsReader.read(d); | ||
23 | this.g = metrics; | ||
24 | |||
25 | var mpcSamples = metrics.mpcSamples; | ||
26 | var naSamples = metrics.naSamples.stream.mapToDouble([it]).toArray(); | ||
27 | var outDegreeSamples = metrics.outDegreeSamples.stream.mapToDouble([it]).toArray(); | ||
28 | |||
29 | //needs to format the number to string avoid precision issue | ||
30 | formatter = new DecimalFormat("#0.00000"); | ||
31 | |||
32 | mpcPMF = pmfFromSamples(mpcSamples, formatter); | ||
33 | naPMF = pmfFromSamples(naSamples, formatter); | ||
34 | outDegreePMF = pmfFromSamples(outDegreeSamples, formatter); | ||
35 | } | ||
36 | |||
37 | override naDistance(List<Double> samples) { | ||
38 | var pmfMap = pmfFromSamples(samples, formatter); | ||
39 | return euclideanDistance(pmfMap, naPMF); | ||
40 | } | ||
41 | |||
42 | override mpcDistance(List<Double> samples) { | ||
43 | var pmfMap = pmfFromSamples(samples, formatter); | ||
44 | return euclideanDistance(pmfMap, mpcPMF); | ||
45 | } | ||
46 | |||
47 | override outDegreeDistance(List<Double> samples) { | ||
48 | var pmfMap = pmfFromSamples(samples, formatter); | ||
49 | return euclideanDistance(pmfMap, outDegreePMF); | ||
50 | } | ||
51 | |||
52 | |||
53 | def private euclideanDistance(HashMap<String, Double> pmf1, HashMap<String, Double> pmf2){ | ||
54 | var keys = Sets.union(pmf1.keySet(), pmf2.keySet()); | ||
55 | var pmfList1 = pmfMapToList(pmf1, keys); | ||
56 | var pmfList2 = pmfMapToList(pmf2, keys); | ||
57 | var distance = 0.0; | ||
58 | for(var i = 0; i < pmfList1.size(); i++){ | ||
59 | distance += Math.pow(pmfList1.get(i) + pmfList2.get(i), 2); | ||
60 | } | ||
61 | |||
62 | return Math.sqrt(distance); | ||
63 | } | ||
64 | |||
65 | def private pmfMapToList(Map<String, Double> map, Set<String> keys){ | ||
66 | var list = new ArrayList<Double>(); | ||
67 | for(key : keys){ | ||
68 | var value = map.getOrDefault(key, 0.0); | ||
69 | list.add(value); | ||
70 | } | ||
71 | return list; | ||
72 | } | ||
73 | } \ No newline at end of file | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.xtend index ced9eadb..df65b81f 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.xtend | |||
@@ -7,7 +7,7 @@ import java.text.DecimalFormat | |||
7 | import java.util.HashMap | 7 | import java.util.HashMap |
8 | import java.util.List | 8 | import java.util.List |
9 | 9 | ||
10 | class JSDistance { | 10 | class JSDistance extends CostDistance { |
11 | var HashMap<String, Double> mpcPMF; | 11 | var HashMap<String, Double> mpcPMF; |
12 | var HashMap<String, Double> naPMF; | 12 | var HashMap<String, Double> naPMF; |
13 | var HashMap<String, Double> outDegreePMF; | 13 | var HashMap<String, Double> outDegreePMF; |
@@ -27,17 +27,6 @@ class JSDistance { | |||
27 | outDegreePMF = pmfFromSamples(outDegreeSamples, formatter); | 27 | outDegreePMF = pmfFromSamples(outDegreeSamples, formatter); |
28 | } | 28 | } |
29 | 29 | ||
30 | def private pmfFromSamples(double[] samples, DecimalFormat formatter){ | ||
31 | var length = samples.length; | ||
32 | var pmfMap = new HashMap<String, Double>(); | ||
33 | |||
34 | for(sample : samples){ | ||
35 | pmfMap.put(formatter.format(sample), pmfMap.getOrDefault(formatter.format(sample), 0.0) + 1.0 / length); | ||
36 | } | ||
37 | |||
38 | return pmfMap; | ||
39 | } | ||
40 | |||
41 | def private combinePMF(HashMap<String, Double> pmf1, HashMap<String, Double> pmf2){ | 30 | def private combinePMF(HashMap<String, Double> pmf1, HashMap<String, Double> pmf2){ |
42 | var pmfMap = new HashMap<String, Double>(); | 31 | var pmfMap = new HashMap<String, Double>(); |
43 | 32 | ||
@@ -68,7 +57,7 @@ class JSDistance { | |||
68 | return distance; | 57 | return distance; |
69 | } | 58 | } |
70 | 59 | ||
71 | def double mpcDistance(List<Double> samples){ | 60 | override double mpcDistance(List<Double> samples){ |
72 | // map list to array | 61 | // map list to array |
73 | var map = pmfFromSamples(samples.stream().mapToDouble([it]).toArray(), formatter); | 62 | var map = pmfFromSamples(samples.stream().mapToDouble([it]).toArray(), formatter); |
74 | //if the size of array is smaller than 2, ks distance cannot be performed, simply return 1 | 63 | //if the size of array is smaller than 2, ks distance cannot be performed, simply return 1 |
@@ -76,7 +65,7 @@ class JSDistance { | |||
76 | return jsDivergence(map, mpcPMF); | 65 | return jsDivergence(map, mpcPMF); |
77 | } | 66 | } |
78 | 67 | ||
79 | def double naDistance(List<Double> samples){ | 68 | override double naDistance(List<Double> samples){ |
80 | // map list to array | 69 | // map list to array |
81 | var map = pmfFromSamples(samples.stream().mapToDouble([it]).toArray(), formatter); | 70 | var map = pmfFromSamples(samples.stream().mapToDouble([it]).toArray(), formatter); |
82 | 71 | ||
@@ -85,7 +74,7 @@ class JSDistance { | |||
85 | return jsDivergence(map, naPMF); | 74 | return jsDivergence(map, naPMF); |
86 | } | 75 | } |
87 | 76 | ||
88 | def double outDegreeDistance(List<Double> samples){ | 77 | override double outDegreeDistance(List<Double> samples){ |
89 | // map list to array | 78 | // map list to array |
90 | var map = pmfFromSamples(samples.stream().mapToDouble([it]).toArray(), formatter); | 79 | var map = pmfFromSamples(samples.stream().mapToDouble([it]).toArray(), formatter); |
91 | //if the size of array is smaller than 2, ks distance cannot be performed, simply return 1 | 80 | //if the size of array is smaller than 2, ks distance cannot be performed, simply return 1 |
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.xtend index 58e0a8a3..86f5f23c 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.xtend | |||
@@ -2,46 +2,65 @@ package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance | |||
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain | 3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain |
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.RepMetricsReader | 4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.RepMetricsReader |
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup | ||
6 | import java.util.HashMap | ||
7 | import java.util.HashSet | ||
5 | import java.util.List | 8 | import java.util.List |
9 | import java.util.Set | ||
6 | import org.apache.commons.math3.stat.inference.KolmogorovSmirnovTest | 10 | import org.apache.commons.math3.stat.inference.KolmogorovSmirnovTest |
7 | 11 | ||
8 | class KSDistance { | 12 | class KSDistance extends CostDistance { |
9 | var static ksTester = new KolmogorovSmirnovTest(); | 13 | var static ksTester = new KolmogorovSmirnovTest(); |
10 | var double[] mpcSamples; | 14 | var MetricSampleGroup g; |
11 | var double[] naSamples; | ||
12 | var double[] outDegreeSamples; | ||
13 | |||
14 | new(Domain d){ | 15 | new(Domain d){ |
15 | var metrics = RepMetricsReader.read(d); | 16 | var metrics = RepMetricsReader.read(d); |
16 | mpcSamples = metrics.mpcSamples; | 17 | this.g = metrics; |
17 | naSamples = metrics.naSamples.stream.mapToDouble([it]).toArray(); | ||
18 | outDegreeSamples = metrics.outDegreeSamples.stream.mapToDouble([it]).toArray(); | ||
19 | } | 18 | } |
20 | 19 | ||
21 | def double mpcDistance(List<Double> samples){ | 20 | override double mpcDistance(List<Double> samples){ |
22 | // map list to array | ||
23 | var arr = samples.stream.mapToDouble([it]).toArray(); | ||
24 | |||
25 | //if the size of array is smaller than 2, ks distance cannot be performed, simply return 1 | 21 | //if the size of array is smaller than 2, ks distance cannot be performed, simply return 1 |
26 | if(arr.size < 2) return 1; | 22 | if(samples.size < 2) return 1; |
27 | return ksTester.kolmogorovSmirnovStatistic(mpcSamples, arr); | 23 | return ksTester.kolmogorovSmirnovStatistic(g.mpcSamples, samples); |
28 | } | 24 | } |
29 | 25 | ||
30 | def double naDistance(List<Double> samples){ | 26 | override double naDistance(List<Double> samples){ |
31 | // map list to array | ||
32 | var arr = samples.stream.mapToDouble([it]).toArray(); | ||
33 | |||
34 | //if the size of array is smaller than 2, ks distance cannot be performed, simply return 1 | 27 | //if the size of array is smaller than 2, ks distance cannot be performed, simply return 1 |
35 | if(arr.size < 2) return 1; | 28 | if(samples.size < 2) return 1; |
36 | return ksTester.kolmogorovSmirnovStatistic(naSamples as double[], arr); | 29 | return ksTester.kolmogorovSmirnovStatistic(g.naSamples as double[], samples); |
37 | } | 30 | } |
38 | 31 | ||
39 | def double outDegreeDistance(List<Double> samples){ | 32 | override double outDegreeDistance(List<Double> samples){ |
33 | //if the size of array is smaller than 2, ks distance cannot be performed, simply return 1 | ||
34 | if(samples.size < 2) return 1; | ||
35 | return ksTester.kolmogorovSmirnovStatistic(g.outDegreeSamples, samples); | ||
36 | } | ||
37 | |||
38 | def double typedOutDegreeDistance(HashMap<String, List<Integer>> map){ | ||
39 | var value = 0.0; | ||
40 | // map list to array | 40 | // map list to array |
41 | var arr = samples.stream.mapToDouble([it]).toArray(); | 41 | val keySet = new HashSet<String>(map.keySet); |
42 | keySet.addAll(g.typedOutDegreeSamples.keySet); | ||
43 | for(key : keySet){ | ||
44 | if(!map.containsKey(key) ){ | ||
45 | value += 1; | ||
46 | }else if(!g.typedOutDegreeSamples.containsKey(key)){ | ||
47 | value += map.get(key).size * 100; | ||
48 | }else{ | ||
49 | var double[] rep = g.typedOutDegreeSamples.get(key).stream().mapToDouble([it|it]).toArray(); | ||
50 | var double[] ins = map.get(key).stream().mapToDouble([it|it]).toArray(); | ||
51 | if((rep.size < 2 || ins.size < 2) ){ | ||
52 | if(rep.size < 2 && rep.containsAll(ins)){ | ||
53 | value += 0; | ||
54 | }else{ | ||
55 | value += 1; | ||
56 | } | ||
57 | }else if(rep.size >= 2 && ins.size >= 2){ | ||
58 | value += ksTester.kolmogorovSmirnovStatistic(rep, ins); | ||
59 | } | ||
60 | } | ||
61 | } | ||
42 | 62 | ||
43 | //if the size of array is smaller than 2, ks distance cannot be performed, simply return 1 | 63 | |
44 | if(arr.size < 2) return 1; | 64 | return value; |
45 | return ksTester.kolmogorovSmirnovStatistic(outDegreeSamples, arr); | ||
46 | } | 65 | } |
47 | } \ No newline at end of file | 66 | } \ No newline at end of file |
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/EMFGraph.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/EMFGraph.xtend index 5c161f4b..b4c57bd8 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/EMFGraph.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/EMFGraph.xtend | |||
@@ -2,13 +2,14 @@ package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph | |||
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric | 3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric |
4 | import java.util.ArrayList | 4 | import java.util.ArrayList |
5 | import java.util.HashSet | ||
5 | import java.util.List | 6 | import java.util.List |
6 | import org.eclipse.emf.common.util.EList | 7 | import org.eclipse.emf.common.util.EList |
7 | import org.eclipse.emf.ecore.EObject | 8 | import org.eclipse.emf.ecore.EObject |
8 | import org.eclipse.emf.ecore.EReference | 9 | import org.eclipse.emf.ecore.EReference |
9 | 10 | ||
10 | class EMFGraph extends Graph{ | 11 | class EMFGraph extends Graph{ |
11 | def void init (EObject root, List<Metric> metrics, String name, List<String> referenceTypes){ | 12 | def void init (EObject root, List<Metric> metrics, String name, List<EReference> referenceTypes){ |
12 | val otherContents = root.eAllContents.toList(); | 13 | val otherContents = root.eAllContents.toList(); |
13 | otherContents.add(root); | 14 | otherContents.add(root); |
14 | init(otherContents, metrics, name, referenceTypes); | 15 | init(otherContents, metrics, name, referenceTypes); |
@@ -21,13 +22,15 @@ class EMFGraph extends Graph{ | |||
21 | * @param name: name of the instance model | 22 | * @param name: name of the instance model |
22 | * @param ReferenceTypes: reference types defined in the meta model | 23 | * @param ReferenceTypes: reference types defined in the meta model |
23 | */ | 24 | */ |
24 | def void init(List<EObject> objects, List<Metric> metrics, String name, List<String> referenceTypes){ | 25 | def void init(List<EObject> objects, List<Metric> metrics, String name, List<EReference> referenceTypes){ |
25 | objects.forEach[it| | 26 | objects.forEach[it| |
26 | statistic.addNode(it); | 27 | var types = new HashSet(it.eClass.EAllSuperTypes.map[it|it.name]); |
28 | types.add(it.eClass.name); | ||
29 | statistic.addNodeWithAllTypes(it, types); | ||
27 | ] | 30 | ] |
28 | 31 | ||
29 | referenceTypes.forEach[it| | 32 | referenceTypes.forEach[it| |
30 | statistic.addType(it); | 33 | statistic.addEdgeType(it.name); |
31 | ]; | 34 | ]; |
32 | 35 | ||
33 | objects.forEach[source| | 36 | objects.forEach[source| |
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.xtend index cf4aedba..6b400b0d 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.xtend | |||
@@ -2,11 +2,15 @@ package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph | |||
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric | 3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric |
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup | 4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup |
5 | import java.util.ArrayList | ||
6 | import java.util.List | ||
7 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric | 5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric |
8 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric | 6 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric |
9 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric | 7 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric |
8 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedOutDegree | ||
9 | import java.util.ArrayList | ||
10 | import java.util.HashMap | ||
11 | import java.util.List | ||
12 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric | ||
13 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.EdgeTypeMetric | ||
10 | 14 | ||
11 | abstract class Graph { | 15 | abstract class Graph { |
12 | 16 | ||
@@ -42,11 +46,17 @@ abstract class Graph { | |||
42 | 46 | ||
43 | for(metric : this.metrics){ | 47 | for(metric : this.metrics){ |
44 | if(metric instanceof MultiplexParticipationCoefficientMetric){ | 48 | if(metric instanceof MultiplexParticipationCoefficientMetric){ |
45 | sample.mpcSamples = metric.evaluateSamples(this.statistic); | 49 | sample.mpcSamples = metric.evaluateSamples(this.statistic) as ArrayList<Double>; |
46 | }else if(metric instanceof NodeActivityMetric){ | 50 | }else if(metric instanceof NodeActivityMetric){ |
47 | sample.naSamples = metric.evaluateSamples(this.statistic); | 51 | sample.naSamples = metric.evaluateSamples(this.statistic) as ArrayList<Double>; |
48 | }else if(metric instanceof OutDegreeMetric){ | 52 | }else if(metric instanceof OutDegreeMetric){ |
49 | sample.outDegreeSamples = metric.evaluateSamples(this.statistic); | 53 | sample.outDegreeSamples = metric.evaluateSamples(this.statistic) as ArrayList<Double>; |
54 | }else if(metric instanceof TypedOutDegree){ | ||
55 | sample.typedOutDegreeSamples = metric.evaluateSamples(this.statistic) as HashMap<String, List<Integer>>; | ||
56 | }else if(metric instanceof NodeTypeMetric){ | ||
57 | sample.nodeTypeSamples = metric.evaluateSamples(this.statistic) as HashMap<String, Double>; | ||
58 | }else if (metric instanceof EdgeTypeMetric){ | ||
59 | sample.edgeTypeSamples = metric.evaluateSamples(this.statistic) as HashMap<String, Double>; | ||
50 | } | 60 | } |
51 | } | 61 | } |
52 | 62 | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.xtend index 7ed58094..9b8fd0e3 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.xtend | |||
@@ -5,20 +5,22 @@ import com.google.common.collect.Multimap | |||
5 | import java.util.HashMap | 5 | import java.util.HashMap |
6 | import java.util.HashSet | 6 | import java.util.HashSet |
7 | import java.util.List | 7 | import java.util.List |
8 | import java.util.Map | ||
9 | import java.util.Set | ||
8 | import org.eclipse.emf.ecore.EObject | 10 | import org.eclipse.emf.ecore.EObject |
9 | 11 | ||
10 | class GraphStatistic { | 12 | class GraphStatistic { |
11 | val incomingEdges = new HashMap<String, Multimap<EObject, EObject>>; | 13 | val incomingEdges = new HashMap<String, Multimap<EObject, EObject>>; |
12 | val outcomingEdges = new HashMap<String, Multimap<EObject, EObject>>; | 14 | val outcomingEdges = new HashMap<String, Multimap<EObject, EObject>>; |
13 | 15 | ||
14 | val edgeTypes = new HashSet<String>(); | 16 | val edgeTypes = new HashSet<String>(); |
15 | val nodes = new HashSet<EObject>(); | 17 | val nodeToType = new HashMap<EObject, Set<String>>(); |
16 | 18 | ||
17 | /** | 19 | /** |
18 | * Add an edge type to to the graph | 20 | * Add an edge type to to the graph |
19 | * @param type: type to add | 21 | * @param type: type to add |
20 | */ | 22 | */ |
21 | def void addType(String type){ | 23 | def void addEdgeType(String type){ |
22 | if(edgeTypes.contains(type)){ | 24 | if(edgeTypes.contains(type)){ |
23 | return; | 25 | return; |
24 | } | 26 | } |
@@ -28,15 +30,20 @@ class GraphStatistic { | |||
28 | } | 30 | } |
29 | 31 | ||
30 | /** | 32 | /** |
31 | * Add a node to he graph | 33 | * Add a node to the graph with one type in its type hierarchy |
32 | * @param node: node to add | 34 | * @param node: node to add |
33 | */ | 35 | */ |
34 | def void addNode(EObject n){ | 36 | def void addNodeWithType(EObject n, String Type){ |
35 | if(nodes.contains(n)){ | 37 | var types = nodeToType.getOrDefault(n, new HashSet<String>()); |
36 | return; | 38 | types.add(Type); |
37 | } | 39 | nodeToType.put(n, types); |
38 | 40 | } | |
39 | nodes.add(n); | 41 | |
42 | /** | ||
43 | * Add a node to the graph with all types in its type hierarchy | ||
44 | */ | ||
45 | def void addNodeWithAllTypes(EObject n, Set<String> types){ | ||
46 | nodeToType.put(n, types); | ||
40 | } | 47 | } |
41 | 48 | ||
42 | /** | 49 | /** |
@@ -82,7 +89,7 @@ class GraphStatistic { | |||
82 | } | 89 | } |
83 | 90 | ||
84 | /** | 91 | /** |
85 | * calculate the number of edge types for a given degree. | 92 | * calculate the number of edge types for a given node. |
86 | */ | 93 | */ |
87 | def int numOfEdgeTypes(EObject o){ | 94 | def int numOfEdgeTypes(EObject o){ |
88 | var count = 0; | 95 | var count = 0; |
@@ -100,8 +107,17 @@ class GraphStatistic { | |||
100 | return edgeTypes.toList(); | 107 | return edgeTypes.toList(); |
101 | } | 108 | } |
102 | 109 | ||
110 | def Map<EObject, Set<String>> getNodeToTypesMap(){ | ||
111 | return nodeToType; | ||
112 | } | ||
113 | |||
103 | def List<EObject> getAllNodes(){ | 114 | def List<EObject> getAllNodes(){ |
104 | return nodes.toList(); | 115 | return nodeToType.keySet().toList(); |
105 | } | 116 | } |
117 | |||
118 | def HashMap<String, Multimap<EObject, EObject>> getOutgoingEdges(){ | ||
119 | return outcomingEdges; | ||
120 | } | ||
121 | |||
106 | } | 122 | } |
107 | 123 | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.xtend index 14337ab0..91d7c5f9 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.xtend | |||
@@ -4,11 +4,13 @@ import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric | |||
4 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration | 4 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration |
5 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.BinaryElementRelationLink | 5 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.BinaryElementRelationLink |
6 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation | 6 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation |
7 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.impl.BooleanElementImpl | 7 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.impl.PartialComplexTypeInterpretationImpl |
8 | import java.util.ArrayList | 8 | import java.util.ArrayList |
9 | import java.util.List | 9 | import java.util.List |
10 | 10 | ||
11 | class PartialInterpretationGraph extends Graph{ | 11 | class PartialInterpretationGraph extends Graph{ |
12 | val typeToExclude = "undefinedpart"; | ||
13 | val classSuffix = " class"; | ||
12 | 14 | ||
13 | /** | 15 | /** |
14 | * Define a new PartialInterpretationGraph by parse every element from a PartialInterpretation | 16 | * Define a new PartialInterpretationGraph by parse every element from a PartialInterpretation |
@@ -16,17 +18,21 @@ class PartialInterpretationGraph extends Graph{ | |||
16 | new(PartialInterpretation partial, List<Metric> metrics, String name){ | 18 | new(PartialInterpretation partial, List<Metric> metrics, String name){ |
17 | //the edge types are defined in terms of RelationDeclaration | 19 | //the edge types are defined in terms of RelationDeclaration |
18 | partial.problem.relations.filter(RelationDeclaration).forEach[ | 20 | partial.problem.relations.filter(RelationDeclaration).forEach[ |
19 | this.statistic.addType(it.name); | 21 | //only need the name of the reference type (remove everything with and after "reference") |
22 | this.statistic.addEdgeType(it.name.split(" ").get(0)); | ||
20 | ] | 23 | ] |
21 | // add all elements | 24 | // add all elements |
22 | val elements = getElements(partial); | 25 | val typeInterpretations = getTypes(partial); |
23 | for(element : elements){ | 26 | for(type : typeInterpretations){ |
24 | statistic.addNode(element) | 27 | var typeName = type.interpretationOf.name.replace(classSuffix, ''); |
28 | for(node : type.elements){ | ||
29 | this.statistic.addNodeWithType(node, typeName); | ||
30 | } | ||
25 | } | 31 | } |
26 | 32 | ||
27 | for(relationInterpretation : partial.partialrelationinterpretation) { | 33 | for(relationInterpretation : partial.partialrelationinterpretation) { |
28 | val type = relationInterpretation.interpretationOf.name | 34 | //only need the name of the reference type (remove everything with and after "reference") |
29 | 35 | val type = relationInterpretation.interpretationOf.name.split(" ").get(0); | |
30 | for(edge : relationInterpretation.relationlinks.filter(BinaryElementRelationLink)){ | 36 | for(edge : relationInterpretation.relationlinks.filter(BinaryElementRelationLink)){ |
31 | statistic.addEdge(edge.param1, edge.param2, type); | 37 | statistic.addEdge(edge.param1, edge.param2, type); |
32 | } | 38 | } |
@@ -62,8 +68,11 @@ class PartialInterpretationGraph extends Graph{ | |||
62 | output.add(stateInfo); | 68 | output.add(stateInfo); |
63 | } | 69 | } |
64 | 70 | ||
65 | private def getElements(PartialInterpretation partial){ | 71 | private def getTypes(PartialInterpretation partial){ |
66 | return partial.newElements.filter[!(it instanceof BooleanElementImpl)] + partial.problem.elements; | 72 | //only the complex type interpretations are the ones defined in meta model |
73 | //do not care about undefined types as it will be included in the class type | ||
74 | return partial.partialtypeinterpratation.filter(PartialComplexTypeInterpretationImpl) | ||
75 | .filter[!it.interpretationOf.name.toLowerCase.contains(typeToExclude)]; | ||
67 | } | 76 | } |
68 | 77 | ||
69 | override getStatistic() { | 78 | override getStatistic() { |
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.xtend index fc56e142..8f1feb9d 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.xtend | |||
@@ -17,10 +17,18 @@ import org.eclipse.emf.ecore.resource.Resource | |||
17 | import org.eclipse.emf.ecore.resource.ResourceSet | 17 | import org.eclipse.emf.ecore.resource.ResourceSet |
18 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl | 18 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl |
19 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | 19 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl |
20 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric | ||
21 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.EdgeTypeMetric | ||
22 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedOutDegree | ||
23 | import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage | ||
20 | 24 | ||
21 | class GraphReader{ | 25 | class GraphReader{ |
22 | val ResourceSet resSet = new ResourceSetImpl(); | 26 | val ResourceSet resSet = new ResourceSetImpl(); |
23 | val referenceTypes = new ArrayList<String>(); | 27 | val referenceTypes = new ArrayList<EReference>(); |
28 | |||
29 | def static void main(String[] args){ | ||
30 | var g = new GraphReader(YakindummPackage.eINSTANCE); | ||
31 | } | ||
24 | 32 | ||
25 | new(EPackage metaModel) { | 33 | new(EPackage metaModel) { |
26 | Resource.Factory.Registry.INSTANCE.extensionToFactoryMap.put("*",new XMIResourceFactoryImpl) | 34 | Resource.Factory.Registry.INSTANCE.extensionToFactoryMap.put("*",new XMIResourceFactoryImpl) |
@@ -28,7 +36,7 @@ class GraphReader{ | |||
28 | //find all reference types in the meta model | 36 | //find all reference types in the meta model |
29 | metaModel.eAllContents.forEach[ | 37 | metaModel.eAllContents.forEach[ |
30 | if(it instanceof EReference){ | 38 | if(it instanceof EReference){ |
31 | referenceTypes.add(it.name); | 39 | referenceTypes.add(it); |
32 | } | 40 | } |
33 | ] | 41 | ] |
34 | } | 42 | } |
@@ -45,7 +53,10 @@ class GraphReader{ | |||
45 | metrics.add(new OutDegreeMetric()); | 53 | metrics.add(new OutDegreeMetric()); |
46 | metrics.add(new NodeActivityMetric()); | 54 | metrics.add(new NodeActivityMetric()); |
47 | metrics.add(new MultiplexParticipationCoefficientMetric()); | 55 | metrics.add(new MultiplexParticipationCoefficientMetric()); |
48 | 56 | metrics.add(new TypedOutDegree()); | |
57 | metrics.add(new NodeTypeMetric()); | ||
58 | metrics.add(new EdgeTypeMetric()); | ||
59 | |||
49 | //check all files in the directory with xmi | 60 | //check all files in the directory with xmi |
50 | for(String name : dir.list.filter[it| it.endsWith(".xmi")]){ | 61 | for(String name : dir.list.filter[it| it.endsWith(".xmi")]){ |
51 | val file = new File(name); | 62 | val file = new File(name); |
@@ -71,7 +82,7 @@ class GraphReader{ | |||
71 | } | 82 | } |
72 | } catch(Exception e) { | 83 | } catch(Exception e) { |
73 | e.printStackTrace(); | 84 | e.printStackTrace(); |
74 | throw new FileNotFoundException(getURI(path, name).toString + "reason: " + e.message) | 85 | throw new Exception(getURI(path, name).toString()); |
75 | } | 86 | } |
76 | } | 87 | } |
77 | 88 | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.xtend index 867ddd1a..2ea12581 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.xtend | |||
@@ -1,79 +1,43 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io | 1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io |
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain | 3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain |
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric | ||
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric | ||
6 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric | ||
7 | import java.io.File | ||
8 | import java.util.List | ||
9 | import java.util.Scanner | ||
10 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup | 4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup |
5 | import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl.YakindummPackageImpl | ||
11 | 6 | ||
12 | /** | 7 | /** |
13 | * Read the sample of the distribution of a metric provided the csv file of the metric | 8 | * Read the sample of the distribution of a metric provided the csv file of the metric |
14 | */ | 9 | */ |
15 | class RepMetricsReader { | 10 | class RepMetricsReader { |
16 | static def read(Domain d){ | 11 | static def read(Domain d){ |
17 | var domainRepPath = CsvDataName.REP_PATH + d.name + '/'; | 12 | var reader = new GraphReader(YakindummPackageImpl.eINSTANCE); |
13 | |||
14 | |||
15 | var domainRepPath = DataName.REP_PATH + d.name + '/'; | ||
18 | var rep = new MetricSampleGroup() | 16 | var rep = new MetricSampleGroup() |
19 | rep.mpcSamples = readFile(domainRepPath + CsvDataName.MPC_REP, MultiplexParticipationCoefficientMetric.valueName, | 17 | var out_d = readMetrics(reader, domainRepPath + DataName.OUT_D_REP); |
20 | MultiplexParticipationCoefficientMetric.countName).map[Double.parseDouble(it)]; | 18 | rep.mpcSamples = readMetrics(reader, domainRepPath + DataName.MPC_REP).mpcSamples; |
21 | rep.naSamples = readFile(domainRepPath+CsvDataName.NA_REP, NodeActivityMetric.valueName, NodeActivityMetric.countName | 19 | rep.outDegreeSamples = out_d.outDegreeSamples; |
22 | ).map[Double.parseDouble(it)]; | 20 | rep.naSamples = readMetrics(reader, domainRepPath + DataName.NA_REP).naSamples; |
23 | rep.outDegreeSamples = readFile(domainRepPath+CsvDataName.OUT_D_REP, OutDegreeMetric.valueName, OutDegreeMetric.countName | 21 | rep.typedOutDegreeSamples = out_d.typedOutDegreeSamples; |
24 | ).map[Double.parseDouble(it)]; | 22 | rep.edgeTypeSamples = out_d.edgeTypeSamples; |
23 | rep.nodeTypeSamples = out_d.nodeTypeSamples; | ||
25 | return rep; | 24 | return rep; |
26 | } | 25 | } |
27 | 26 | ||
28 | /** | 27 | /** |
29 | * read metric data and parse it to samples | 28 | * Read representative model |
30 | */ | 29 | */ |
31 | private static def List<String> readFile(String filename, String valueDataName, String countDataName){ | 30 | private static def readMetrics(GraphReader r, String path){ |
32 | var s = new Scanner(new File(filename)); | 31 | var model = r.readModels(path).head; |
33 | val counts = newArrayList(); | 32 | return model.evaluateAllMetricsToSamples(); |
34 | val values = newArrayList(); | ||
35 | //read data from csv | ||
36 | while(s.hasNext()){ | ||
37 | var data = s.nextLine().split(','); | ||
38 | |||
39 | if(data.size >= 1){ | ||
40 | if(data.get(0).equals(countDataName)){ | ||
41 | //add all data with parsing them as integers | ||
42 | counts.addAll(data.subList(1, data.size()).map[Integer.parseInt(it)]); | ||
43 | }else if(data.get(0).equals(valueDataName)){ | ||
44 | //add all data without parsing (there can be either double or string, to be parsed later) | ||
45 | values.addAll(data.subList(1, data.size())); | ||
46 | } | ||
47 | } | ||
48 | } | ||
49 | |||
50 | return createSamples(counts, values); | ||
51 | } | 33 | } |
52 | 34 | ||
53 | // create samples from values and counts | ||
54 | private static def List<String> createSamples(List<Integer> counts, List<String> values){ | ||
55 | val samples = newArrayList(); | ||
56 | |||
57 | if(counts.size() != values.size()){ | ||
58 | throw new RuntimeException("counts and values should have the same size!"); | ||
59 | } | ||
60 | |||
61 | for(var i = 0; i < counts.size(); i++){ | ||
62 | for(var j = 0; j < counts.get(i); j++){ | ||
63 | samples.add(values.get(i)); | ||
64 | } | ||
65 | } | ||
66 | |||
67 | return samples; | ||
68 | } | ||
69 | |||
70 | |||
71 | } | 35 | } |
72 | 36 | ||
73 | class CsvDataName{ | 37 | class DataName{ |
74 | public static val REP_PATH = 'data/'; | 38 | public static val REP_PATH = 'data/'; |
75 | public static val MPC_REP = 'mpc_rep.csv'; | 39 | public static val MPC_REP = 'mpc_rep'; |
76 | public static val NA_REP = 'na_rep.csv'; | 40 | public static val NA_REP = 'na_rep'; |
77 | public static val OUT_D_REP = 'out_d_rep.csv'; | 41 | public static val OUT_D_REP = 'out_d_rep'; |
78 | } | 42 | } |
79 | 43 | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/EdgeTypeMetric.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/EdgeTypeMetric.xtend new file mode 100644 index 00000000..0c0fe3b8 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/EdgeTypeMetric.xtend | |||
@@ -0,0 +1,41 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic | ||
4 | import java.util.ArrayList | ||
5 | import java.util.HashMap | ||
6 | |||
7 | class EdgeTypeMetric extends Metric { | ||
8 | |||
9 | override evaluate(GraphStatistic g) { | ||
10 | var map = evaluateSamples(g) as HashMap<String, Double>; | ||
11 | var output = new ArrayList<String[]>(); | ||
12 | output.add(newArrayList('Edge Type')); | ||
13 | |||
14 | var keys = map.keySet; | ||
15 | var values = newArrayList(); | ||
16 | for(key : keys){ | ||
17 | values.add(map.get(key)+''); | ||
18 | } | ||
19 | |||
20 | output.add(keys); | ||
21 | output.add(values); | ||
22 | |||
23 | return output; | ||
24 | } | ||
25 | |||
26 | override evaluateSamples(GraphStatistic g) { | ||
27 | val map = new HashMap<String, Double>(); | ||
28 | var outgoingEdges = g.outgoingEdges; | ||
29 | |||
30 | //get the total number of edges | ||
31 | val edgeCount = outgoingEdges.values.fold(0, [r, t| r + t.asMap.values.fold(0, [r1, t1| r1 + t1.size])]) as double; | ||
32 | outgoingEdges.forEach[k, v| | ||
33 | var value = v.asMap.values.fold(0, [r, t| r + t.size]) / edgeCount; | ||
34 | map.put(k, value); | ||
35 | ] | ||
36 | |||
37 | |||
38 | return map; | ||
39 | } | ||
40 | |||
41 | } \ No newline at end of file | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/Metric.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/Metric.xtend index 38ef72f2..cb242a5b 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/Metric.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/Metric.xtend | |||
@@ -4,5 +4,5 @@ import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatis | |||
4 | 4 | ||
5 | abstract class Metric { | 5 | abstract class Metric { |
6 | abstract def String[][] evaluate(GraphStatistic g); | 6 | abstract def String[][] evaluate(GraphStatistic g); |
7 | abstract def double[] evaluateSamples(GraphStatistic g); | 7 | abstract def Object evaluateSamples(GraphStatistic g); |
8 | } \ No newline at end of file | 8 | } \ No newline at end of file |
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MetricSampleGroup.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MetricSampleGroup.xtend index 8cd3daee..4e25bb86 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MetricSampleGroup.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MetricSampleGroup.xtend | |||
@@ -1,9 +1,13 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics | 1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics |
2 | 2 | ||
3 | import java.util.HashMap | ||
3 | import java.util.List | 4 | import java.util.List |
4 | 5 | ||
5 | class MetricSampleGroup{ | 6 | class MetricSampleGroup{ |
6 | public var List<Double> mpcSamples; | 7 | public var List<Double> mpcSamples; |
7 | public var List<Double> naSamples; | 8 | public var List<Double> naSamples; |
8 | public var List<Double> outDegreeSamples; | 9 | public var List<Double> outDegreeSamples; |
10 | public var HashMap<String, List<Integer>> typedOutDegreeSamples; | ||
11 | public var HashMap<String, Double> nodeTypeSamples; | ||
12 | public var HashMap<String, Double> edgeTypeSamples; | ||
9 | } \ No newline at end of file | 13 | } \ No newline at end of file |
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.xtend new file mode 100644 index 00000000..94eaa445 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.xtend | |||
@@ -0,0 +1,44 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic | ||
4 | import java.util.ArrayList | ||
5 | import java.util.HashMap | ||
6 | |||
7 | class NodeTypeMetric extends Metric { | ||
8 | |||
9 | |||
10 | override evaluate(GraphStatistic g) { | ||
11 | var map = evaluateSamples(g) as HashMap<String, Double>; | ||
12 | var output = new ArrayList<String[]>(); | ||
13 | output.add(newArrayList('Node Type')); | ||
14 | var keys = map.keySet; | ||
15 | var values = newArrayList(); | ||
16 | |||
17 | for(key : keys){ | ||
18 | values.add(map.get(key)+''); | ||
19 | } | ||
20 | |||
21 | output.add(keys); | ||
22 | output.add(values); | ||
23 | |||
24 | return output; | ||
25 | } | ||
26 | |||
27 | override evaluateSamples(GraphStatistic g) { | ||
28 | var map = new HashMap<String, Double>(); | ||
29 | var nodes = g.allNodes; | ||
30 | var single = 1.0 / nodes.size(); | ||
31 | for(node : nodes){ | ||
32 | var classes = new ArrayList(node.eClass.ESuperTypes); | ||
33 | classes.add(node.eClass); | ||
34 | |||
35 | for(cl : classes){ | ||
36 | var value = map.getOrDefault(cl.name, 0.0); | ||
37 | map.put(cl.name, value + single); | ||
38 | } | ||
39 | } | ||
40 | |||
41 | return map; | ||
42 | } | ||
43 | |||
44 | } \ No newline at end of file | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedOutDegree.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedOutDegree.xtend new file mode 100644 index 00000000..3b5dbcc5 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedOutDegree.xtend | |||
@@ -0,0 +1,60 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic | ||
4 | import java.util.ArrayList | ||
5 | import java.util.HashMap | ||
6 | import java.util.List | ||
7 | |||
8 | class TypedOutDegree extends Metric{ | ||
9 | |||
10 | def private calculateMetric(GraphStatistic g){ | ||
11 | var outgoingEdges = g.outgoingEdges; | ||
12 | //record metric as a list of samples for each node type / edge type pair | ||
13 | var metric = new HashMap<String, List<Integer>>(); | ||
14 | var nodeToTypes = g.nodeToTypesMap; | ||
15 | |||
16 | for(edgeType : outgoingEdges.keySet){ | ||
17 | for(node : outgoingEdges.get(edgeType).keySet){ | ||
18 | //find all classes the node belongs to | ||
19 | var classes = nodeToTypes.get(node); | ||
20 | for(cl : classes){ | ||
21 | // get or create entry for node type / edge type pair | ||
22 | var key = cl + ' ' + edgeType; | ||
23 | var typeCount = metric.get(key); | ||
24 | if(typeCount === null){ | ||
25 | typeCount = new ArrayList<Integer>(); | ||
26 | metric.put(key, typeCount); | ||
27 | } | ||
28 | |||
29 | // get or create sample list | ||
30 | typeCount.add(outgoingEdges.get(edgeType).get(node).size); | ||
31 | } | ||
32 | } | ||
33 | } | ||
34 | |||
35 | return metric; | ||
36 | } | ||
37 | |||
38 | override evaluate(GraphStatistic g) { | ||
39 | var metric = calculateMetric(g); | ||
40 | var output = new ArrayList<String[]>(); | ||
41 | |||
42 | output.add(newArrayList('Typed Out Degree')); | ||
43 | for(key : metric.keySet){ | ||
44 | var samples = metric.get(key); | ||
45 | var String[] outputForOnePair = newArrayOfSize(samples.size+1); | ||
46 | outputForOnePair.set(0, key); | ||
47 | for(var i = 0; i < samples.size; i++){ | ||
48 | outputForOnePair.set(i+1, samples.get(i)+''); | ||
49 | } | ||
50 | output.add(outputForOnePair); | ||
51 | } | ||
52 | |||
53 | return output; | ||
54 | } | ||
55 | |||
56 | override evaluateSamples(GraphStatistic g) { | ||
57 | return calculateMetric(g); | ||
58 | } | ||
59 | |||
60 | } \ No newline at end of file | ||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/MPC.png new file mode 100644 index 00000000..4f8e97e2 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/MPC.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Node Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Node Activity.png new file mode 100644 index 00000000..7c2b5752 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Node Activity.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Out Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Out Degree.png new file mode 100644 index 00000000..3cf659b2 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Out Degree.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-/MPC.png new file mode 100644 index 00000000..50b882da --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-/MPC.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-/Node Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-/Node Activity.png new file mode 100644 index 00000000..4e9a68d5 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-/Node Activity.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-/Out Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-/Out Degree.png new file mode 100644 index 00000000..bfa4b537 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-/Out Degree.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-Random-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-Random-/MPC.png new file mode 100644 index 00000000..33176821 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-Random-/MPC.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-Random-/Node Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-Random-/Node Activity.png new file mode 100644 index 00000000..53c46e6f --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-Random-/Node Activity.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-Random-/Out Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-Random-/Out Degree.png new file mode 100644 index 00000000..abf45ff1 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Euclidean_Distance/Human-Viatra (30 nodes)-Random-/Out Degree.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Alloy (30 nodes)-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Alloy (30 nodes)-/MPC.png deleted file mode 100644 index cd2af5ce..00000000 --- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Alloy (30 nodes)-/MPC.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Alloy (30 nodes)-/Node Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Alloy (30 nodes)-/Node Activity.png deleted file mode 100644 index 2ce3672b..00000000 --- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Alloy (30 nodes)-/Node Activity.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Alloy (30 nodes)-/Out Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Alloy (30 nodes)-/Out Degree.png deleted file mode 100644 index d4d9afe1..00000000 --- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Alloy (30 nodes)-/Out Degree.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/MPC.png new file mode 100644 index 00000000..07c97401 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/MPC.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Node Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Node Activity.png new file mode 100644 index 00000000..f2fb5229 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Node Activity.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Out Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Out Degree.png new file mode 100644 index 00000000..d2677e99 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Out Degree.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-/MPC.png new file mode 100644 index 00000000..a375c676 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-/MPC.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-/Node Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-/Node Activity.png new file mode 100644 index 00000000..d69cd298 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-/Node Activity.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-/Out Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-/Out Degree.png new file mode 100644 index 00000000..0584ac99 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-/Out Degree.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-Random-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-Random-/MPC.png new file mode 100644 index 00000000..016cc2a3 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-Random-/MPC.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-Random-/Node Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-Random-/Node Activity.png new file mode 100644 index 00000000..55d32444 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-Random-/Node Activity.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-Random-/Out Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-Random-/Out Degree.png new file mode 100644 index 00000000..99cbbae4 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/JS_Distance/Human-Viatra (30 nodes)-Random-/Out Degree.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/MPC.png new file mode 100644 index 00000000..b8480ae0 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/MPC.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Node Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Node Activity.png new file mode 100644 index 00000000..82268167 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Node Activity.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Out Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Out Degree.png new file mode 100644 index 00000000..41bcd510 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Realistic Viatra With Some Constraints (100 nodes)-Viatra (100 nodes)-/Out Degree.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-/MPC.png new file mode 100644 index 00000000..b19bb958 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-/MPC.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-/Node Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-/Node Activity.png new file mode 100644 index 00000000..cccabc4e --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-/Node Activity.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-/Out Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-/Out Degree.png new file mode 100644 index 00000000..947ebdd2 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-/Out Degree.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Alloy (30 nodes)-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Alloy (30 nodes)-/MPC.png new file mode 100644 index 00000000..0ff4ee89 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Alloy (30 nodes)-/MPC.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Alloy (30 nodes)-/Node Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Alloy (30 nodes)-/Node Activity.png new file mode 100644 index 00000000..1f9e2e18 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Alloy (30 nodes)-/Node Activity.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Alloy (30 nodes)-/Out Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Alloy (30 nodes)-/Out Degree.png new file mode 100644 index 00000000..2c63cc3a --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Alloy (30 nodes)-/Out Degree.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Random-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Random-/MPC.png index 8d76fed9..8d76fed9 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Random-/MPC.png +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Random-/MPC.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Random-/Node Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Random-/Node Activity.png index daa7929a..daa7929a 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Random-/Node Activity.png +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Random-/Node Activity.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Random-/Out Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Random-/Out Degree.png index e56b1b6e..e56b1b6e 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Random-/Out Degree.png +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Random-/Out Degree.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Random-Viatra (100 nodes)-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Random-Viatra (100 nodes)-/MPC.png index 8705cee2..8705cee2 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Random-Viatra (100 nodes)-/MPC.png +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Random-Viatra (100 nodes)-/MPC.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Random-Viatra (100 nodes)-/Node Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Random-Viatra (100 nodes)-/Node Activity.png index bdab3741..bdab3741 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Random-Viatra (100 nodes)-/Node Activity.png +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Random-Viatra (100 nodes)-/Node Activity.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Random-Viatra (100 nodes)-/Out Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Random-Viatra (100 nodes)-/Out Degree.png index e4269f6e..e4269f6e 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Random-Viatra (100 nodes)-/Out Degree.png +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Random-Viatra (100 nodes)-/Out Degree.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Viatra (60 nodes)-Viatra (100 nodes)-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Viatra (60 nodes)-Viatra (100 nodes)-/MPC.png index e4b6b527..e4b6b527 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Viatra (60 nodes)-Viatra (100 nodes)-/MPC.png +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Viatra (60 nodes)-Viatra (100 nodes)-/MPC.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Viatra (60 nodes)-Viatra (100 nodes)-/Node Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Viatra (60 nodes)-Viatra (100 nodes)-/Node Activity.png index e067ad66..e067ad66 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Viatra (60 nodes)-Viatra (100 nodes)-/Node Activity.png +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Viatra (60 nodes)-Viatra (100 nodes)-/Node Activity.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Viatra (60 nodes)-Viatra (100 nodes)-/Out Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Viatra (60 nodes)-Viatra (100 nodes)-/Out Degree.png index 9b89e4f9..9b89e4f9 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/Human-Viatra (30 nodes)-Viatra (60 nodes)-Viatra (100 nodes)-/Out Degree.png +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra (30 nodes)-Viatra (60 nodes)-Viatra (100 nodes)-/Out Degree.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra consistent (100 nodes)-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra consistent (100 nodes)-/MPC.png new file mode 100644 index 00000000..820df5c7 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra consistent (100 nodes)-/MPC.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra consistent (100 nodes)-/Node Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra consistent (100 nodes)-/Node Activity.png new file mode 100644 index 00000000..b6aa957a --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra consistent (100 nodes)-/Node Activity.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra consistent (100 nodes)-/Out Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra consistent (100 nodes)-/Out Degree.png new file mode 100644 index 00000000..161041d9 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/Human-Viatra consistent (100 nodes)-/Out Degree.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/real vs viatra vs alloy/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/real vs viatra vs alloy/MPC.png index 4f189578..4f189578 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/real vs viatra vs alloy/MPC.png +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/real vs viatra vs alloy/MPC.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/real vs viatra vs alloy/Node Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/real vs viatra vs alloy/Node Activity.png index add3c0f8..add3c0f8 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/real vs viatra vs alloy/Node Activity.png +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/real vs viatra vs alloy/Node Activity.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/real vs viatra vs alloy/Out Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/real vs viatra vs alloy/Out Degree.png index f4717a1a..f4717a1a 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/real vs viatra vs alloy/Out Degree.png +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/KS_Distance/real vs viatra vs alloy/Out Degree.png | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/src/plot_ks_stats.py b/Metrics/Metrics-Calculation/metrics_plot/model comparison/src/plot_ks_stats.py index 2f39ca93..a66802d5 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/src/plot_ks_stats.py +++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/src/plot_ks_stats.py | |||
@@ -8,17 +8,19 @@ import matplotlib.pyplot as plt | |||
8 | from scipy import stats | 8 | from scipy import stats |
9 | import numpy as np | 9 | import numpy as np |
10 | from GraphType import GraphCollection | 10 | from GraphType import GraphCollection |
11 | import DistributionMetrics as metrics | ||
11 | 12 | ||
12 | def main(): | 13 | def main(): |
13 | # read models | 14 | # read models |
14 | human = GraphCollection('../input/humanOutput/', 500, 'Human') | 15 | # human = GraphCollection('../input/humanOutput/', 500, 'Human') |
15 | viatra30 = GraphCollection('../input/viatraOutput30/', 500, 'Viatra (30 nodes)') | 16 | # viatra30 = GraphCollection('../input/viatraOutput30/', 500,'Viatra (30 nodes)') |
16 | # viatra60 = GraphCollection('../input/viatraOutput60/', 500, 'Viatra (60 nodes)') | 17 | # viatra60 = GraphCollection('../input/viatraOutput60/', 500, 'Viatra (60 nodes)') |
17 | # viatra100 = GraphCollection('../input/viatraOutput100/', 500, 'Viatra (100 nodes)') | 18 | viatra100 = GraphCollection('../input/viatraOutput100/', 500, 'Viatra (100 nodes)') |
18 | # random = GraphCollection('../input/randomOutput/', 500, 'Random') | 19 | # random = GraphCollection('../input/randomOutput/', 500, 'Random') |
19 | # alloy = GraphCollection('../input/alloyOutput/', 500, 'Alloy (30 nodes)') | 20 | # alloy = GraphCollection('../input/alloyOutput/', 500, 'Alloy (30 nodes)') |
20 | 21 | realistic_viatra = GraphCollection('../input/viatra_output_consistent_100/', 50, 'Realistic Viatra With Some Constraints (100 nodes)') | |
21 | models_to_compare = [human, viatra30] | 22 | human100 = GraphCollection('../input/human_output_100/', 304, 'Human') |
23 | models_to_compare = [human100, realistic_viatra, viatra100] | ||
22 | 24 | ||
23 | # define output folder | 25 | # define output folder |
24 | outputFolder = '../output/' | 26 | outputFolder = '../output/' |
@@ -38,7 +40,7 @@ def calculateKSMatrix(dists): | |||
38 | for i in range(len(dist)): | 40 | for i in range(len(dist)): |
39 | matrix[i,i] = 0 | 41 | matrix[i,i] = 0 |
40 | for j in range(i+1, len(dist)): | 42 | for j in range(i+1, len(dist)): |
41 | value, p = stats.ks_2samp(dist[i], dist[j]) | 43 | value = metrics.euclidean_distance(dist[i], dist[j]) |
42 | matrix[i, j] = value | 44 | matrix[i, j] = value |
43 | matrix[j, i] = value | 45 | matrix[j, i] = value |
44 | return matrix | 46 | return matrix |
@@ -50,13 +52,14 @@ def calculateMDS(dissimilarities): | |||
50 | return trans | 52 | return trans |
51 | 53 | ||
52 | def plot(graphTypes, coords, title='',index = 0, savePath = ''): | 54 | def plot(graphTypes, coords, title='',index = 0, savePath = ''): |
53 | half_length = int(coords.shape[0] / len(graphTypes)) | ||
54 | color = ['blue', 'red', 'green', 'yellow'] | 55 | color = ['blue', 'red', 'green', 'yellow'] |
55 | plt.figure(index, figsize=(7, 4)) | 56 | plt.figure(index, figsize=(7, 4)) |
56 | plt.title(title) | 57 | plt.title(title) |
58 | index = 0 | ||
57 | for i in range(len(graphTypes)): | 59 | for i in range(len(graphTypes)): |
58 | x = (coords[(i*half_length):((i+1)*half_length), 0].tolist()) | 60 | x = (coords[index:index+graphTypes[i].size, 0].tolist()) |
59 | y = (coords[(i*half_length):((i+1)*half_length), 1].tolist()) | 61 | y = (coords[index:index+graphTypes[i].size, 1].tolist()) |
62 | index += graphTypes[i].size | ||
60 | plt.plot(x, y, color=color[i], marker='o', label = graphTypes[i].name, linestyle='', alpha=0.7) | 63 | plt.plot(x, y, color=color[i], marker='o', label = graphTypes[i].name, linestyle='', alpha=0.7) |
61 | plt.legend(loc='upper right') | 64 | plt.legend(loc='upper right') |
62 | plt.savefig(fname = savePath, dpi=150) | 65 | plt.savefig(fname = savePath, dpi=150) |
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/src/representative_selector .ipynb b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/src/representative_selector .ipynb index 78f408fc..329a46f6 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/src/representative_selector .ipynb +++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/src/representative_selector .ipynb | |||
@@ -16,7 +16,7 @@ | |||
16 | }, | 16 | }, |
17 | { | 17 | { |
18 | "cell_type": "code", | 18 | "cell_type": "code", |
19 | "execution_count": 1, | 19 | "execution_count": 11, |
20 | "metadata": {}, | 20 | "metadata": {}, |
21 | "outputs": [], | 21 | "outputs": [], |
22 | "source": [ | 22 | "source": [ |
@@ -30,7 +30,8 @@ | |||
30 | "import ipywidgets as widgets\n", | 30 | "import ipywidgets as widgets\n", |
31 | "from pyclustering.cluster.kmedoids import kmedoids\n", | 31 | "from pyclustering.cluster.kmedoids import kmedoids\n", |
32 | "from pyclustering.utils.metric import distance_metric, type_metric\n", | 32 | "from pyclustering.utils.metric import distance_metric, type_metric\n", |
33 | "import random" | 33 | "import random\n", |
34 | "import numpy as np" | ||
34 | ] | 35 | ] |
35 | }, | 36 | }, |
36 | { | 37 | { |
@@ -176,23 +177,28 @@ | |||
176 | }, | 177 | }, |
177 | { | 178 | { |
178 | "cell_type": "code", | 179 | "cell_type": "code", |
179 | "execution_count": 6, | 180 | "execution_count": 15, |
180 | "metadata": {}, | 181 | "metadata": {}, |
181 | "outputs": [ | 182 | "outputs": [ |
182 | { | 183 | { |
183 | "name": "stdout", | 184 | "name": "stdout", |
184 | "output_type": "stream", | 185 | "output_type": "stream", |
185 | "text": [ | 186 | "text": [ |
186 | "0.046150929558524685\n" | 187 | "average distance: 0.04615092955852465\n", |
188 | "std: 0.017305709419913242\n", | ||
189 | "max: 0.1411706837186424\n", | ||
190 | "min: 0.0\n" | ||
187 | ] | 191 | ] |
188 | } | 192 | } |
189 | ], | 193 | ], |
190 | "source": [ | 194 | "source": [ |
191 | "total_distance = 0\n", | 195 | "distances = []\n", |
192 | "count = 0\n", | ||
193 | "for model in models:\n", | 196 | "for model in models:\n", |
194 | " total_distance += ks_value(od_rep_model.out_d, model.out_d)\n", | 197 | " distances.append(ks_value(od_rep_model.out_d, model.out_d))\n", |
195 | "print(total_distance / len(models))" | 198 | "print('average distance: ', np.mean(distances))\n", |
199 | "print('std: ', np.std(distances))\n", | ||
200 | "print('max:', max(distances))\n", | ||
201 | "print('min:', min(distances))" | ||
196 | ] | 202 | ] |
197 | }, | 203 | }, |
198 | { | 204 | { |
@@ -217,7 +223,7 @@ | |||
217 | }, | 223 | }, |
218 | { | 224 | { |
219 | "cell_type": "code", | 225 | "cell_type": "code", |
220 | "execution_count": 13, | 226 | "execution_count": 7, |
221 | "metadata": {}, | 227 | "metadata": {}, |
222 | "outputs": [ | 228 | "outputs": [ |
223 | { | 229 | { |
@@ -245,16 +251,21 @@ | |||
245 | "name": "stdout", | 251 | "name": "stdout", |
246 | "output_type": "stream", | 252 | "output_type": "stream", |
247 | "text": [ | 253 | "text": [ |
248 | "0.04679429311806747\n" | 254 | "average distance: 0.046794293118067494\n", |
255 | "std: 0.02880119213919405\n", | ||
256 | "max: 0.18702970297029703\n", | ||
257 | "min: 0.0\n" | ||
249 | ] | 258 | ] |
250 | } | 259 | } |
251 | ], | 260 | ], |
252 | "source": [ | 261 | "source": [ |
253 | "total_distance = 0\n", | 262 | "distances = []\n", |
254 | "count = 0\n", | ||
255 | "for model in models:\n", | 263 | "for model in models:\n", |
256 | " total_distance += ks_value(na_rep_model.na, model.na)\n", | 264 | " distances.append(ks_value(na_rep_model.na, model.na))\n", |
257 | "print(total_distance / len(models))" | 265 | "print('average distance: ', np.mean(distances))\n", |
266 | "print('std: ', np.std(distances))\n", | ||
267 | "print('max:', max(distances))\n", | ||
268 | "print('min:', min(distances))" | ||
258 | ] | 269 | ] |
259 | }, | 270 | }, |
260 | { | 271 | { |
@@ -279,7 +290,7 @@ | |||
279 | }, | 290 | }, |
280 | { | 291 | { |
281 | "cell_type": "code", | 292 | "cell_type": "code", |
282 | "execution_count": 16, | 293 | "execution_count": 9, |
283 | "metadata": {}, | 294 | "metadata": {}, |
284 | "outputs": [ | 295 | "outputs": [ |
285 | { | 296 | { |
@@ -300,23 +311,28 @@ | |||
300 | }, | 311 | }, |
301 | { | 312 | { |
302 | "cell_type": "code", | 313 | "cell_type": "code", |
303 | "execution_count": 18, | 314 | "execution_count": 16, |
304 | "metadata": {}, | 315 | "metadata": {}, |
305 | "outputs": [ | 316 | "outputs": [ |
306 | { | 317 | { |
307 | "name": "stdout", | 318 | "name": "stdout", |
308 | "output_type": "stream", | 319 | "output_type": "stream", |
309 | "text": [ | 320 | "text": [ |
310 | "0.07028909225833631\n" | 321 | "average distance: 0.07028909225833632\n", |
322 | "std: 0.03728189051222417\n", | ||
323 | "max: 0.21961550993809065\n", | ||
324 | "min: 0.0\n" | ||
311 | ] | 325 | ] |
312 | } | 326 | } |
313 | ], | 327 | ], |
314 | "source": [ | 328 | "source": [ |
315 | "total_distance = 0\n", | 329 | "distances = []\n", |
316 | "count = 0\n", | ||
317 | "for model in models:\n", | 330 | "for model in models:\n", |
318 | " total_distance += ks_value(mpc_rep_model.mpc, model.mpc)\n", | 331 | " distances.append(ks_value(mpc_rep_model.mpc, model.mpc))\n", |
319 | "print(total_distance / len(models))" | 332 | "print('average distance: ', np.mean(distances))\n", |
333 | "print('std: ', np.std(distances))\n", | ||
334 | "print('max:', max(distances))\n", | ||
335 | "print('min:', min(distances))" | ||
320 | ] | 336 | ] |
321 | }, | 337 | }, |
322 | { | 338 | { |
diff --git a/Metrics/Metrics-Calculation/metrics_plot/utils/DistributionMetrics.py b/Metrics/Metrics-Calculation/metrics_plot/utils/DistributionMetrics.py new file mode 100644 index 00000000..6e707108 --- /dev/null +++ b/Metrics/Metrics-Calculation/metrics_plot/utils/DistributionMetrics.py | |||
@@ -0,0 +1,43 @@ | |||
1 | from scipy import stats | ||
2 | from scipy.spatial import distance | ||
3 | |||
4 | def ks_distance(samples1, samples2): | ||
5 | value, p = stats.ks_2samp(samples1, samples2) | ||
6 | return (value, p) | ||
7 | |||
8 | def js_distance(samples1, samples2): | ||
9 | map1 = fromSamples(samples1) | ||
10 | map2 = fromSamples(samples2) | ||
11 | allKeys = set(map1.keys()) | set(map2.keys()) | ||
12 | dist1 = distributionFromMap(map1, allKeys) | ||
13 | dist2 = distributionFromMap(map2, allKeys) | ||
14 | return distance.jensenshannon(dist1, dist2, 2) | ||
15 | |||
16 | def euclidean_distance(samples1, samples2): | ||
17 | map1 = fromSamples(samples1) | ||
18 | map2 = fromSamples(samples2) | ||
19 | allKeys = set(map1.keys()) | set(map2.keys()) | ||
20 | dist1 = distributionFromMap(map1, allKeys) | ||
21 | dist2 = distributionFromMap(map2, allKeys) | ||
22 | distance = 0 | ||
23 | for i in range(len(dist2)): | ||
24 | distance += pow(dist1[i] - dist2[i], 2) | ||
25 | return pow(distance, 0.5) | ||
26 | |||
27 | def fromSamples(samples): | ||
28 | m = {} | ||
29 | length = len(samples) | ||
30 | for sample in samples: | ||
31 | value = m.get(sample, 0) | ||
32 | m[sample] = value + 1 | ||
33 | for key in list(m.keys()): | ||
34 | m[key] /= length | ||
35 | return m | ||
36 | |||
37 | def distributionFromMap(m, allKeys): | ||
38 | dist = [] | ||
39 | for key in allKeys: | ||
40 | value = m.get(key, 0) | ||
41 | dist.append(value) | ||
42 | return dist | ||
43 | |||
diff --git a/Metrics/Metrics-Calculation/metrics_plot/utils/GraphType.py b/Metrics/Metrics-Calculation/metrics_plot/utils/GraphType.py index 13754e80..827c2a5e 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/utils/GraphType.py +++ b/Metrics/Metrics-Calculation/metrics_plot/utils/GraphType.py | |||
@@ -11,13 +11,13 @@ class GraphCollection: | |||
11 | self.nas = [] | 11 | self.nas = [] |
12 | self.mpcs = [] | 12 | self.mpcs = [] |
13 | self.name = name | 13 | self.name = name |
14 | self.size = number | ||
14 | models = reader.readmultiplefiles(path, number, shouldShuffle) | 15 | models = reader.readmultiplefiles(path, number, shouldShuffle) |
15 | for i in range(len(models)): | 16 | for i in range(len(models)): |
16 | contents, out_d, na, mpc = reader.getmetrics(models[i]) | 17 | contents, out_d, na, mpc = reader.getmetrics(models[i]) |
17 | self.out_ds.append(out_d) | 18 | self.out_ds.append(out_d) |
18 | self.nas.append(na) | 19 | self.nas.append(na) |
19 | self.mpcs.append(mpc) | 20 | self.mpcs.append(mpc) |
20 | print(len(self.out_ds)) | ||
21 | 21 | ||
22 | #Graph stat for one graph | 22 | #Graph stat for one graph |
23 | class GraphStat: | 23 | class GraphStat: |
diff --git a/Metrics/Metrics-Calculation/metrics_plot/utils/readCSV.py b/Metrics/Metrics-Calculation/metrics_plot/utils/readCSV.py index e0402519..b27a0ffc 100644 --- a/Metrics/Metrics-Calculation/metrics_plot/utils/readCSV.py +++ b/Metrics/Metrics-Calculation/metrics_plot/utils/readCSV.py | |||
@@ -24,9 +24,12 @@ def readcsvfile(filename): | |||
24 | # meta models are string | 24 | # meta models are string |
25 | elif(arr[0] == constants.METAMODEL): | 25 | elif(arr[0] == constants.METAMODEL): |
26 | contents[constants.METAMODEL] = arr[1:] | 26 | contents[constants.METAMODEL] = arr[1:] |
27 | # all other contants are integer | 27 | # NA and OD are integers |
28 | else: | 28 | else: |
29 | contents[arr[0]] = list(map(int, arr[1:])) | 29 | try: |
30 | contents[arr[0]] = list(map(int, arr[1:])) | ||
31 | except: | ||
32 | print(arr[0], ' is not integer') | ||
30 | f.close() | 33 | f.close() |
31 | return contents | 34 | return contents |
32 | 35 | ||