Skip to content

Commit 9e3f268

Browse files
committed
Update generator template
1 parent 6acd78a commit 9e3f268

File tree

2 files changed

+100
-94
lines changed

2 files changed

+100
-94
lines changed

exercises/practice/relative-distance/.meta/Generator.tpl

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,14 @@ public class {{ testClass }}
44
[Fact{{ if !for.first }}(Skip = "Remove this Skip property to run this test"){{ end }}]
55
public void {{ test.testMethod }}()
66
{
7-
Assert.Equal({{ test.expected }}, {{ testedClass }}.{{ test.testedMethod }}({{ test.input.familyTree }}, {{ test.input.personA | string.literal }}, {{ test.input.personB | string.literal }}));
7+
Dictionary<string, string[]> familyTree = new()
8+
{
9+
{{- for entry in test.input.familyTree }}
10+
{ "{{ entry.key }}", [{{ for name in entry.value }}"{{ name }}"{{ if !for.last }}, {{ end }}{{ end }}] }{{ if !for.last }},{{ end }}
11+
{{- end }}
12+
};
13+
RelativeDistance rd = new(familyTree);
14+
Assert.Equal({{ if test.expected }}{{ test.expected }}{{ else }}{{ -1 }}{{ end }}, rd.DegreeOfSeparation({{ test.input.personA | string.literal }}, {{ test.input.personB | string.literal }}));
815
}
916
{{ end -}}
1017
}

exercises/practice/relative-distance/RelativeDistanceTests.cs

Lines changed: 92 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,30 @@ public class RelativeDistanceTests
33
[Fact]
44
public void Direct_parent_child_relation()
55
{
6-
var familyTree = new Dictionary<string, string[]>
6+
Dictionary<string, string[]> familyTree = new()
77
{
8-
{ "Aditi", ["Bao"] },
9-
{ "Bao", ["Carlos"] },
10-
{ "Carlos", ["Dalia"] }
8+
{ "Vera", ["Tomoko"] },
9+
{ "Tomoko", ["Aditi"] }
1110
};
1211
RelativeDistance rd = new(familyTree);
13-
Assert.Equal(3, rd.DegreeOfSeparation("Aditi", "Dalia"));
12+
Assert.Equal(1, rd.DegreeOfSeparation("Vera", "Tomoko"));
1413
}
1514

1615
[Fact(Skip = "Remove this Skip property to run this test")]
1716
public void Sibling_relationship()
1817
{
19-
var familyTree = new Dictionary<string, string[]>
18+
Dictionary<string, string[]> familyTree = new()
2019
{
21-
{ "Dalia", ["Olga", "Yassin"] },
20+
{ "Dalia", ["Olga", "Yassin"] }
2221
};
2322
RelativeDistance rd = new(familyTree);
24-
Assert.Equal(1, rd.DegreeOfSeparation("Olga", "Yassin"));;
23+
Assert.Equal(1, rd.DegreeOfSeparation("Olga", "Yassin"));
2524
}
2625

