Test_CollectionFromSystemStringBuilderAdapter() { Print( "Create" ); var c = new StringBuilder( "abcde" ) .AsHalfdecentCollection(); Print( ".Stream()" ); Assert( c.Stream() .SequenceEqual( Stream.Create( 'a', 'b', 'c', 'd', 'e' ) ) ); Print( ".GetAndReplaceWhere( Predicate< char > )" ); var to = new SCG.List< char >(); Stream.Create( 'B' ) .To( c.GetAndReplaceWhere( ch => ch == 'b' ) ) .EmptyTo( to.AsSink() ); Assert( c.Stream() .SequenceEqual( Stream.Create( 'a', 'B', 'c', 'd', 'e' ) ) ); to.Sort(); Assert( to.SequenceEqual( SystemEnumerable.Create( 'b' ) ) ); Print( ".GetAndRemoveWhere( Predicate< char > )" ); to.Clear(); c.GetAndRemoveWhere( ch => ch == 'B' ) .EmptyTo( to.AsSink() ); Assert( c.Stream() .SequenceEqual( Stream.Create( 'a', 'c', 'd', 'e' ) ) ); to.Sort(); Assert( to.SequenceEqual( SystemEnumerable.Create( 'B' ) ) ); Print( ".Get( IInteger )" ); Assert( c.Get( 0 ) == 'a' ); Assert( c.Get( 1 ) == 'c' ); Assert( c.Get( 2 ) == 'd' ); Assert( c.Get( 3 ) == 'e' ); Print( ".Replace( IInteger, char )" ); c.Replace( 1, 'C' ); Assert( c.Stream() .SequenceEqual( Stream.Create( 'a', 'C', 'd', 'e' ) ) ); Print( ".Remove( IInteger )" ); c.Remove( 1 ); Assert( c.Stream() .SequenceEqual( Stream.Create( 'a', 'd', 'e' ) ) ); Print( ".Contains( IInteger )" ); Assert( !c.Contains( -1 ) ); Assert( c.Contains( 0 ) ); Assert( c.Contains( 1 ) ); Assert( c.Contains( 2 ) ); Assert( !c.Contains( 3 ) ); Print( ".Stream( IInteger )" ); Assert( c.Stream( 1 ) .SequenceEqual( Stream.Create( 'd' ) ) ); Print( ".GetAndReplaceAll( IInteger )" ); to.Clear(); Stream.Create( 'D' ) .To( c.GetAndReplaceAll( 1 ) ) .EmptyTo( to.AsSink() ); Assert( c.Stream() .SequenceEqual( Stream.Create( 'a', 'D', 'e' ) ) ); Assert( to.SequenceEqual( SystemEnumerable.Create( 'd' ) ) ); Print( ".GetAndRemoveAll( IInteger )" ); to.Clear(); c.GetAndRemoveAll( 1 ) .EmptyTo( to.AsSink() ); Assert( c.Stream() .SequenceEqual( Stream.Create( 'a', 'e' ) ) ); Assert( to.SequenceEqual( SystemEnumerable.Create( 'D' ) ) ); Print( ".Add( IInteger, char )" ); c.Add( 1, 'b' ); c.Add( 2, 'c' ); c.Add( 3, 'd' ); c.Add( 5, 'f' ); Assert( c.Stream() .SequenceEqual( Stream.Create( 'a', 'b', 'c', 'd', 'e', 'f' ) ) ); Print( ".Count" ); Assert( c.Count == 6 ); Print( ".StreamPairs()" ); var ts = c.StreamPairs(); Assert( ts.Pull().BothEqual( 0L, 'a' ) ); Assert( ts.Pull().BothEqual( 1L, 'b' ) ); Assert( ts.Pull().BothEqual( 2L, 'c' ) ); Assert( ts.Pull().BothEqual( 3L, 'd' ) ); Assert( ts.Pull().BothEqual( 4L, 'e' ) ); Assert( ts.Pull().BothEqual( 5L, 'f' ) ); Assert( !ts.TryPull().A ); }
public override string ToString() { var sb = new StringBuilder(); sb.Add("<div id='{0}' class='{1}'>", Id, CssRibbon); sb.Add("<div class='header'>"); foreach(var t in RibbonTabs.Where(x => x.IsVisible)) { sb.Add(t.ToString()); } if (RibbonAppMenu != null) { sb.Add(RibbonAppMenu.ToString()); } sb.Add("</div>"); sb.Add("<div class='content'>"); foreach (var t in RibbonTabs.Where(x => x.IsVisible && x.Groups.Any(y => y.IsVisible))) { sb.Add("<div id='{0}' class='RibbonContent'>", t.Id + "_content"); foreach(var g in t.Groups.Where(x => x.IsVisible)) { sb.Add(g.ToString()); } sb.Add("</div>"); } sb.Add("</div>"); sb.Add("<div class='b'></div>"); sb.Add("</div>"); return sb.ToString(); }