public void Select() { var b = RoseTree.Create(1, RoseTree.Singleton(2)); var c = from i in b select i + 1; var d = RoseTree.Create(2, RoseTree.Singleton(3)); Assert.AreEqual(d, c); }
public void SelectMany2() { // kind of useless? var b = RoseTree.Create(1, RoseTree.Singleton(2)); var c = b.SelectMany(RoseTree.Singleton, (x, y) => y); PrintTree(c, 0); var d = RoseTree.Create(1, RoseTree.Singleton(2), RoseTree.Create(1, RoseTree.Singleton(2))); Assert.AreEqual(d, c); }
public void SelectMany() { var b = RoseTree.Create(1, RoseTree.Singleton(2)); var c = b.SelectMany(i => { if (i <= 1) { return(RoseTree.Singleton(i)); } return(RoseTree.Create(i, RoseTree.Singleton(i + 1))); }); PrintTree(c, 0); var d = RoseTree.Create(1, RoseTree.Create(2, RoseTree.Singleton(3))); Assert.AreEqual(d, c); }
public void SelectManyLinq() { // kind of useless? var b = RoseTree.Create(1, RoseTree.Singleton(2)); var c = from i in b let r = i <= 1 ? RoseTree.Singleton(i) : RoseTree.Create(i, RoseTree.Singleton(i + 1)) from j in r select j; PrintTree(c, 0); var d = RoseTree.Create(1, RoseTree.Create(2, RoseTree.Create(3)), RoseTree.Create(1, RoseTree.Create(2, RoseTree.Create(3)))); Assert.AreEqual(d, c); }