public void TestSiblingsBeforeSelf() { var a = new VariableUse() { Name = "a" }; var plus = new OperatorUse() { Text = "+" }; var foo = new VariableUse() { Name = "foo" }; var times = new OperatorUse() { Text = "*" }; var b = new VariableUse() { Name = "b" }; var exp = new Expression(); exp.AddComponents(new Expression[] { a, plus, foo, times, b }); var fooSiblings = foo.GetSiblingsBeforeSelf().ToList(); Assert.AreEqual(2, fooSiblings.Count()); Assert.AreSame(a, fooSiblings[0]); Assert.AreSame(plus, fooSiblings[1]); var aSiblings = a.GetSiblingsBeforeSelf().ToList(); Assert.AreEqual(0, aSiblings.Count()); }