rubyfca 0.2.10 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,244 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <svg width="720pt" height="656pt" viewBox="0 0 720 656" xmlns="http://www.w3.org/2000/svg">
3
+ <polygon fill="white" stroke="none" points="0 656 0 0 720 0 720 656 0 656" style=""/>
4
+ <g id="node2" class="node" transform="matrix(1, 0, 0, 1, -238.714844, 1325)">
5
+ <title>cl1v</title>
6
+ <polygon fill="white" stroke="none" points="833.5,-1325 750.5,-1325 750.5,-1190 833.5,-1190 833.5,-1325"/>
7
+ <polygon fill="none" stroke="black" points="758.5,-1194 758.5,-1321 770.5,-1321 770.5,-1194 758.5,-1194"/>
8
+ <text text-anchor="start" x="761.12" y="-1252.45" font-family="Times,serif" font-size="14.00" style="white-space: pre;">1</text>
9
+ <polygon fill="lightblue" stroke="none" points="770.5,-1216 770.5,-1321 825.5,-1321 825.5,-1216 770.5,-1216"/>
10
+ <polygon fill="none" stroke="black" points="770.5,-1216 770.5,-1321 825.5,-1321 825.5,-1216 770.5,-1216"/>
11
+ <text text-anchor="start" x="773.5" y="-1304.7" font-family="Times,serif" font-size="14.00" style="white-space: pre;">Ostrich</text>
12
+ <text text-anchor="start" x="770.5" y="-1288.2" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Sparrow</text>
13
+ <text text-anchor="start" x="770.5" y="-1271.7" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Eagle</text>
14
+ <text text-anchor="start" x="770.5" y="-1255.2" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Lion</text>
15
+ <text text-anchor="start" x="770.5" y="-1238.7" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Bonobo</text>
16
+ <text text-anchor="start" x="770.5" y="-1222.2" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Human</text>
17
+ <polygon fill="white" stroke="none" points="770.5,-1194 770.5,-1216 825.5,-1216 825.5,-1194 770.5,-1194"/>
18
+ <polygon fill="none" stroke="black" points="770.5,-1194 770.5,-1216 825.5,-1216 825.5,-1194 770.5,-1194"/>
19
+ <text text-anchor="start" x="773.5" y="-1199.7" font-family="Times,serif" font-size="14.00" style="white-space: pre;">     </text>
20
+ </g>
21
+ <g id="node4" class="node" transform="matrix(1, 0, 0, 1, -238.714844, 1325)">
22
+ <title>cl2v</title>
23
+ <polygon fill="white" stroke="none" points="833,-1145 751,-1145 751,-1076 833,-1076 833,-1145"/>
24
+ <polygon fill="none" stroke="black" points="759,-1080 759,-1141 771,-1141 771,-1080 759,-1080"/>
25
+ <text text-anchor="start" x="761.62" y="-1105.45" font-family="Times,serif" font-size="14.00" style="white-space: pre;">2</text>
26
+ <polygon fill="lightblue" stroke="none" points="771,-1102 771,-1141 825,-1141 825,-1102 771,-1102"/>
27
+ <polygon fill="none" stroke="black" points="771,-1102 771,-1141 825,-1141 825,-1102 771,-1102"/>
28
+ <text text-anchor="start" x="772" y="-1124.7" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Eagle</text>
29
+ <text text-anchor="start" x="772" y="-1108.2" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Lion</text>
30
+ <polygon fill="pink" stroke="none" points="771,-1080 771,-1102 825,-1102 825,-1080 771,-1080"/>
31
+ <polygon fill="none" stroke="black" points="771,-1080 771,-1102 825,-1102 825,-1080 771,-1080"/>
32
+ <text text-anchor="start" x="774" y="-1085.7" font-family="Times,serif" font-size="14.00" style="white-space: pre;">preying*</text>
33
+ </g>
34
+ <polygon fill="white" stroke="none" points="606.285 294 512.285 294 512.285 379 606.285 379 606.285 294"/>
35
+ <polygon fill="none" stroke="black" points="520.285 375 520.285 298 532.285 298 532.285 375 520.285 375"/>
36
+ <text text-anchor="start" x="522.905" y="341.55" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;">3</text>
37
+ <polygon fill="lightblue" stroke="none" points="532.285 353 532.285 298 598.285 298 598.285 353 532.285 353"/>
38
+ <polygon fill="none" stroke="black" points="532.285 353 532.285 298 598.285 298 598.285 353 532.285 353"/>
39
+ <text text-anchor="start" x="533.285" y="314.3" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Lion</text>
40
+ <text text-anchor="start" x="533.285" y="330.8" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Bonobo</text>
41
+ <text text-anchor="start" x="533.285" y="347.3" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Human</text>
42
+ <polygon fill="pink" stroke="none" points="532.285 375 532.285 353 598.285 353 598.285 375 532.285 375"/>
43
+ <polygon fill="none" stroke="black" points="532.285 375 532.285 353 598.285 353 598.285 375 532.285 375"/>
44
+ <text text-anchor="start" x="535.285" y="369.3" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;">mammal *</text>
45
+ <g id="node8" class="node" transform="matrix(1, 0, 0, 1, -238.714844, 1325)">
46
+ <title>cl4v</title>
47
+ <polygon fill="white" stroke="none" points="837.5,-901 750.5,-901 750.5,-832 837.5,-832 837.5,-901"/>
48
+ <polygon fill="none" stroke="black" points="758.5,-836 758.5,-897 770.5,-897 770.5,-836 758.5,-836"/>
49
+ <text text-anchor="start" x="761.12" y="-861.45" font-family="Times,serif" font-size="14.00" style="white-space: pre;">4</text>
50
+ <polygon fill="lightblue" stroke="none" points="770.5,-875 770.5,-897 829.5,-897 829.5,-875 770.5,-875"/>
51
+ <polygon fill="none" stroke="black" points="770.5,-875 770.5,-897 829.5,-897 829.5,-875 770.5,-875"/>
52
+ <text text-anchor="start" x="771.5" y="-880.7" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Lion*</text>
53
+ <polygon fill="pink" stroke="none" points="770.5,-836 770.5,-875 829.5,-875 829.5,-836 770.5,-836"/>
54
+ <polygon fill="none" stroke="black" points="770.5,-836 770.5,-875 829.5,-875 829.5,-836 770.5,-836"/>
55
+ <text text-anchor="start" x="773.5" y="-858.7" font-family="Times,serif" font-size="14.00" style="white-space: pre;">mammal </text>
56
+ <text text-anchor="start" x="773.5" y="-842.2" font-family="Times,serif" font-size="14.00" style="white-space: pre;">preying</text>
57
+ </g>
58
+ <g id="node10" class="node" transform="matrix(1, 0, 0, 1, -238.714844, 1325)">
59
+ <title>cl5v</title>
60
+ <polygon fill="white" stroke="none" points="837.5,-787 750.5,-787 750.5,-701 837.5,-701 837.5,-787"/>
61
+ <polygon fill="none" stroke="black" points="758.5,-705 758.5,-783 770.5,-783 770.5,-705 758.5,-705"/>
62
+ <text text-anchor="start" x="761.12" y="-738.95" font-family="Times,serif" font-size="14.00" style="white-space: pre;">5</text>
63
+ <polygon fill="lightblue" stroke="none" points="770.5,-744 770.5,-783 829.5,-783 829.5,-744 770.5,-744"/>
64
+ <polygon fill="none" stroke="black" points="770.5,-744 770.5,-783 829.5,-783 829.5,-744 770.5,-744"/>
65
+ <text text-anchor="start" x="771.5" y="-766.7" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Bonobo*</text>
66
+ <text text-anchor="start" x="771.5" y="-750.2" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Human</text>
67
+ <polygon fill="pink" stroke="none" points="770.5,-705 770.5,-744 829.5,-744 829.5,-705 770.5,-705"/>
68
+ <polygon fill="none" stroke="black" points="770.5,-705 770.5,-744 829.5,-744 829.5,-705 770.5,-705"/>
69
+ <text text-anchor="start" x="773.5" y="-727.7" font-family="Times,serif" font-size="14.00" style="white-space: pre;">mammal </text>
70
+ <text text-anchor="start" x="773.5" y="-711.2" font-family="Times,serif" font-size="14.00" style="white-space: pre;">ape    *</text>
71
+ </g>
72
+ <g id="node12" class="node" transform="matrix(1, 0, 0, 1, -125.441696, 656)">
73
+ <title>cl6v</title>
74
+ <polygon fill="white" stroke="none" points="837.5,-656 750.5,-656 750.5,-571 837.5,-571 837.5,-656"/>
75
+ <polygon fill="none" stroke="black" points="758.5,-575 758.5,-652 770.5,-652 770.5,-575 758.5,-575"/>
76
+ <text text-anchor="start" x="761.12" y="-608.45" font-family="Times,serif" font-size="14.00" style="white-space: pre;">6</text>
77
+ <polygon fill="lightblue" stroke="none" points="770.5,-630 770.5,-652 829.5,-652 829.5,-630 770.5,-630"/>
78
+ <polygon fill="none" stroke="black" points="770.5,-630 770.5,-652 829.5,-652 829.5,-630 770.5,-630"/>
79
+ <text text-anchor="start" x="769.5" y="-635.7" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Human*</text>
80
+ <polygon fill="pink" stroke="none" points="770.5,-575 770.5,-630 829.5,-630 829.5,-575 770.5,-575"/>
81
+ <polygon fill="none" stroke="black" points="770.5,-575 770.5,-630 829.5,-630 829.5,-575 770.5,-575"/>
82
+ <text text-anchor="start" x="773.5" y="-613.7" font-family="Times,serif" font-size="14.00" style="white-space: pre;">mammal </text>
83
+ <text text-anchor="start" x="773.5" y="-597.2" font-family="Times,serif" font-size="14.00" style="white-space: pre;">ape    </text>
84
+ <text text-anchor="start" x="773.5" y="-580.7" font-family="Times,serif" font-size="14.00" style="white-space: pre;">talking*</text>
85
+ </g>
86
+ <g id="node14" class="node" transform="matrix(1, 0, 0, 1, -125.441696, 656)">
87
+ <title>cl7v</title>
88
+ <polygon fill="white" stroke="none" points="833.5,-526 750.5,-526 750.5,-441 833.5,-441 833.5,-526"/>
89
+ <polygon fill="none" stroke="black" points="758.5,-445 758.5,-522 770.5,-522 770.5,-445 758.5,-445"/>
90
+ <text text-anchor="start" x="761.12" y="-478.45" font-family="Times,serif" font-size="14.00" style="white-space: pre;">7</text>
91
+ <polygon fill="lightblue" stroke="none" points="770.5,-467 770.5,-522 825.5,-522 825.5,-467 770.5,-467"/>
92
+ <polygon fill="none" stroke="black" points="770.5,-467 770.5,-522 825.5,-522 825.5,-467 770.5,-467"/>
93
+ <text text-anchor="start" x="773.5" y="-505.7" font-family="Times,serif" font-size="14.00" style="white-space: pre;">Ostrich*</text>
94
+ <text text-anchor="start" x="770.5" y="-489.2" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Sparrow</text>
95
+ <text text-anchor="start" x="770.5" y="-472.7" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Eagle</text>
96
+ <polygon fill="pink" stroke="none" points="770.5,-445 770.5,-467 825.5,-467 825.5,-445 770.5,-445"/>
97
+ <polygon fill="none" stroke="black" points="770.5,-445 770.5,-467 825.5,-467 825.5,-445 770.5,-445"/>
98
+ <text text-anchor="start" x="773.5" y="-450.7" font-family="Times,serif" font-size="14.00" style="white-space: pre;">bird   *</text>
99
+ </g>
100
+ <polygon fill="white" stroke="none" points="715.558 260 625.558 260 625.558 346 715.558 346 715.558 260"/>
101
+ <polygon fill="none" stroke="black" points="633.558 342 633.558 264 645.558 264 645.558 342 633.558 342"/>
102
+ <text text-anchor="start" x="636.178" y="308.05" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;">8</text>
103
+ <polygon fill="lightblue" stroke="none" points="645.558 303 645.558 264 707.558 264 707.558 303 645.558 303"/>
104
+ <polygon fill="none" stroke="black" points="645.558 303 645.558 264 707.558 264 707.558 303 645.558 303"/>
105
+ <text text-anchor="start" x="644.558" y="280.3" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Sparrow*</text>
106
+ <text text-anchor="start" x="644.558" y="296.8" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Eagle</text>
107
+ <polygon fill="pink" stroke="none" points="645.558 342 645.558 303 707.558 303 707.558 342 645.558 342"/>
108
+ <polygon fill="none" stroke="black" points="645.558 342 645.558 303 707.558 303 707.558 342 645.558 342"/>
109
+ <text text-anchor="start" x="648.558" y="319.3" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;">bird   </text>
110
+ <text text-anchor="start" x="648.558" y="335.8" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;">flying *</text>
111
+ <g id="node18" class="node" transform="matrix(1, 0, 0, 1, -125.441696, 656)">
112
+ <title>cl9v</title>
113
+ <polygon fill="white" stroke="none" points="825.5,-265 750.5,-265 750.5,-180 825.5,-180 825.5,-265"/>
114
+ <polygon fill="none" stroke="black" points="758.5,-184 758.5,-261 770.5,-261 770.5,-184 758.5,-184"/>
115
+ <text text-anchor="start" x="761.12" y="-217.45" font-family="Times,serif" font-size="14.00" style="white-space: pre;">9</text>
116
+ <polygon fill="lightblue" stroke="none" points="770.5,-239 770.5,-261 817.5,-261 817.5,-239 770.5,-239"/>
117
+ <polygon fill="none" stroke="black" points="770.5,-239 770.5,-261 817.5,-261 817.5,-239 770.5,-239"/>
118
+ <text text-anchor="start" x="769.5" y="-244.7" font-family="Times,serif" font-size="14.00" style="white-space: pre; font-size: 14px;"> Eagle*</text>
119
+ <polygon fill="pink" stroke="none" points="770.5,-184 770.5,-239 817.5,-239 817.5,-184 770.5,-184"/>
120
+ <polygon fill="none" stroke="black" points="770.5,-184 770.5,-239 817.5,-239 817.5,-184 770.5,-184"/>
121
+ <text text-anchor="start" x="773.5" y="-222.7" font-family="Times,serif" font-size="14.00" style="white-space: pre;">bird   </text>
122
+ <text text-anchor="start" x="773.5" y="-206.2" font-family="Times,serif" font-size="14.00" style="white-space: pre;">flying </text>
123
+ <text text-anchor="start" x="773.5" y="-189.7" font-family="Times,serif" font-size="14.00" style="white-space: pre;">preying</text>
124
+ </g>
125
+ <g id="node20" class="node" transform="matrix(1, 0, 0, 1, -125.441696, 656)">
126
+ <title>cl10v</title>
127
+ <polygon fill="white" stroke="none" points="845,-135 751,-135 751,0 845,0 845,-135"/>
128
+ <polygon fill="none" stroke="black" points="759,-4 759,-131 778,-131 778,-4 759,-4"/>
129
+ <text text-anchor="start" x="761.75" y="-62.45" font-family="Times,serif" font-size="14.00" style="white-space: pre;">10</text>
130
+ <polygon fill="white" stroke="none" points="778,-109 778,-131 837,-131 837,-109 778,-109"/>
131
+ <polygon fill="none" stroke="black" points="778,-109 778,-131 837,-131 837,-109 778,-109"/>
132
+ <text text-anchor="start" x="781" y="-114.7" font-family="Times,serif" font-size="14.00" style="white-space: pre;">     </text>
133
+ <polygon fill="pink" stroke="none" points="778,-4 778,-109 837,-109 837,-4 778,-4"/>
134
+ <polygon fill="none" stroke="black" points="778,-4 778,-109 837,-109 837,-4 778,-4"/>
135
+ <text text-anchor="start" x="781" y="-92.7" font-family="Times,serif" font-size="14.00" style="white-space: pre;">bird   </text>
136
+ <text text-anchor="start" x="781" y="-76.2" font-family="Times,serif" font-size="14.00" style="white-space: pre;">mammal </text>
137
+ <text text-anchor="start" x="781" y="-59.7" font-family="Times,serif" font-size="14.00" style="white-space: pre;">ape    </text>
138
+ <text text-anchor="start" x="781" y="-43.2" font-family="Times,serif" font-size="14.00" style="white-space: pre;">flying </text>
139
+ <text text-anchor="start" x="781" y="-26.7" font-family="Times,serif" font-size="14.00" style="white-space: pre;">preying</text>
140
+ <text text-anchor="start" x="781" y="-10.2" font-family="Times,serif" font-size="14.00" style="white-space: pre;">talking</text>
141
+ </g>
142
+ <g id="node21" class="node" transform="matrix(1, 0, 0, 1, 4, 1329)">
143
+ <title>c0</title>
144
+ <ellipse fill="lightgrey" stroke="black" cx="269" cy="-744" rx="18" ry="18"/>
145
+ <text text-anchor="middle" x="269" y="-738.95" font-family="Times,serif" font-size="14.00" style="white-space: pre;">1</text>
146
+ </g>
147
+ <g id="node22" class="node" transform="matrix(1, 0, 0, 1, 4, 1329)">
148
+ <title>c1</title>
149
+ <ellipse fill="lightgrey" stroke="black" cx="269" cy="-988.5" rx="18" ry="18"/>
150
+ <text text-anchor="middle" x="269" y="-983.45" font-family="Times,serif" font-size="14.00" style="white-space: pre;">2</text>
151
+ </g>
152
+ <g id="edge20" class="edge" transform="matrix(1, 0, 0, 1, 4, 1329)">
153
+ <title>c1--c0</title>
154
+ <path fill="none" stroke="#999999" d="M269,-970.12C269,-924.7 269,-807.55 269,-762.26"/>
155
+ </g>
156
+ <g id="node23" class="node" transform="matrix(1, 0, 0, 1, 4, 1329)">
157
+ <title>c2</title>
158
+ <ellipse fill="lightgrey" stroke="black" cx="136" cy="-866.5" rx="18" ry="18"/>
159
+ <text text-anchor="middle" x="136" y="-861.45" font-family="Times,serif" font-size="14.00" style="white-space: pre;">3</text>
160
+ </g>
161
+ <g id="edge21" class="edge" transform="matrix(1, 0, 0, 1, 4, 1329)">
162
+ <title>c2--c0</title>
163
+ <path fill="none" stroke="#999999" d="M149.24,-854.31C174.6,-830.95 229.79,-780.11 255.42,-756.51"/>
164
+ </g>
165
+ <g id="node24" class="node" transform="matrix(1, 0, 0, 1, 4, 1329)">
166
+ <title>c3</title>
167
+ <ellipse fill="lightgrey" stroke="black" cx="239" cy="-1110.5" rx="18" ry="18"/>
168
+ <text text-anchor="middle" x="239" y="-1105.45" font-family="Times,serif" font-size="14.00" style="white-space: pre;">4</text>
169
+ </g>
170
+ <g id="edge22" class="edge" transform="matrix(1, 0, 0, 1, 4, 1329)">
171
+ <title>c3--c1</title>
172
+ <path fill="none" stroke="#999999" d="M243.36,-1092.76C249.05,-1069.63 258.94,-1029.4 264.63,-1006.26"/>
173
+ </g>
174
+ <g id="edge23" class="edge" transform="matrix(1, 0, 0, 1, 4, 1329)">
175
+ <title>c3--c2</title>
176
+ <path fill="none" stroke="#999999" d="M231.92,-1093.73C213.1,-1049.15 162,-928.1 143.13,-883.39"/>
177
+ </g>
178
+ <g id="node25" class="node" transform="matrix(1, 0, 0, 1, 4, 1329)">
179
+ <title>c4</title>
180
+ <ellipse fill="lightgrey" stroke="black" cx="18" cy="-988.5" rx="18" ry="18"/>
181
+ <text text-anchor="middle" x="18" y="-983.45" font-family="Times,serif" font-size="14.00" style="white-space: pre;">5</text>
182
+ </g>
183
+ <g id="edge24" class="edge" transform="matrix(1, 0, 0, 1, 4, 1329)">
184
+ <title>c4--c2</title>
185
+ <path fill="none" stroke="#999999" d="M30.63,-975.44C53.34,-951.96 100.82,-902.88 123.46,-879.46"/>
186
+ </g>
187
+ <g id="node26" class="node" transform="matrix(1, 0, 0, 1, 4, 1329)">
188
+ <title>c5</title>
189
+ <ellipse fill="lightgrey" stroke="black" cx="33" cy="-1110.5" rx="18" ry="18"/>
190
+ <text text-anchor="middle" x="33" y="-1105.45" font-family="Times,serif" font-size="14.00" style="white-space: pre;">6</text>
191
+ </g>
192
+ <g id="edge25" class="edge" transform="matrix(1, 0, 0, 1, 4, 1329)">
193
+ <title>c5--c4</title>
194
+ <path fill="none" stroke="#999999" d="M30.75,-1092.24C27.91,-1069.1 23.04,-1029.49 20.21,-1006.49"/>
195
+ </g>
196
+ <g id="node27" class="node" transform="matrix(1, 0, 0, 1, 4, 1329)">
197
+ <title>c6</title>
198
+ <ellipse fill="lightgrey" stroke="black" cx="395" cy="-866.5" rx="18" ry="18"/>
199
+ <text text-anchor="middle" x="395" y="-861.45" font-family="Times,serif" font-size="14.00" style="white-space: pre;">7</text>
200
+ </g>
201
+ <g id="edge26" class="edge" transform="matrix(1, 0, 0, 1, 4, 1329)">
202
+ <title>c6--c0</title>
203
+ <path fill="none" stroke="#999999" d="M381.99,-853.85C357.85,-830.38 306.36,-780.32 282.13,-756.76"/>
204
+ </g>
205
+ <g id="node28" class="node" transform="matrix(1, 0, 0, 1, 4, 1329)">
206
+ <title>c7</title>
207
+ <ellipse fill="lightgrey" stroke="black" cx="461" cy="-988.5" rx="18" ry="18"/>
208
+ <text text-anchor="middle" x="461" y="-983.45" font-family="Times,serif" font-size="14.00" style="white-space: pre;">8</text>
209
+ </g>
210
+ <g id="edge27" class="edge" transform="matrix(1, 0, 0, 1, 4, 1329)">
211
+ <title>c7--c6</title>
212
+ <path fill="none" stroke="#999999" d="M452.24,-972.3C439.61,-948.97 416.44,-906.14 403.8,-882.77"/>
213
+ </g>
214
+ <g id="node29" class="node" transform="matrix(1, 0, 0, 1, 4, 1329)">
215
+ <title>c8</title>
216
+ <ellipse fill="lightgrey" stroke="black" cx="372" cy="-1110.5" rx="18" ry="18"/>
217
+ <text text-anchor="middle" x="372" y="-1105.45" font-family="Times,serif" font-size="14.00" style="white-space: pre;">9</text>
218
+ </g>
219
+ <g id="edge28" class="edge" transform="matrix(1, 0, 0, 1, 4, 1329)">
220
+ <title>c8--c1</title>
221
+ <path fill="none" stroke="#999999" d="M360.18,-1096.51C340.32,-1072.97 300.45,-1025.76 280.68,-1002.33"/>
222
+ </g>
223
+ <g id="edge29" class="edge" transform="matrix(1, 0, 0, 1, 4, 1329)">
224
+ <title>c8--c7</title>
225
+ <path fill="none" stroke="#999999" d="M382.56,-1096.03C399.6,-1072.67 432.97,-1026.92 450.18,-1003.34"/>
226
+ </g>
227
+ <g id="node30" class="node" transform="matrix(1, 0, 0, 1, 4, 1329)">
228
+ <title>c9</title>
229
+ <ellipse fill="lightgrey" stroke="black" cx="239" cy="-1257.5" rx="20.13" ry="20.13"/>
230
+ <text text-anchor="middle" x="239" y="-1252.45" font-family="Times,serif" font-size="14.00" style="white-space: pre;">10</text>
231
+ </g>
232
+ <g id="edge30" class="edge" transform="matrix(1, 0, 0, 1, 4, 1329)">
233
+ <title>c9--c3</title>
234
+ <path fill="none" stroke="#999999" d="M239,-1237.06C239,-1208.34 239,-1156.49 239,-1128.91"/>
235
+ </g>
236
+ <g id="edge31" class="edge" transform="matrix(1, 0, 0, 1, 4, 1329)">
237
+ <title>c9--c5</title>
238
+ <path fill="none" stroke="#999999" d="M222.49,-1245.72C183.35,-1217.79 85.38,-1147.88 47.9,-1121.14"/>
239
+ </g>
240
+ <g id="edge32" class="edge" transform="matrix(1, 0, 0, 1, 4, 1329)">
241
+ <title>c9--c8</title>
242
+ <path fill="none" stroke="#999999" d="M252.73,-1242.32C278.75,-1213.57 334.84,-1151.57 359.7,-1124.09"/>
243
+ </g>
244
+ </svg>
Binary file
data/test/rubyfca_test.rb CHANGED
@@ -1,7 +1,58 @@
1
- require 'test_helper'
1
+ # frozen_string_literal: true
2
2
 
