public void ToImmutableTree_WithLiteral_ReturnsTreeWithRootAndChild() { IEquationBuilder builder = new EquationBuilder(); builder = builder.Literal("x"); var tree = (builder as EquationBuilder).ToImmutableTree(); var children = tree.GetChildren(tree.GetRoot()); Assert.AreEqual(1, children.Count()); }
private void SnippentsThatDontBreakTheBuild() { { var builder = new EquationBuilder(); builder .Value(1) .Add() .Value(2); } { var builder = new EquationBuilder(); builder .Literal("x") .Add() .Literal("y"); } { var builder = new MarkupEquationBuilder(); builder .Value(1) .Add() .Bold(b => b.Value(2)) .Add() .Value(3); } { var builder = new MarkupEquationBuilder(); builder .Value(1) .Add() .Bold(b => { b.Value(2) .Add() .Value(3); }) .Add() .Value(4); } { var builder = new MarkupEquationBuilder(); builder .Value(1) .Add() .Bold(b => b.Literal("x")) .Add() .Value(3); } { var builder = new EquationBuilder(); builder .Value(1) .Add() .Value(2) .Add() .Parentheses(b => { b.Value(2) .Add() .Value(2); }); } { var builder = new EquationBuilder(); builder .Value(1) .Divide() .Parentheses(b => { b.Value(2) .Add() .Value(3); }); } { var builder = new EquationBuilder(); builder .Value(1) .Divide(b => { b.Value(2) .Add() .Value(3); }); } { var builder = new EquationBuilder(); var adding = true; builder .Value(1) .If(adding, onTrue: b => b.Add(), onFalse: b => b.Divide()) .Value(2); } { var builder = new EquationBuilder(); var needExtraValues = true; builder .Value(1) .Add() .If(needExtraValues, onTrue: b => b.Value(3).Add().Value(4).Add()) .Value(2); } { var builder = new EquationBuilder(); builder .Map(Enumerable.Repeat(1, 10), (b, element) => b.Value(element).Add()) .Value(1); } { var builder = new EquationBuilder(); builder .Map(Enumerable.Range(100, 9), action: (b, element, index) => b.Value(element) .Divide() .Value(index) .Add()) .Value(110) .Divide() .Value(10); } { var builder = new EquationBuilder(); builder .Reduce(Enumerable.Range(0, 9), seed: 0, action: (previouse, element) => previouse + element, onEnd: (b, final) => b.Value(final)); } { var builder = new EquationBuilder(); builder .Reduce(Enumerable.Range(0, 9), seed: 0, action: (previouse, element, index) => previouse + element * index, onEnd: (b, final) => b.Value(final)); } }