Untitled
unknown
csharp
a year ago
2.9 kB
3
No Index
Never
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>() ) ) ) ) );