3
- class RubyfcaTest < Test::Unit::TestCase
4
- should "be given some tests" do
5
- assert true
3
+ require "minitest/autorun"
4
+
5
+ class TestRubyFCA < Minitest::Test
6
+ BIN = File.expand_path("../bin", __dir__)
7
+ TEST_INPUT = File.expand_path("../test/test_input", __dir__)
8
+ TEST_EXPECTED = File.expand_path("../test/test_expected", __dir__)
9
+ TEST_OUTPUT = File.expand_path("../test/test_output", __dir__)
10
+
11
+ def test_csv_to_svg
12
+ input_file = "#{TEST_INPUT}/test_data.csv"
13
+ output_file = "#{TEST_OUTPUT}/test_result_01.svg"
14
+ expected_output = File.read("#{TEST_EXPECTED}/test_result_01.svg")
15
+
16
+ File.delete(output_file) if File.exist?(output_file)
17
+
18
+ `#{BIN}/rubyfca #{input_file} #{output_file} --coloring 1 --full --nodesep 0.8 --ranksep 0.3 --straight`
19
+
20
+ assert_equal expected_output, File.read(output_file) if File.exist?(output_file)
21
+ end
22
+
23
+ def test_cxt_to_svg
24
+ input_file = "#{TEST_INPUT}/test_data.cxt"
25
+ output_file = "#{TEST_OUTPUT}/test_result_02.svg"
26
+ expected_output = File.read("#{TEST_EXPECTED}/test_result_02.svg")
27
+
28
+ File.delete(output_file) if File.exist?(output_file)
29
+
30
+ `#{BIN}/rubyfca #{input_file} #{output_file} --coloring 2 --nodesep 0.5 --ranksep 0.3`
31
+
32
+ assert_equal expected_output, File.read(output_file) if File.exist?(output_file)
33
+ end
34
+
35
+ def test_xlsx_to_svg
36
+ input_file = "#{TEST_INPUT}/test_data_numbers.xlsx"
37
+ output_file = "#{TEST_OUTPUT}/test_result_03.svg"
38
+ expected_output = File.read("#{TEST_EXPECTED}/test_result_03.svg")
39
+
40
+ File.delete(output_file) if File.exist?(output_file)
41
+
42
+ `#{BIN}/rubyfca #{input_file} #{output_file} --circle --legend --coloring 1 --full --nodesep 0.8 --ranksep 0.3 --straight`
43
+
44
+ assert_equal expected_output, File.read(output_file) if File.exist?(output_file)
45
+ end
46
+
47
+ def test_numbers
48
+ input_file = "#{TEST_INPUT}/test_data_numbers.xlsx"
49
+ output_file = "#{TEST_OUTPUT}/test_result_04.svg"
50
+ expected_output = File.read("#{TEST_EXPECTED}/test_result_04.svg")
51
+
52
+ File.delete(output_file) if File.exist?(output_file)
53
+
54
+ `#{BIN}/rubyfca #{input_file} #{output_file} --coloring 1 --full --nodesep 0.8 --ranksep 0.3 --straight`
55
+
56
+ assert_equal expected_output, File.read(output_file) if File.exist?(output_file)
6
57
  end
