@@ -3,31 +3,30 @@ public class RelativeDistanceTests
3
3
[ Fact ]
4
4
public void Direct_parent_child_relation ( )
5
5
{
6
- var familyTree = new Dictionary < string , string [ ] >
6
+ Dictionary < string , string [ ] > familyTree = new ( )
7
7
{
8
- { "Aditi" , [ "Bao" ] } ,
9
- { "Bao" , [ "Carlos" ] } ,
10
- { "Carlos" , [ "Dalia" ] }
8
+ { "Vera" , [ "Tomoko" ] } ,
9
+ { "Tomoko" , [ "Aditi" ] }
11
10
} ;
12
11
RelativeDistance rd = new ( familyTree ) ;
13
- Assert . Equal ( 3 , rd . DegreeOfSeparation ( "Aditi " , "Dalia " ) ) ;
12
+ Assert . Equal ( 1 , rd . DegreeOfSeparation ( "Vera " , "Tomoko " ) ) ;
14
13
}
15
14
16
15
[ Fact ( Skip = "Remove this Skip property to run this test" ) ]
17
16
public void Sibling_relationship ( )
18
17
{
19
- var familyTree = new Dictionary < string , string [ ] >
18
+ Dictionary < string , string [ ] > familyTree = new ( )
20
19
{
21
- { "Dalia" , [ "Olga" , "Yassin" ] } ,
20
+ { "Dalia" , [ "Olga" , "Yassin" ] }
22
21
} ;
23
22
RelativeDistance rd = new ( familyTree ) ;
24
- Assert . Equal ( 1 , rd . DegreeOfSeparation ( "Olga" , "Yassin" ) ) ; ;
23
+ Assert . Equal ( 1 , rd . DegreeOfSeparation ( "Olga" , "Yassin" ) ) ;
25
24
}
26
25
27
26
[ Fact ( Skip = "Remove this Skip property to run this test" ) ]
28
27
public void Two_degrees_of_separation_grandchild ( )
29
28
{
30
- var familyTree = new Dictionary < string , string [ ] >
29
+ Dictionary < string , string [ ] > familyTree = new ( )
31
30
{
32
31
{ "Khadija" , [ "Mateo" ] } ,
33
32
{ "Mateo" , [ "Rami" ] }
@@ -39,7 +38,7 @@ public void Two_degrees_of_separation_grandchild()
39
38
[ Fact ( Skip = "Remove this Skip property to run this test" ) ]
40
39
public void Unrelated_individuals ( )
41
40
{
42
- var familyTree = new Dictionary < string , string [ ] >
41
+ Dictionary < string , string [ ] > familyTree = new ( )
43
42
{
44
43
{ "Priya" , [ "Rami" ] } ,
45
44
{ "Kaito" , [ "Elif" ] }
@@ -51,7 +50,7 @@ public void Unrelated_individuals()
51
50
[ Fact ( Skip = "Remove this Skip property to run this test" ) ]
52
51
public void Complex_graph_cousins ( )
53
52
{
54
- var familyTree = new Dictionary < string , string [ ] >
53
+ Dictionary < string , string [ ] > familyTree = new ( )
55
54
{
56
55
{ "Aiko" , [ "Bao" , "Carlos" ] } ,
57
56
{ "Bao" , [ "Dalia" , "Elias" ] } ,
@@ -111,125 +110,125 @@ public void Complex_graph_cousins()
111
110
}
112
111
113
112
[ Fact ( Skip = "Remove this Skip property to run this test" ) ]
114
- public void Complex_graph_far_removed_nephew ( )
113
+ public void Complex_graph_no_shortcut_far_removed_nephew ( )
115
114
{
116
- var familyTree = new Dictionary < string , string [ ] >
115
+ Dictionary < string , string [ ] > familyTree = new ( )
117
116
{
117
+ { "Aiko" , [ "Bao" , "Carlos" ] } ,
118
+ { "Bao" , [ "Dalia" , "Elias" ] } ,
119
+ { "Carlos" , [ "Fatima" , "Gustavo" ] } ,
120
+ { "Dalia" , [ "Hassan" , "Isla" ] } ,
121
+ { "Elias" , [ "Javier" ] } ,
122
+ { "Fatima" , [ "Khadija" , "Liam" ] } ,
123
+ { "Gustavo" , [ "Mina" ] } ,
124
+ { "Hassan" , [ "Noah" , "Olga" ] } ,
125
+ { "Isla" , [ "Pedro" ] } ,
126
+ { "Javier" , [ "Quynh" , "Ravi" ] } ,
127
+ { "Khadija" , [ "Sofia" ] } ,
128
+ { "Liam" , [ "Tariq" , "Uma" ] } ,
118
129
{ "Mina" , [ "Viktor" , "Wang" ] } ,
130
+ { "Noah" , [ "Xiomara" ] } ,
119
131
{ "Olga" , [ "Yuki" ] } ,
120
- { "Javier" , [ "Quynh" , "Ravi" ] } ,
132
+ { "Pedro" , [ "Zane" , "Aditi" ] } ,
133
+ { "Quynh" , [ "Boris" ] } ,
134
+ { "Ravi" , [ "Celine" ] } ,
135
+ { "Sofia" , [ "Diego" , "Elif" ] } ,
121
136
{ "Tariq" , [ "Farah" ] } ,
137
+ { "Uma" , [ "Giorgio" ] } ,
122
138
{ "Viktor" , [ "Hana" , "Ian" ] } ,
139
+ { "Wang" , [ "Jing" ] } ,
140
+ { "Xiomara" , [ "Kaito" ] } ,
141
+ { "Yuki" , [ "Leila" ] } ,
142
+ { "Zane" , [ "Mateo" ] } ,
143
+ { "Aditi" , [ "Nia" ] } ,
144
+ { "Boris" , [ "Oscar" ] } ,
145
+ { "Celine" , [ "Priya" ] } ,
123
146
{ "Diego" , [ "Qi" ] } ,
124
- { "Carlos" , [ "Fatima" , "Gustavo" ] } ,
147
+ { "Elif" , [ "Rami" ] } ,
148
+ { "Farah" , [ "Sven" ] } ,
149
+ { "Giorgio" , [ "Tomoko" ] } ,
125
150
{ "Hana" , [ "Umar" ] } ,
151
+ { "Ian" , [ "Vera" ] } ,
126
152
{ "Jing" , [ "Wyatt" ] } ,
127
- { "Sven" , [ "Fabio" ] } ,
128
- { "Zane" , [ "Mateo" ] } ,
129
- { "Isla" , [ "Pedro" ] } ,
130
- { "Quynh" , [ "Boris" ] } ,
131
153
{ "Kaito" , [ "Xia" ] } ,
132
- { "Liam" , [ "Tariq" , "Uma" ] } ,
154
+ { "Leila" , [ "Yassin" ] } ,
155
+ { "Mateo" , [ "Zara" ] } ,
156
+ { "Nia" , [ "Antonio" ] } ,
157
+ { "Oscar" , [ "Bianca" ] } ,
133
158
{ "Priya" , [ "Cai" ] } ,
134
159
{ "Qi" , [ "Dimitri" ] } ,
135
- { "Wang" , [ "Jing" ] } ,
136
- { "Yuki" , [ "Leila" ] } ,
137
- { "Xia" , [ "Kim" ] } ,
138
- { "Pedro" , [ "Zane" , "Aditi" ] } ,
139
- { "Uma" , [ "Giorgio" ] } ,
140
- { "Giorgio" , [ "Tomoko" ] } ,
141
- { "Gustavo" , [ "Mina" ] } ,
142
- { "Sofia" , [ "Diego" , "Elif" ] } ,
143
- { "Leila" , [ "Yassin" ] } ,
160
+ { "Rami" , [ "Ewa" ] } ,
161
+ { "Sven" , [ "Fabio" ] } ,
162
+ { "Tomoko" , [ "Gabriela" ] } ,
144
163
{ "Umar" , [ "Helena" ] } ,
145
- { "Aiko" , [ "Bao" , "Carlos" ] } ,
146
- { "Fatima" , [ "Khadija" , "Liam" ] } ,
147
- { "Oscar" , [ "Bianca" ] } ,
148
- { "Wyatt" , [ "Jun" ] } ,
149
- { "Ian" , [ "Vera" ] } ,
150
- { "Mateo" , [ "Zara" ] } ,
151
- { "Noah" , [ "Xiomara" ] } ,
152
- { "Celine" , [ "Priya" ] } ,
153
- { "Xiomara" , [ "Kaito" ] } ,
154
- { "Bao" , [ "Dalia" , "Elias" ] } ,
155
- { "Elif" , [ "Rami" ] } ,
156
- { "Farah" , [ "Sven" ] } ,
157
- { "Aditi" , [ "Nia" ] } ,
158
164
{ "Vera" , [ "Igor" ] } ,
159
- { "Boris" , [ "Oscar" ] } ,
160
- { "Khadija" , [ "Sofia" ] } ,
161
- { "Zara" , [ "Mohammed" ] } ,
162
- { "Dalia" , [ "Hassan" , "Isla" ] } ,
163
- { "Ravi" , [ "Celine" ] } ,
165
+ { "Wyatt" , [ "Jun" ] } ,
166
+ { "Xia" , [ "Kim" ] } ,
164
167
{ "Yassin" , [ "Lucia" ] } ,
165
- { "Elias" , [ "Javier" ] } ,
166
- { "Nia" , [ "Antonio" ] } ,
167
- { "Rami" , [ "Ewa" ] } ,
168
- { "Hassan" , [ "Noah" , "Olga" ] } ,
169
- { "Tomoko" , [ "Gabriela" ] }
168
+ { "Zara" , [ "Mohammed" ] }
170
169
} ;
171
170
RelativeDistance rd = new ( familyTree ) ;
172
171
Assert . Equal ( 14 , rd . DegreeOfSeparation ( "Lucia" , "Jun" ) ) ;
173
172
}
174
173
175
174
[ Fact ( Skip = "Remove this Skip property to run this test" ) ]
176
- public void Complex_graph_cousins_several_times_removed ( )
175
+ public void Complex_graph_some_shortcuts_cross_down_and_cross_up_cousins_several_times_removed_with_unrelated_family_tree ( )
177
176
{
178
- var familyTree = new Dictionary < string , string [ ] >
177
+ Dictionary < string , string [ ] > familyTree = new ( )
179
178
{
179
+ { "Aiko" , [ "Bao" , "Carlos" ] } ,
180
+ { "Bao" , [ "Dalia" ] } ,
181
+ { "Carlos" , [ "Fatima" , "Gustavo" ] } ,
182
+ { "Dalia" , [ "Hassan" , "Isla" ] } ,
183
+ { "Fatima" , [ "Khadija" , "Liam" ] } ,
184
+ { "Gustavo" , [ "Mina" ] } ,
185
+ { "Hassan" , [ "Noah" , "Olga" ] } ,
186
+ { "Isla" , [ "Pedro" ] } ,
187
+ { "Javier" , [ "Quynh" , "Ravi" ] } ,
188
+ { "Khadija" , [ "Sofia" ] } ,
189
+ { "Liam" , [ "Tariq" , "Uma" ] } ,
180
190
{ "Mina" , [ "Viktor" , "Wang" ] } ,
191
+ { "Noah" , [ "Xiomara" ] } ,
181
192
{ "Olga" , [ "Yuki" ] } ,
182
- { "Javier" , [ "Quynh" , "Ravi" ] } ,
193
+ { "Pedro" , [ "Zane" , "Aditi" ] } ,
194
+ { "Quynh" , [ "Boris" ] } ,
195
+ { "Ravi" , [ "Celine" ] } ,
196
+ { "Sofia" , [ "Diego" , "Elif" ] } ,
183
197
{ "Tariq" , [ "Farah" ] } ,
198
+ { "Uma" , [ "Giorgio" ] } ,
184
199
{ "Viktor" , [ "Hana" , "Ian" ] } ,
200
+ { "Wang" , [ "Jing" ] } ,
201
+ { "Xiomara" , [ "Kaito" ] } ,
202
+ { "Yuki" , [ "Leila" ] } ,
203
+ { "Zane" , [ "Mateo" ] } ,
204
+ { "Aditi" , [ "Nia" ] } ,
205
+ { "Boris" , [ "Oscar" ] } ,
206
+ { "Celine" , [ "Priya" ] } ,
185
207
{ "Diego" , [ "Qi" ] } ,
186
- { "Carlos" , [ "Fatima" , "Gustavo" ] } ,
208
+ { "Elif" , [ "Rami" ] } ,
209
+ { "Farah" , [ "Sven" ] } ,
210
+ { "Giorgio" , [ "Tomoko" ] } ,
187
211
{ "Hana" , [ "Umar" ] } ,
212
+ { "Ian" , [ "Vera" ] } ,
188
213
{ "Jing" , [ "Wyatt" ] } ,
189
- { "Sven" , [ "Fabio" ] } ,
190
- { "Zane" , [ "Mateo" ] } ,
191
- { "Isla" , [ "Pedro" ] } ,
192
- { "Quynh" , [ "Boris" ] } ,
193
214
{ "Kaito" , [ "Xia" ] } ,
194
- { "Liam" , [ "Tariq" , "Uma" ] } ,
215
+ { "Leila" , [ "Yassin" ] } ,
216
+ { "Mateo" , [ "Zara" ] } ,
217
+ { "Nia" , [ "Antonio" ] } ,
218
+ { "Oscar" , [ "Bianca" ] } ,
195
219
{ "Priya" , [ "Cai" ] } ,
196
220
{ "Qi" , [ "Dimitri" ] } ,
197
- { "Wang" , [ "Jing" ] } ,
198
- { "Yuki" , [ "Leila" ] } ,
199
- { "Xia" , [ "Kim" ] } ,
200
- { "Pedro" , [ "Zane" , "Aditi" ] } ,
201
- { "Uma" , [ "Giorgio" ] } ,
202
- { "Giorgio" , [ "Tomoko" ] } ,
203
- { "Gustavo" , [ "Mina" ] } ,
204
- { "Sofia" , [ "Diego" , "Elif" ] } ,
205
- { "Leila" , [ "Yassin" ] } ,
221
+ { "Rami" , [ "Ewa" ] } ,
222
+ { "Sven" , [ "Fabio" ] } ,
223
+ { "Tomoko" , [ "Gabriela" ] } ,
206
224
{ "Umar" , [ "Helena" ] } ,
207
- { "Aiko" , [ "Bao" , "Carlos" ] } ,
208
- { "Fatima" , [ "Khadija" , "Liam" ] } ,
209
- { "Oscar" , [ "Bianca" ] } ,
210
- { "Wyatt" , [ "Jun" ] } ,
211
- { "Ian" , [ "Vera" ] } ,
212
- { "Mateo" , [ "Zara" ] } ,
213
- { "Noah" , [ "Xiomara" ] } ,
214
- { "Celine" , [ "Priya" ] } ,
215
- { "Xiomara" , [ "Kaito" ] } ,
216
- { "Bao" , [ "Dalia" ] } ,
217
- { "Elif" , [ "Rami" ] } ,
218
- { "Farah" , [ "Sven" ] } ,
219
- { "Aditi" , [ "Nia" ] } ,
220
225
{ "Vera" , [ "Igor" ] } ,
221
- { "Boris" , [ "Oscar" ] } ,
222
- { "Khadija" , [ "Sofia" ] } ,
223
- { "Zara" , [ "Mohammed" ] } ,
224
- { "Dalia" , [ "Hassan" , "Isla" ] } ,
225
- { "Ravi" , [ "Celine" ] } ,
226
+ { "Wyatt" , [ "Jun" ] } ,
227
+ { "Xia" , [ "Kim" ] } ,
226
228
{ "Yassin" , [ "Lucia" ] } ,
227
- { "Nia" , [ "Antonio" ] } ,
228
- { "Rami" , [ "Ewa" ] } ,
229
- { "Hassan" , [ "Noah" , "Olga" ] } ,
230
- { "Tomoko" , [ "Gabriela" ] }
229
+ { "Zara" , [ "Mohammed" ] }
231
230
} ;
232
231
RelativeDistance rd = new ( familyTree ) ;
233
232
Assert . Equal ( 12 , rd . DegreeOfSeparation ( "Wyatt" , "Xia" ) ) ;
234
233
}
235
- }
234
+ }
0 commit comments