2726
[Fact(Skip = "Remove this Skip property to run this test")]
2827
public void Two_degrees_of_separation_grandchild()
2928
{
30-
var familyTree = new Dictionary<string, string[]>
29+
Dictionary<string, string[]> familyTree = new()
3130
{
3231
{ "Khadija", ["Mateo"] },
3332
{ "Mateo", ["Rami"] }
@@ -39,7 +38,7 @@ public void Two_degrees_of_separation_grandchild()
3938
[Fact(Skip = "Remove this Skip property to run this test")]
4039
public void Unrelated_individuals()
4140
{
42-
var familyTree = new Dictionary<string, string[]>
41+
Dictionary<string, string[]> familyTree = new()
4342
{
4443
{ "Priya", ["Rami"] },
4544
{ "Kaito", ["Elif"] }
@@ -51,7 +50,7 @@ public void Unrelated_individuals()
5150
[Fact(Skip = "Remove this Skip property to run this test")]
5251
public void Complex_graph_cousins()
5352
{
54-
var familyTree = new Dictionary<string, string[]>
53+
Dictionary<string, string[]> familyTree = new()
5554
{
5655
{ "Aiko", ["Bao", "Carlos"] },
5756
{ "Bao", ["Dalia", "Elias"] },
@@ -111,125 +110,125 @@ public void Complex_graph_cousins()
111110
}
112111

113112
[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()
115114
{
116-
var familyTree = new Dictionary<string, string[]>
115+
Dictionary<string, string[]> familyTree = new()
117116
{
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"] },
118129
{ "Mina", ["Viktor", "Wang"] },
130+
{ "Noah", ["Xiomara"] },
119131
{ "Olga", ["Yuki"] },
120-
{ "Javier", ["Quynh", "Ravi"] },
132+
{ "Pedro", ["Zane", "Aditi"] },
133+
{ "Quynh", ["Boris"] },
134+
{ "Ravi", ["Celine"] },
135+
{ "Sofia", ["Diego", "Elif"] },
121136
{ "Tariq", ["Farah"] },
137+
{ "Uma", ["Giorgio"] },
122138
{ "Viktor", ["Hana", "Ian"] },
139+
{ "Wang", ["Jing"] },
140+
{ "Xiomara", ["Kaito"] },
141+
{ "Yuki", ["Leila"] },
142+
{ "Zane", ["Mateo"] },
143+
{ "Aditi", ["Nia"] },
144+
{ "Boris", ["Oscar"] },
145+
{ "Celine", ["Priya"] },
123146
{ "Diego", ["Qi"] },
124-
{ "Carlos", ["Fatima", "Gustavo"] },
147+
{ "Elif", ["Rami"] },
148+
{ "Farah", ["Sven"] },
149+
{ "Giorgio", ["Tomoko"] },
125150
{ "Hana", ["Umar"] },
151+
{ "Ian", ["Vera"] },
126152
{ "Jing", ["Wyatt"] },
127-
{ "Sven", ["Fabio"] },
128-
{ "Zane", ["Mateo"] },
129-
{ "Isla", ["Pedro"] },
130-
{ "Quynh", ["Boris"] },
131153
{ "Kaito", ["Xia"] },
132-
{ "Liam", ["Tariq", "Uma"] },
154+
{ "Leila", ["Yassin"] },
155+
{ "Mateo", ["Zara"] },
156+
{ "Nia", ["Antonio"] },
157+
{ "Oscar", ["Bianca"] },
133158
{ "Priya", ["Cai"] },
134159
{ "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"] },
144163
{ "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"] },
158164
{ "Vera", ["Igor"] },
159-
{ "Boris", ["Oscar"] },
160-
{ "Khadija", ["Sofia"] },
161-
{ "Zara", ["Mohammed"] },
162-
{ "Dalia", ["Hassan", "Isla"] },
163-
{ "Ravi", ["Celine"] },
165+
{ "Wyatt", ["Jun"] },
166+
{ "Xia", ["Kim"] },
164167
{ "Yassin", ["Lucia"] },
165-
{ "Elias", ["Javier"] },
166-
{ "Nia", ["Antonio"] },
167-
{ "Rami", ["Ewa"] },
168-
{ "Hassan", ["Noah", "Olga"] },
169-
{ "Tomoko", ["Gabriela"] }
168+
{ "Zara", ["Mohammed"] }
170169
};
171170
RelativeDistance rd = new(familyTree);
172171
Assert.Equal(14, rd.DegreeOfSeparation("Lucia", "Jun"));
173172
}
174173

175174
[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()
177176
{
178-
var familyTree = new Dictionary<string, string[]>
177+
Dictionary<string, string[]> familyTree = new()
179178
{
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"] },
180190
{ "Mina", ["Viktor", "Wang"] },
191+
{ "Noah", ["Xiomara"] },
181192
{ "Olga", ["Yuki"] },
182-
{ "Javier", ["Quynh", "Ravi"] },
193+
{ "Pedro", ["Zane", "Aditi"] },
194+
{ "Quynh", ["Boris"] },
195+
{ "Ravi", ["Celine"] },
196+
{ "Sofia", ["Diego", "Elif"] },
183197
{ "Tariq", ["Farah"] },
198+
{ "Uma", ["Giorgio"] },
184199
{ "Viktor", ["Hana", "Ian"] },
200+
{ "Wang", ["Jing"] },
201+
{ "Xiomara", ["Kaito"] },
202+
{ "Yuki", ["Leila"] },
203+
{ "Zane", ["Mateo"] },
204+
{ "Aditi", ["Nia"] },
205+
{ "Boris", ["Oscar"] },
206+
{ "Celine", ["Priya"] },
185207
{ "Diego", ["Qi"] },
186-
{ "Carlos", ["Fatima", "Gustavo"] },
208+
{ "Elif", ["Rami"] },
209+
{ "Farah", ["Sven"] },
210+
{ "Giorgio", ["Tomoko"] },
187211
{ "Hana", ["Umar"] },
212+
{ "Ian", ["Vera"] },
188213
{ "Jing", ["Wyatt"] },
189-
{ "Sven", ["Fabio"] },
190-
{ "Zane", ["Mateo"] },
191-
{ "Isla", ["Pedro"] },
192-
{ "Quynh", ["Boris"] },
193214
{ "Kaito", ["Xia"] },
194-
{ "Liam", ["Tariq", "Uma"] },
215+
{ "Leila", ["Yassin"] },
216+
{ "Mateo", ["Zara"] },
217+
{ "Nia", ["Antonio"] },
218+
{ "Oscar", ["Bianca"] },
195219
{ "Priya", ["Cai"] },
196220
{ "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"] },
206224
{ "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"] },
220225
{ "Vera", ["Igor"] },
221-
{ "Boris", ["Oscar"] },
222-
{ "Khadija", ["Sofia"] },
223-
{ "Zara", ["Mohammed"] },
224-
{ "Dalia", ["Hassan", "Isla"] },
225-
{ "Ravi", ["Celine"] },
226+
{ "Wyatt", ["Jun"] },
227+
{ "Xia", ["Kim"] },
226228
{ "Yassin", ["Lucia"] },
227-
{ "Nia", ["Antonio"] },
228-
{ "Rami", ["Ewa"] },
229-
{ "Hassan", ["Noah", "Olga"] },
230-
{ "Tomoko", ["Gabriela"] }
229+
{ "Zara", ["Mohammed"] }
231230
};
232231
RelativeDistance rd = new(familyTree);
233232
Assert.Equal(12, rd.DegreeOfSeparation("Wyatt", "Xia"));
234233
}
235-
}
234+
}

0 commit comments

Comments
 (0)