7
58
  end
@@ -0,0 +1,7 @@
1
+ ,Ostrich, Sparrow, Eagle, Lion, Bonobo, Human being
2
+ bird ,X,X,X,.,.,.
3
+ mammal ,.,.,.,X,X,X
4
+ ape ,.,.,.,.,X,X
5
+ flying ,.,X,X,.,.,.
6
+ preying,.,.,X,X,.,.
7
+ talking,.,.,.,.,.,X
@@ -0,0 +1,202 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <!-- Generated by graphviz version 8.0.5 (20230430.1635)
5
+ -->
6
+ <!-- Title: clattice Pages: 1 -->
7
+ <svg width="418pt" height="585pt"
8
+ viewBox="0.00 0.00 417.75 585.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
+ <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 581)">
10
+ <title>clattice</title>
11
+ <polygon fill="white" stroke="none" points="-4,4 -4,-581 413.75,-581 413.75,4 -4,4"/>
12
+ <!-- c0 -->
13
+ <g id="node1" class="node">
14
+ <title>c0</title>
15
+ <polygon fill="lightblue" stroke="none" points="234.87,-22.5 234.87,-127.5 290.37,-127.5 290.37,-22.5 234.87,-22.5"/>
16
+ <polygon fill="none" stroke="black" points="234.87,-22.5 234.87,-127.5 290.37,-127.5 290.37,-22.5 234.87,-22.5"/>
17
+ <text text-anchor="start" x="237.87" y="-111.2" font-family="Times,serif" font-size="14.00">Ostrich</text>
18
+ <text text-anchor="start" x="237.87" y="-94.7" font-family="Times,serif" font-size="14.00"> Sparrow</text>
19
+ <text text-anchor="start" x="237.87" y="-78.2" font-family="Times,serif" font-size="14.00"> Eagle</text>
20
+ <text text-anchor="start" x="237.87" y="-61.7" font-family="Times,serif" font-size="14.00"> Lion</text>
21
+ <text text-anchor="start" x="237.87" y="-45.2" font-family="Times,serif" font-size="14.00"> Bonobo</text>
22
+ <text text-anchor="start" x="237.87" y="-28.7" font-family="Times,serif" font-size="14.00"> Human</text>
23
+ <polygon fill="white" stroke="none" points="234.87,0 234.87,-22.5 290.37,-22.5 290.37,0 234.87,0"/>
24
+ <polygon fill="none" stroke="black" points="234.87,0 234.87,-22.5 290.37,-22.5 290.37,0 234.87,0"/>
25
+ <text text-anchor="start" x="237.87" y="-6.2" font-family="Times,serif" font-size="14.00"> &#160;&#160;&#160;&#160;</text>
26
+ </g>
27
+ <!-- c1 -->
28
+ <g id="node2" class="node">
29
+ <title>c1</title>
30
+ <polygon fill="lightblue" stroke="none" points="235.62,-280.25 235.62,-319.25 289.62,-319.25 289.62,-280.25 235.62,-280.25"/>
31
+ <polygon fill="none" stroke="black" points="235.62,-280.25 235.62,-319.25 289.62,-319.25 289.62,-280.25 235.62,-280.25"/>
32
+ <text text-anchor="start" x="238.62" y="-302.95" font-family="Times,serif" font-size="14.00"> Eagle</text>
33
+ <text text-anchor="start" x="238.62" y="-286.45" font-family="Times,serif" font-size="14.00"> Lion</text>
34
+ <polygon fill="pink" stroke="none" points="235.62,-257.75 235.62,-280.25 289.62,-280.25 289.62,-257.75 235.62,-257.75"/>
35
+ <polygon fill="none" stroke="black" points="235.62,-257.75 235.62,-280.25 289.62,-280.25 289.62,-257.75 235.62,-257.75"/>
36
+ <text text-anchor="start" x="238.62" y="-263.95" font-family="Times,serif" font-size="14.00">preying*</text>
37
+ </g>
38
+ <!-- c1&#45;&#45;c0 -->
39
+ <g id="edge1" class="edge">
40
+ <title>c1&#45;&#45;c0</title>
41
+ <path fill="none" stroke="#999999" d="M262.62,-258.19C262.62,-224.76 262.62,-170.03 262.62,-127.13"/>
42
+ </g>
43
+ <!-- c2 -->
44
+ <g id="node3" class="node">
45
+ <title>c2</title>
46
+ <polygon fill="lightblue" stroke="none" points="108.62,-172 108.62,-227.5 174.62,-227.5 174.62,-172 108.62,-172"/>
47
+ <polygon fill="none" stroke="black" points="108.62,-172 108.62,-227.5 174.62,-227.5 174.62,-172 108.62,-172"/>
48
+ <text text-anchor="start" x="111.62" y="-211.2" font-family="Times,serif" font-size="14.00"> Lion</text>
49
+ <text text-anchor="start" x="111.62" y="-194.7" font-family="Times,serif" font-size="14.00"> Bonobo</text>
50
+ <text text-anchor="start" x="111.62" y="-178.2" font-family="Times,serif" font-size="14.00"> Human</text>
51
+ <polygon fill="pink" stroke="none" points="108.62,-149.5 108.62,-172 174.62,-172 174.62,-149.5 108.62,-149.5"/>
52
+ <polygon fill="none" stroke="black" points="108.62,-149.5 108.62,-172 174.62,-172 174.62,-149.5 108.62,-149.5"/>
53
+ <text text-anchor="start" x="111.62" y="-155.7" font-family="Times,serif" font-size="14.00">mammal *</text>
54
+ </g>
55
+ <!-- c2&#45;&#45;c0 -->
56
+ <g id="edge2" class="edge">
57
+ <title>c2&#45;&#45;c0</title>
58
+ <path fill="none" stroke="#999999" d="M174.36,-154.74C193.4,-135.11 217.12,-110.66 235.17,-92.05"/>
59
+ </g>
60
+ <!-- c3 -->
61
+ <g id="node4" class="node">
62
+ <title>c3</title>
63
+ <polygon fill="lightblue" stroke="none" points="120,-396.75 120,-419.25 179.25,-419.25 179.25,-396.75 120,-396.75"/>
64
+ <polygon fill="none" stroke="black" points="120,-396.75 120,-419.25 179.25,-419.25 179.25,-396.75 120,-396.75"/>
65
+ <text text-anchor="start" x="123" y="-402.95" font-family="Times,serif" font-size="14.00"> Lion*</text>
66
+ <polygon fill="pink" stroke="none" points="120,-357.75 120,-396.75 179.25,-396.75 179.25,-357.75 120,-357.75"/>
67
+ <polygon fill="none" stroke="black" points="120,-357.75 120,-396.75 179.25,-396.75 179.25,-357.75 120,-357.75"/>
68
+ <text text-anchor="start" x="123" y="-380.45" font-family="Times,serif" font-size="14.00">mammal </text>
69
+ <text text-anchor="start" x="123" y="-363.95" font-family="Times,serif" font-size="14.00">preying</text>
70
+ </g>
71
+ <!-- c3&#45;&#45;c1 -->
72
+ <g id="edge3" class="edge">
73
+ <title>c3&#45;&#45;c1</title>
74
+ <path fill="none" stroke="#999999" d="M179.01,-362.49C196.54,-346.98 218.63,-327.43 235.7,-312.33"/>
75
+ </g>
76
+ <!-- c3&#45;&#45;c2 -->
77
+ <g id="edge4" class="edge">
78
+ <title>c3&#45;&#45;c2</title>
79
+ <path fill="none" stroke="#999999" d="M148.41,-358.12C147.01,-323.16 144.71,-265.64 143.18,-227.42"/>
80
+ </g>
81
+ <!-- c4 -->
82
+ <g id="node5" class="node">
83
+ <title>c4</title>
84
+ <polygon fill="lightblue" stroke="none" points="0,-288.5 0,-327.5 59.25,-327.5 59.25,-288.5 0,-288.5"/>
85
+ <polygon fill="none" stroke="black" points="0,-288.5 0,-327.5 59.25,-327.5 59.25,-288.5 0,-288.5"/>
86
+ <text text-anchor="start" x="3" y="-311.2" font-family="Times,serif" font-size="14.00"> Bonobo*</text>
87
+ <text text-anchor="start" x="3" y="-294.7" font-family="Times,serif" font-size="14.00"> Human</text>
88
+ <polygon fill="pink" stroke="none" points="0,-249.5 0,-288.5 59.25,-288.5 59.25,-249.5 0,-249.5"/>
89
+ <polygon fill="none" stroke="black" points="0,-249.5 0,-288.5 59.25,-288.5 59.25,-249.5 0,-249.5"/>
90
+ <text text-anchor="start" x="3" y="-272.2" font-family="Times,serif" font-size="14.00">mammal </text>
91
+ <text text-anchor="start" x="3" y="-255.7" font-family="Times,serif" font-size="14.00">ape    *</text>
92
+ </g>
93
+ <!-- c4&#45;&#45;c2 -->
94
+ <g id="edge5" class="edge">
95
+ <title>c4&#45;&#45;c2</title>
96
+ <path fill="none" stroke="#999999" d="M59.05,-262.23C74.35,-248.57 93.08,-231.84 108.84,-217.77"/>
97
+ </g>
98
+ <!-- c5 -->
99
+ <g id="node6" class="node">
100
+ <title>c5</title>
101
+ <polygon fill="lightblue" stroke="none" points="3,-405 3,-427.5 62.25,-427.5 62.25,-405 3,-405"/>
102
+ <polygon fill="none" stroke="black" points="3,-405 3,-427.5 62.25,-427.5 62.25,-405 3,-405"/>
103
+ <text text-anchor="start" x="6" y="-411.2" font-family="Times,serif" font-size="14.00"> Human*</text>
104
+ <polygon fill="pink" stroke="none" points="3,-349.5 3,-405 62.25,-405 62.25,-349.5 3,-349.5"/>
105
+ <polygon fill="none" stroke="black" points="3,-349.5 3,-405 62.25,-405 62.25,-349.5 3,-349.5"/>
106
+ <text text-anchor="start" x="6" y="-388.7" font-family="Times,serif" font-size="14.00">mammal </text>
107
+ <text text-anchor="start" x="6" y="-372.2" font-family="Times,serif" font-size="14.00">ape    </text>
108
+ <text text-anchor="start" x="6" y="-355.7" font-family="Times,serif" font-size="14.00">talking*</text>
109
+ </g>
110
+ <!-- c5&#45;&#45;c4 -->
111
+ <g id="edge6" class="edge">
112
+ <title>c5&#45;&#45;c4</title>
113
+ <path fill="none" stroke="#999999" d="M31.46,-349.55C31.24,-342.2 31.01,-334.52 30.79,-327.18"/>
114
+ </g>
115
+ <!-- c6 -->
116
+ <g id="node7" class="node">
117
+ <title>c6</title>
118
+ <polygon fill="lightblue" stroke="none" points="350.87,-172 350.87,-227.5 406.37,-227.5 406.37,-172 350.87,-172"/>
119
+ <polygon fill="none" stroke="black" points="350.87,-172 350.87,-227.5 406.37,-227.5 406.37,-172 350.87,-172"/>
120
+ <text text-anchor="start" x="353.87" y="-211.2" font-family="Times,serif" font-size="14.00">Ostrich*</text>
121
+ <text text-anchor="start" x="353.87" y="-194.7" font-family="Times,serif" font-size="14.00"> Sparrow</text>
122
+ <text text-anchor="start" x="353.87" y="-178.2" font-family="Times,serif" font-size="14.00"> Eagle</text>
123
+ <polygon fill="pink" stroke="none" points="350.87,-149.5 350.87,-172 406.37,-172 406.37,-149.5 350.87,-149.5"/>
124
+ <polygon fill="none" stroke="black" points="350.87,-149.5 350.87,-172 406.37,-172 406.37,-149.5 350.87,-149.5"/>
125
+ <text text-anchor="start" x="353.87" y="-155.7" font-family="Times,serif" font-size="14.00">bird   *</text>
126
+ </g>
127
+ <!-- c6&#45;&#45;c0 -->
128
+ <g id="edge7" class="edge">
129
+ <title>c6&#45;&#45;c0</title>
130
+ <path fill="none" stroke="#999999" d="M351.13,-158.94C332.77,-139.19 308.71,-113.32 290.32,-93.53"/>
131
+ </g>
132
+ <!-- c7 -->
133
+ <g id="node8" class="node">
134
+ <title>c7</title>
135
+ <polygon fill="lightblue" stroke="none" points="347.5,-288.5 347.5,-327.5 409.75,-327.5 409.75,-288.5 347.5,-288.5"/>
136
+ <polygon fill="none" stroke="black" points="347.5,-288.5 347.5,-327.5 409.75,-327.5 409.75,-288.5 347.5,-288.5"/>
137
+ <text text-anchor="start" x="350.5" y="-311.2" font-family="Times,serif" font-size="14.00"> Sparrow*</text>
138
+ <text text-anchor="start" x="350.5" y="-294.7" font-family="Times,serif" font-size="14.00"> Eagle</text>
139
+ <polygon fill="pink" stroke="none" points="347.5,-249.5 347.5,-288.5 409.75,-288.5 409.75,-249.5 347.5,-249.5"/>
140
+ <polygon fill="none" stroke="black" points="347.5,-249.5 347.5,-288.5 409.75,-288.5 409.75,-249.5 347.5,-249.5"/>
141
+ <text text-anchor="start" x="350.5" y="-272.2" font-family="Times,serif" font-size="14.00">bird   </text>
142
+ <text text-anchor="start" x="350.5" y="-255.7" font-family="Times,serif" font-size="14.00">flying *</text>
143
+ </g>
144
+ <!-- c7&#45;&#45;c6 -->
145
+ <g id="edge8" class="edge">
146
+ <title>c7&#45;&#45;c6</title>
147
+ <path fill="none" stroke="#999999" d="M378.62,-249.55C378.62,-242.2 378.62,-234.52 378.62,-227.18"/>
148
+ </g>
149
+ <!-- c8 -->
150
+ <g id="node9" class="node">
151
+ <title>c8</title>
152
+ <polygon fill="lightblue" stroke="none" points="239,-405 239,-427.5 286.25,-427.5 286.25,-405 239,-405"/>
153
+ <polygon fill="none" stroke="black" points="239,-405 239,-427.5 286.25,-427.5 286.25,-405 239,-405"/>
154
+ <text text-anchor="start" x="242" y="-411.2" font-family="Times,serif" font-size="14.00"> Eagle*</text>
155
+ <polygon fill="pink" stroke="none" points="239,-349.5 239,-405 286.25,-405 286.25,-349.5 239,-349.5"/>
156
+ <polygon fill="none" stroke="black" points="239,-349.5 239,-405 286.25,-405 286.25,-349.5 239,-349.5"/>
157
+ <text text-anchor="start" x="242" y="-388.7" font-family="Times,serif" font-size="14.00">bird   </text>
158
+ <text text-anchor="start" x="242" y="-372.2" font-family="Times,serif" font-size="14.00">flying </text>
159
+ <text text-anchor="start" x="242" y="-355.7" font-family="Times,serif" font-size="14.00">preying</text>
160
+ </g>
161
+ <!-- c8&#45;&#45;c1 -->
162
+ <g id="edge9" class="edge">
163
+ <title>c8&#45;&#45;c1</title>
164
+ <path fill="none" stroke="#999999" d="M262.62,-349.55C262.62,-339.46 262.62,-328.74 262.62,-319.14"/>
165
+ </g>
166
+ <!-- c8&#45;&#45;c7 -->
167
+ <g id="edge10" class="edge">
168
+ <title>c8&#45;&#45;c7</title>
169
+ <path fill="none" stroke="#999999" d="M286.09,-368.26C303.84,-352.97 328.36,-331.83 347.7,-315.16"/>
170
+ </g>
171
+ <!-- c9 -->
172
+ <g id="node10" class="node">
173
+ <title>c9</title>
174
+ <polygon fill="white" stroke="none" points="120,-554.5 120,-577 179.25,-577 179.25,-554.5 120,-554.5"/>
175
+ <polygon fill="none" stroke="black" points="120,-554.5 120,-577 179.25,-577 179.25,-554.5 120,-554.5"/>
176
+ <text text-anchor="start" x="123" y="-560.7" font-family="Times,serif" font-size="14.00"> &#160;&#160;&#160;&#160;</text>
177
+ <polygon fill="pink" stroke="none" points="120,-449.5 120,-554.5 179.25,-554.5 179.25,-449.5 120,-449.5"/>
178
+ <polygon fill="none" stroke="black" points="120,-449.5 120,-554.5 179.25,-554.5 179.25,-449.5 120,-449.5"/>
179
+ <text text-anchor="start" x="123" y="-538.2" font-family="Times,serif" font-size="14.00">bird   </text>
180
+ <text text-anchor="start" x="123" y="-521.7" font-family="Times,serif" font-size="14.00">mammal </text>
181
+ <text text-anchor="start" x="123" y="-505.2" font-family="Times,serif" font-size="14.00">ape    </text>
182
+ <text text-anchor="start" x="123" y="-488.7" font-family="Times,serif" font-size="14.00">flying </text>
183
+ <text text-anchor="start" x="123" y="-472.2" font-family="Times,serif" font-size="14.00">preying</text>
184
+ <text text-anchor="start" x="123" y="-455.7" font-family="Times,serif" font-size="14.00">talking</text>
185
+ </g>
186
+ <!-- c9&#45;&#45;c3 -->
187
+ <g id="edge11" class="edge">
188
+ <title>c9&#45;&#45;c3</title>
189
+ <path fill="none" stroke="#999999" d="M149.62,-449.78C149.62,-439.06 149.62,-428.39 149.62,-419.03"/>
190
+ </g>
191
+ <!-- c9&#45;&#45;c5 -->
192
+ <g id="edge12" class="edge">
193
+ <title>c9&#45;&#45;c5</title>
194
+ <path fill="none" stroke="#999999" d="M120.1,-481.77C102.36,-462.86 79.87,-438.88 62.14,-419.97"/>
195
+ </g>
196
+ <!-- c9&#45;&#45;c8 -->
197
+ <g id="edge13" class="edge">
198
+ <title>c9&#45;&#45;c8</title>
199
+ <path fill="none" stroke="#999999" d="M179.01,-480.8C197.72,-460.15 221.61,-433.77 239.06,-414.51"/>
200
+ </g>
201
+ </g>
202
+ </svg>