Untitled
unknown
csharp
3 years ago
2.9 kB
18
No Index
public void AssertThat_SelectRecursivePreOrder_ListsAllChildrenInPreOrder()
{
var data = SampleData();
var flattened = EnumerableOf(data)
.SelectRecursivePreOrder(it => it.Children)
.Select(it => it.Value)
.ToList();
Assert.Equal(13, flattened.Count);
Assert.Equal(actual: flattened[00], expected: "A1");
Assert.Equal(actual: flattened[01], expected: "A1B1");
Assert.Equal(actual: flattened[02], expected: "A1B1C1");
Assert.Equal(actual: flattened[03], expected: "A1B1C2");
Assert.Equal(actual: flattened[04], expected: "A1B1C3");
Assert.Equal(actual: flattened[05], expected: "A1B2");
Assert.Equal(actual: flattened[06], expected: "A1B2C1");
Assert.Equal(actual: flattened[07], expected: "A1B2C2");
Assert.Equal(actual: flattened[08], expected: "A1B2C3");
Assert.Equal(actual: flattened[09], expected: "A1B3");
Assert.Equal(actual: flattened[10], expected: "A1B3C1");
Assert.Equal(actual: flattened[11], expected: "A1B3C2");
Assert.Equal(actual: flattened[12], expected: "A1B3C3");
}
private class Data
{
public string Value { get; }
public IList<Data> Children { get; }
public Data(string value, IList<Data> children)
{
Value = value;
Children = children;
}
}
private Data SampleData() =>
new Data(
"A1",
ListOf(
new Data(
"A1B1",
ListOf(
new Data(
"A1B1C1",
ListOf<Data>()
),
new Data(
"A1B1C2",
ListOf<Data>()
),
new Data(
"A1B1C3",
ListOf<Data>()
)
)
),
new Data(
"A1B2",
ListOf(
new Data(
"A1B2C1",
ListOf<Data>()
),
new Data(
"A1B2C2",
ListOf<Data>()
),
new Data(
"A1B2C3",
ListOf<Data>()
)
)
),
new Data(
"A1B3",
ListOf(
new Data(
"A1B3C1",
ListOf<Data>()
),
new Data(
"A1B3C2",
ListOf<Data>()
),
new Data(
"A1B3C3",
ListOf<Data>()
)
)
)
)
);Editor is loading...