Jelajahi Sumber

Tests

svn path=/trunk/mcs/; revision=48934
Ben Maurer 20 tahun lalu
induk
melakukan
ebd17fe121
52 mengubah file dengan 18192 tambahan dan 0 penghapusan
  1. 238 0
      mcs/class/System.Web/Test/System.Web.UI.WebControls/FontUnitTest.cs
  2. 159 0
      mcs/class/System.Web/Test/System.Web.UI.WebControls/LabelTest.cs
  3. 222 0
      mcs/class/System.Web/Test/System.Web.UI.WebControls/LinkButtonTest.cs
  4. 70 0
      mcs/class/System.Web/Test/System.Web.UI.WebControls/PanelTest.cs
  5. 14346 0
      mcs/class/System.Web/Test/System.Web.UI.WebControls/RepeatInfoTest.auto.cs
  6. 313 0
      mcs/class/System.Web/Test/System.Web.UI.WebControls/RepeatInfoTest.gen.cs
  7. 133 0
      mcs/class/System.Web/Test/System.Web.UI.WebControls/TextBoxTest.cs
  8. 57 0
      mcs/class/System.Web/Test/System.Web.UI.WebControls/UnitConverterTest.cs
  9. 110 0
      mcs/class/System.Web/Test/System.Web.UI/ChangeLog
  10. 188 0
      mcs/class/System.Web/Test/System.Web.UI/CleanHtmlTextWriter.cs
  11. 357 0
      mcs/class/System.Web/Test/System.Web.UI/HtmlTextWriterTest.cs
  12. 66 0
      mcs/class/System.Web/Test/System.Web.UI/StateBagTest.cs
  13. 6 0
      mcs/class/System.Web/Test/standalone/adrotator/adrotator-size.aspx
  14. 19 0
      mcs/class/System.Web/Test/standalone/button/button-font-viewstate.aspx
  15. 25 0
      mcs/class/System.Web/Test/standalone/checkbox/checkbox-disabled-save-state.aspx
  16. 76 0
      mcs/class/System.Web/Test/standalone/checkbox/checkbox-label.aspx
  17. 23 0
      mcs/class/System.Web/Test/standalone/cookie/bake.aspx
  18. 218 0
      mcs/class/System.Web/Test/standalone/datagrid/datagrid-bound-column-readonlymode.aspx
  19. 40 0
      mcs/class/System.Web/Test/standalone/datagrid/datagrid-buttoncol-select.aspx
  20. 43 0
      mcs/class/System.Web/Test/standalone/datagrid/datagrid-buttoncol.aspx
  21. 39 0
      mcs/class/System.Web/Test/standalone/datagrid/datagrid-cells-controls-add.aspx
  22. 37 0
      mcs/class/System.Web/Test/standalone/datagrid/datagrid-editcmdcol.aspx
  23. 36 0
      mcs/class/System.Web/Test/standalone/datagrid/datagrid-hyperlink-col.aspx
  24. 98 0
      mcs/class/System.Web/Test/standalone/datagrid/datagrid-pager-numeric-pages-empty.aspx
  25. 44 0
      mcs/class/System.Web/Test/standalone/datagrid/datagrid-pager-style-visible.aspx
  26. 48 0
      mcs/class/System.Web/Test/standalone/datagrid/datagrid-pager-style.aspx
  27. 118 0
      mcs/class/System.Web/Test/standalone/datagrid/datagrid-paging.aspx
  28. 39 0
      mcs/class/System.Web/Test/standalone/datagrid/datagrid-simple-pager.aspx
  29. 73 0
      mcs/class/System.Web/Test/standalone/datagrid/datagrid-sorting.aspx
  30. 55 0
      mcs/class/System.Web/Test/standalone/datagrid/sysdata-datatable-style.aspx
  31. 121 0
      mcs/class/System.Web/Test/standalone/datagrid/sysdata-datatable-update.aspx
  32. 48 0
      mcs/class/System.Web/Test/standalone/datalist/datalist-invisible.aspx
  33. 74 0
      mcs/class/System.Web/Test/standalone/datalist/datalist-style-edit.aspx
  34. 53 0
      mcs/class/System.Web/Test/standalone/datalist/datalist-style.aspx
  35. 52 0
      mcs/class/System.Web/Test/standalone/dropdownlist/ddl-databind.aspx
  36. 20 0
      mcs/class/System.Web/Test/standalone/htmlbutton/button-serverclick.aspx
  37. 32 0
      mcs/class/System.Web/Test/standalone/htmlform/qs_postback.aspx
  38. 25 0
      mcs/class/System.Web/Test/standalone/htmlform/tail_postback.aspx
  39. 24 0
      mcs/class/System.Web/Test/standalone/htmlinputradio/radio-name-neq-id.aspx
  40. 1 0
      mcs/class/System.Web/Test/standalone/httpresponse/r.html
  41. 7 0
      mcs/class/System.Web/Test/standalone/httpresponse/response-redirect.aspx
  42. 8 0
      mcs/class/System.Web/Test/standalone/hyperlink/hyperlink-resolve.aspx
  43. 16 0
      mcs/class/System.Web/Test/standalone/imagebutton/imagebutton-postback.aspx
  44. 36 0
      mcs/class/System.Web/Test/standalone/listbox/listbox-autopostback.aspx
  45. 72 0
      mcs/class/System.Web/Test/standalone/listbox/listbox-databind-postback.aspx
  46. 37 0
      mcs/class/System.Web/Test/standalone/repeater/blankdatasource.aspx
  47. 56 0
      mcs/class/System.Web/Test/standalone/repeater/datatable.aspx
  48. 74 0
      mcs/class/System.Web/Test/standalone/repeater/onitemcreated.aspx
  49. 74 0
      mcs/class/System.Web/Test/standalone/repeater/postback.aspx
  50. 21 0
      mcs/class/System.Web/Test/standalone/security/xss-false-alarm.aspx
  51. 29 0
      mcs/class/System.Web/Test/standalone/validators/isvalid-not-enabled.aspx
  52. 16 0
      mcs/class/System.Web/Test/standalone/webcontrol/disabled-recursive.aspx

+ 238 - 0
mcs/class/System.Web/Test/System.Web.UI.WebControls/FontUnitTest.cs

@@ -0,0 +1,238 @@
+//
+// Tests for System.Web.UI.WebControls.FontUnit.cs 
+//
+// Author:
+//	Miguel de Icaza ([email protected])
+//
+
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using NUnit.Framework;
+using System;
+using System.Globalization;
+using System.Web;
+using System.Web.UI.WebControls;
+
+namespace MonoTests.System.Web.UI.WebControls
+{
+	[TestFixture]	
+	public class FontUnitTest {
+
+		[Test]
+		public void FontUnitConstructors ()
+		{
+			FontUnit f1 = new FontUnit (FontSize.Large);
+			
+			Assert.AreEqual (f1.Type, FontSize.Large, "A1");
+			Assert.AreEqual (f1.Unit, Unit.Empty, "A1.1");
+			
+			// Test the AsUnit values
+			f1 = new FontUnit (FontSize.AsUnit);
+			Assert.AreEqual (f1.Type, FontSize.AsUnit, "A2");
+			Assert.AreEqual (f1.Unit.Type, UnitType.Point, "A3");
+			Assert.AreEqual (f1.Unit.Value, 10, "A4");
+
+			f1 = new FontUnit (15);
+			Assert.AreEqual (f1.Type, FontSize.AsUnit, "A5");
+			Assert.AreEqual (f1.Unit.Type, UnitType.Point, "A6");
+			Assert.AreEqual (f1.Unit.Value, 15, "A7");
+
+			// Test the string constructor: null and empty
+			f1 = new FontUnit (null);
+			Assert.AreEqual (f1.Type, FontSize.NotSet, "A8");
+			Assert.AreEqual (f1.Unit.IsEmpty, true, "A9");
+
+			f1 = new FontUnit ("");
+			Assert.AreEqual (f1.Type, FontSize.NotSet, "A10");
+			Assert.AreEqual (f1.Unit.IsEmpty, true, "A11");
+
+#if NET_2_0
+			f1 = new FontUnit (2.5);
+			Assert.AreEqual (f1.Type, FontSize.AsUnit, "A12");
+			Assert.AreEqual (f1.Unit.Type, UnitType.Point, "A13");
+			Assert.AreEqual (f1.Unit.Value, 2.5, "A14");
+
+			f1 = new FontUnit (5.0, UnitType.Percentage);
+			Assert.AreEqual (f1.Type, FontSize.AsUnit, "A15");
+			Assert.AreEqual (f1.Unit.Type, UnitType.Percentage, "A17");
+			Assert.AreEqual (f1.Unit.Value, 5.0, "A18");
+#endif
+		}
+
+		[Test]
+		public void FontUnitConstructors_Pixel ()
+		{
+			FontUnit f1 = new FontUnit ("10px");
+			Assert.AreEqual (FontSize.AsUnit, f1.Type, "A12");
+			Assert.AreEqual (UnitType.Pixel, f1.Unit.Type, "A13");
+			Assert.AreEqual (10, f1.Unit.Value, "A14");
+			Assert.AreEqual ("10px", f1.ToString (), "A15");
+		}
+
+		[Test]
+		public void FontUnitConstructors_Point ()
+		{
+			FontUnit f1 = new FontUnit ("12pt");
+			Assert.AreEqual (FontSize.AsUnit, f1.Type, "Type");
+			Assert.AreEqual (UnitType.Point, f1.Unit.Type, "Unit.Type");
+			Assert.AreEqual (12, f1.Unit.Value, "Unit.Value");
+			Assert.AreEqual ("12pt", f1.ToString (), "ToString");
+		}
+
+		[Test]
+		[Category ("NotWorking")] // X* ToString
+		public void FontUnitConstructors_Enum ()
+		{
+			// All the enumeration values
+			FontUnit fu = new FontUnit ("Large");
+			Assert.AreEqual (FontSize.Large, fu.Type, "Large");
+			Assert.IsTrue (fu.Unit.IsEmpty, "Large.IsEmpty");
+			Assert.AreEqual ("Large", fu.ToString (), "Large.ToString");
+
+			fu = new FontUnit ("Larger");
+			Assert.AreEqual (FontSize.Larger, fu.Type, "Larger");
+			Assert.IsTrue (fu.Unit.IsEmpty, "Larger.IsEmpty");
+			Assert.AreEqual ("Larger", fu.ToString (), "Larger.ToString");
+
+			fu = new FontUnit ("Medium");
+			Assert.AreEqual (FontSize.Medium, fu.Type, "Medium");
+			Assert.IsTrue (fu.Unit.IsEmpty, "Medium.IsEmpty");
+			Assert.AreEqual ("Medium", fu.ToString (), "Medium.ToString");
+
+			fu = new FontUnit ("Small");
+			Assert.AreEqual (FontSize.Small, fu.Type, "Small");
+			Assert.IsTrue (fu.Unit.IsEmpty, "Small.IsEmpty");
+			Assert.AreEqual ("Small", fu.ToString (), "Small.ToString");
+
+			fu = new FontUnit ("Smaller");
+			Assert.AreEqual (FontSize.Smaller, fu.Type, "Smaller");
+			Assert.IsTrue (fu.Unit.IsEmpty, "Smaller.IsEmpty");
+			Assert.AreEqual ("Smaller", fu.ToString (), "Smaller.ToString");
+
+			fu = new FontUnit ("XLarge");
+			Assert.AreEqual (FontSize.XLarge, fu.Type, "XLarge");
+			Assert.IsTrue (fu.Unit.IsEmpty, "XLarge.IsEmpty");
+			Assert.AreEqual ("X-Large", fu.ToString (), "XLarge.ToString");
+
+			fu = new FontUnit ("XSmall");
+			Assert.AreEqual (FontSize.XSmall, fu.Type, "XSmall");
+			Assert.IsTrue (fu.Unit.IsEmpty, "XSmall.IsEmpty");
+			Assert.AreEqual ("X-Small", fu.ToString (), "XSmall.ToString");
+
+			fu = new FontUnit ("XXLarge");
+			Assert.AreEqual (FontSize.XXLarge, fu.Type, "XXLarge");
+			Assert.IsTrue (fu.Unit.IsEmpty, "XXLarge.IsEmpty");
+			Assert.AreEqual ("XX-Large", fu.ToString (), "XXLarge.ToString");
+
+			fu = new FontUnit ("XXSmall");
+			Assert.AreEqual (FontSize.XXSmall, fu.Type, "XXSmall");
+			Assert.IsTrue (fu.Unit.IsEmpty, "XXSmall.IsEmpty");
+			Assert.AreEqual ("XX-Small", fu.ToString (), "XXSmall.ToString");
+		}
+
+		[Test]
+		public void UnitEquality ()
+		{
+			FontUnit u1 = new FontUnit ("1px");
+			FontUnit u2 = new FontUnit ("2px");
+			FontUnit t1 = new FontUnit ("1px");
+			FontUnit c2 = new FontUnit ("2cm");
+
+			Assert.AreEqual (u1 == t1, true, "U1");
+			Assert.AreEqual (u1 != u2, true, "U2");
+			Assert.AreEqual (u1 == u2, false, "U3");
+			Assert.AreEqual (u1 != t1, false, "U4");
+
+			// Test that its comparing the units and value
+			Assert.AreEqual (u2 != c2, true, "U5");
+		}
+
+		[Test]
+		[ExpectedException (typeof (ArgumentOutOfRangeException))]
+		public void IncorrectConstructor ()
+		{
+			FontUnit a = new FontUnit ((FontSize) (-1));
+		}
+
+		[Test]
+		[ExpectedException (typeof (ArgumentOutOfRangeException))]
+		public void IncorrectConstructor2 ()
+		{
+			FontUnit a = new FontUnit ((FontSize) (FontSize.XXLarge + 1));
+		}
+
+		[Test]
+		[ExpectedException (typeof (FormatException))]
+		[Category ("NotWorking")] // wrong exception
+		public void FontUnitConstructors_Enum_AsUnit ()
+		{
+			new FontUnit ("AsUnit");
+		}
+
+		[Test]
+		[ExpectedException (typeof (FormatException))]
+		[Category ("NotWorking")] // wrong exception
+		public void FontUnitConstructors_Enum_NotSet ()
+		{
+			new FontUnit ("NotSet");
+		}
+
+#if NET_2_0
+		class MyFormatProvider : IFormatProvider
+		{
+			public object GetFormat (Type format_type)
+			{
+				return Activator.CreateInstance (format_type);
+			}
+		}
+
+		[Test]
+		public void FontUnit_IFormatProviderToString ()
+		{
+			MyFormatProvider mfp = new MyFormatProvider ();
+
+			FontUnit f1 = new FontUnit (FontSize.Large);
+			Assert.AreEqual ("Large", f1.ToString (mfp), "T1");
+
+			f1 = new FontUnit (FontSize.AsUnit);
+			Assert.AreEqual ("10pt", f1.ToString (mfp), "T2");
+
+			f1 = new FontUnit (15);
+			Assert.AreEqual ("15pt", f1.ToString (mfp), "T3");
+
+			f1 = new FontUnit (null);
+			Assert.AreEqual ("", f1.ToString (mfp), "T4");
+
+			f1 = new FontUnit ("");
+			Assert.AreEqual ("", f1.ToString (mfp), "T5");
+
+			f1 = new FontUnit (2.5);
+			Assert.AreEqual ("2.5pt", f1.ToString (mfp), "T6");
+
+			f1 = new FontUnit (5.0, UnitType.Percentage);
+			Assert.AreEqual ("5%", f1.ToString (mfp), "T7");
+		}
+#endif
+	}
+}

+ 159 - 0
mcs/class/System.Web/Test/System.Web.UI.WebControls/LabelTest.cs

@@ -0,0 +1,159 @@
+//
+// Tests for System.Web.UI.WebControls.Label.cs 
+//
+// Author:
+//	Miguel de Icaza ([email protected])
+//
+
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using NUnit.Framework;
+using System;
+using System.IO;
+using System.Globalization;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace MonoTests.System.Web.UI.WebControls
+{
+	[TestFixture]	
+	public class LabelTest {	
+		class Poker : Label {
+			
+			public new void AddParsedSubObject (object o)
+			{
+				base.AddParsedSubObject (o);
+			}
+
+			public void TrackState () 
+			{
+				TrackViewState ();
+			}
+			
+			public object SaveState ()
+			{
+				return SaveViewState ();
+			}
+			
+			public void LoadState (object o)
+			{
+				LoadViewState (o);
+			}
+			
+			public string Render ()
+			{
+				StringWriter sw = new StringWriter ();
+				sw.NewLine = "\n";
+				HtmlTextWriter writer = new HtmlTextWriter (sw);
+				base.Render (writer);
+				return writer.InnerWriter.ToString ();
+			}			
+		}
+		
+		[Test]
+		public void Label_ViewState ()
+		{
+			Poker p = new Poker ();
+			p.TrackState ();
+
+			Assert.AreEqual (p.Text, "", "A1");
+			p.Text = "Hello";
+			Assert.AreEqual (p.Text, "Hello", "A2");
+
+			object state = p.SaveState ();
+
+			Poker copy = new Poker ();
+			copy.TrackState ();
+			copy.LoadState (state);
+			Assert.AreEqual (copy.Text, "Hello", "A3");
+		}
+
+		[Test]
+		public void Label_Render ()
+		{
+			Poker l = new Poker ();
+			l.Text = "Hello";
+			Assert.AreEqual ("<span>Hello</span>", l.Render (), "R1");
+		}
+
+		Poker MakeNested ()
+		{
+			Poker p = new Poker ();
+			Label ll = new Label ();
+			ll.Text = ", World";
+			p.AddParsedSubObject (new LiteralControl ("Hello"));
+			p.AddParsedSubObject (ll);
+			return p;
+		}
+		
+		
+		[Test]
+		public void ChildControl ()
+		{
+			Poker l = MakeNested ();
+			Assert.AreEqual ("<span>Hello<span>, World</span></span>", l.Render ());
+			Assert.AreEqual ("", l.Text);
+			l.Text = "Hello";
+			Assert.AreEqual ("<span>Hello</span>", l.Render ());
+			Assert.AreEqual ("Hello", l.Text);
+			Assert.IsFalse (l.HasControls ());
+		}
+
+		[Test]
+		public void ChildControlViewstate ()
+		{
+			Poker l = MakeNested ();
+			l.TrackState ();
+			l.Text = "Hello";
+
+			object o = l.SaveState ();
+			l = MakeNested ();
+			l.TrackState ();
+			l.LoadState (o);
+			
+			Assert.AreEqual ("<span>Hello</span>", l.Render ());
+			Assert.AreEqual ("Hello", l.Text);
+			Assert.IsFalse (l.HasControls ());
+		}
+
+		[Test]
+		public void AssocControlId ()
+		{
+			Page p = new Page ();
+			Poker l = new Poker ();
+			TextBox t = new TextBox ();
+			t.ID = "mytxtbox";
+
+			p.Controls.Add (l);
+			p.Controls.Add (t);
+			
+			l.Text = "Hello";
+			l.AssociatedControlID = "mytxtbox";
+			Assert.AreEqual (@"<label for=""mytxtbox"">Hello</label>", l.Render ());			
+		}		
+	}
+}
+
+		

+ 222 - 0
mcs/class/System.Web/Test/System.Web.UI.WebControls/LinkButtonTest.cs

@@ -0,0 +1,222 @@
+//
+// Tests for System.Web.UI.WebControls.LinkButton 
+//
+// Author:
+//	Miguel de Icaza ([email protected]) [copied alot of this from his Label test]
+//      Ben Maurer <[email protected]>
+//
+
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using NUnit.Framework;
+using System;
+using System.IO;
+using System.Globalization;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace MonoTests.System.Web.UI.WebControls
+{
+	[TestFixture]	
+	public class LinkButtonText {	
+		class Poker : LinkButton {
+			
+			public new void AddParsedSubObject (object o)
+			{
+				base.AddParsedSubObject (o);
+			}
+
+			public void TrackState () 
+			{
+				TrackViewState ();
+			}
+			
+			public object SaveState ()
+			{
+				return SaveViewState ();
+			}
+			
+			public void LoadState (object o)
+			{
+				LoadViewState (o);
+			}
+			
+			public string Render ()
+			{
+				StringWriter sw = new StringWriter ();
+				sw.NewLine = "\n";
+				HtmlTextWriter writer = new HtmlTextWriter (sw);
+				base.Render (writer);
+				return writer.InnerWriter.ToString ();
+			}			
+		}
+		
+		[Test]
+		public void ViewState ()
+		{
+			Poker p = new Poker ();
+			p.TrackState ();
+
+			Assert.AreEqual (p.Text, "", "A1");
+			p.Text = "Hello";
+			Assert.AreEqual (p.Text, "Hello", "A2");
+
+			object state = p.SaveState ();
+
+			Poker copy = new Poker ();
+			copy.TrackState ();
+			copy.LoadState (state);
+			Assert.AreEqual (copy.Text, "Hello", "A3");
+		}
+
+		[Test]
+		public void Render ()
+		{
+			Poker l = new Poker ();
+			l.Text = "Hello";
+			Assert.AreEqual ("<a>Hello</a>", l.Render (), "R1");
+		}
+
+		Poker MakeNested ()
+		{
+			Poker p = new Poker ();
+			LinkButton ll = new LinkButton ();
+			ll.Text = ", World";
+			p.AddParsedSubObject (new LiteralControl ("Hello"));
+			p.AddParsedSubObject (ll);
+			return p;
+		}
+		
+		
+		[Test]
+		public void ChildControl ()
+		{
+			Poker l = MakeNested ();
+			Assert.AreEqual ("<a>Hello<a>, World</a></a>", l.Render ());
+			Assert.AreEqual ("", l.Text);
+			l.Text = "Hello";
+			Assert.AreEqual ("<a>Hello</a>", l.Render ());
+			Assert.AreEqual ("Hello", l.Text);
+			Assert.IsFalse (l.HasControls ());
+		}
+
+		[Test]
+		public void ChildControlViewstate ()
+		{
+			Poker l = MakeNested ();
+			l.TrackState ();
+			l.Text = "Hello";
+
+			object o = l.SaveState ();
+			l = MakeNested ();
+			l.TrackState ();
+			l.LoadState (o);
+			
+			Assert.AreEqual ("<a>Hello</a>", l.Render ());
+			Assert.AreEqual ("Hello", l.Text);
+			Assert.IsFalse (l.HasControls ());
+		}
+
+		class BubbleNet : Control {
+			public EventHandler Bubble;
+			protected override bool OnBubbleEvent (object s, EventArgs e)
+			{
+				if (Bubble != null)
+					Bubble (s, e);
+				return false;
+			}	
+		}
+
+		//
+		// I (heart) anonymous methods
+		//
+		[Test]
+		public void TestEvents ()
+		{
+			BubbleNet p = new BubbleNet ();
+			LinkButton l = new LinkButton ();
+			l.CommandName = "N";
+			l.CommandArgument = "A";
+			l.CausesValidation = false; // avoid an NRE on msft
+			p.Controls.Add (l);
+			
+			bool got_command = false;
+			bool got_click = false;
+			bool got_bubble = false;
+
+			l.Click += delegate {
+				Assert.IsFalse (got_click, "#1");
+				Assert.IsFalse (got_command, "#2");
+				Assert.IsFalse (got_bubble, "#3");
+				got_click = true;
+			};
+			
+			l.Command += delegate (object sender, CommandEventArgs e) {
+				Assert.IsTrue (got_click, "#4");
+				Assert.IsFalse (got_command, "#5");
+				Assert.IsFalse (got_bubble, "#6");
+				Assert.AreEqual ("N", e.CommandName, "#7");
+				Assert.AreEqual ("A", e.CommandArgument, "#8");
+				got_command = true;
+			};
+			p.Bubble += delegate (object sender, EventArgs e) {
+				Assert.IsTrue (got_click, "#9");
+				Assert.IsTrue (got_command, "#10");
+				Assert.IsFalse (got_bubble, "#11");
+				Assert.AreEqual ("N", ((CommandEventArgs) e).CommandName, "#12");
+				Assert.AreEqual ("A", ((CommandEventArgs) e).CommandArgument, "#13");
+				got_bubble = true;
+			};
+			
+			((IPostBackEventHandler) l).RaisePostBackEvent ("");
+			Assert.IsTrue (got_click, "#14");
+			Assert.IsTrue (got_command, "#15");
+			Assert.IsTrue (got_bubble, "#16");
+		}
+
+#if NET_2_0
+		[Test]
+		public void TestValidationGroup ()
+		{
+			Poker p = new Poker ();
+			p.TrackState ();
+
+			Assert.AreEqual (p.ValidationGroup, "", "V1");
+			p.ValidationGroup = "VG1";
+			Assert.AreEqual (p.ValidationGroup, "VG1", "V2");
+
+			object state = p.SaveState ();
+
+			Poker copy = new Poker ();
+			copy.TrackState ();
+			copy.LoadState (state);
+			Assert.AreEqual (copy.ValidationGroup, "VG1", "A3");
+		}
+#endif
+		
+	}
+}
+
+		

+ 70 - 0
mcs/class/System.Web/Test/System.Web.UI.WebControls/PanelTest.cs

@@ -0,0 +1,70 @@
+//
+// Tests for System.Web.UI.WebControls.Panel.cs 
+//
+// Author:
+//     Ben Maurer <[email protected]>
+//
+
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using NUnit.Framework;
+using System;
+using System.IO;
+using System.Globalization;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace MonoTests.System.Web.UI.WebControls {
+	[TestFixture]	
+	public class PanelTest {
+		class Poker : Panel {
+			public string Render ()
+			{
+				StringWriter sw = new StringWriter ();
+				sw.NewLine = "\n";
+				HtmlTextWriter writer = new HtmlTextWriter (sw);
+				base.Render (writer);
+				return writer.InnerWriter.ToString ();
+			}	
+		}
+		
+		[Test]
+		public void NoWrap ()
+		{
+			Poker p = new Poker ();
+			p.Wrap = false;
+			p.Controls.Add (new LiteralControl ("TEXT"));
+#if NET_2_0
+			const string html ="<div style=\"white-space:nowrap;\">\n\tTEXT\n</div>";
+#elif NET_1_1
+			const string html ="<div nowrap=\"nowrap\">\n\tTEXT\n</div>";
+#endif
+			
+			Assert.AreEqual (html, p.Render ());
+		}		
+	}
+}
+
+		

+ 14346 - 0
mcs/class/System.Web/Test/System.Web.UI.WebControls/RepeatInfoTest.auto.cs

@@ -0,0 +1,14346 @@
+#if !NET_2_0
+// THIS IS AUTOGENERATED DO NOT EDIT
+//
+// Authors:
+//    Ben Maurer ([email protected])
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+using System.ComponentModel;
+using System.Drawing;
+using System.IO;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+using NUnit.Framework;
+namespace MonoTests.System.Web.UI.WebControls {
+[TestFixture]
+public class RepeatInfo_Autogen {
+	public class RepeatInfoUser : IRepeatInfoUser {
+
+		private bool footer;
+		private bool header;
+		private bool separators;
+		private int count;
+		private int counter;
+
+
+		public RepeatInfoUser (bool header, bool footer, bool separators, int count)
+		{
+			this.footer = footer;
+			this.header = header;
+			this.separators = separators;
+			this.count = count;
+		}
+
+		static HtmlTextWriter GetWriter ()
+		{
+			StringWriter sw = new StringWriter ();
+			sw.NewLine = "\n";
+			return new HtmlTextWriter (sw);
+		}
+
+		public static string DoTest (int cols, int cnt, RepeatDirection d, RepeatLayout l, bool OuterTableImplied, bool hdr, bool ftr, bool sep)
+		{
+			HtmlTextWriter htw = GetWriter ();
+			RepeatInfo ri = new RepeatInfo ();
+			ri.RepeatColumns = cols;
+			ri.RepeatDirection = d;
+			ri.RepeatLayout = l;
+			ri.OuterTableImplied = OuterTableImplied;
+			Style s = new Style ();
+			if (cols != 3)
+				s.CssClass = "mainstyle";
+
+			ri.RenderRepeater (htw, new RepeatInfoUser (hdr, ftr, sep, cnt), s, new DataList ());
+			return htw.InnerWriter.ToString ();
+		}
+
+
+		public bool HasFooter {
+			get { return footer; }
+		}
+
+		public bool HasHeader {
+			get { return header; }
+		}
+		
+		public bool HasSeparators {
+			get { return separators; }
+		}
+
+		public int RepeatedItemCount {
+			get { return count; }
+		}
+
+		public Style GetItemStyle (ListItemType itemType, int repeatIndex)
+		{
+			Style s = new Style ();
+			s.CssClass = String.Format ("{0}{1}", itemType, repeatIndex);
+			return s;
+		}
+
+		public void RenderItem (ListItemType itemType, int repeatIndex, RepeatInfo repeatInfo, HtmlTextWriter writer)
+		{
+			writer.Write ("({0},{1},{2})", counter++, itemType, repeatIndex);
+		}
+	}
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""0"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td colspan=""0"" class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#0");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(2,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#1");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td>
+	</tr><tr>
+		<td colspan=""4"" class=""Footer-1"">(4,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#2");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""10"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td>
+	</tr><tr>
+		<td colspan=""10"" class=""Footer-1"">(10,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#3");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#4");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(9,Item,4)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(10,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#5");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td>
+	</tr><tr>
+		<td colspan=""4"" class=""Footer-1"">(8,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#6");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(13,Item,6)</td>
+	</tr><tr>
+		<td colspan=""4"" class=""Footer-1"">(14,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#7");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(13,Item,6)</td><td class=""Separator6"">(14,Separator,6)</td><td class=""Item7"">(15,Item,7)</td><td class=""Separator7"">(16,Separator,7)</td><td class=""Item8"">(17,Item,8)</td>
+	</tr><tr>
+		<td colspan=""6"" class=""Footer-1"">(18,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#8");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(13,Item,6)</td>
+	</tr><tr>
+		<td colspan=""6"" class=""Footer-1"">(14,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#9");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Footer,-1)";
+		Assert.AreEqual (exp, v, "#10");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Footer,-1)";
+		Assert.AreEqual (exp, v, "#11");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Item,0)<br>(2,Separator,0)(3,Item,1)(4,Footer,-1)";
+		Assert.AreEqual (exp, v, "#12");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Item,0)<br>(2,Separator,0)(3,Item,1)<br>(4,Separator,1)(5,Item,2)<br>(6,Separator,2)(7,Item,3)<br>(8,Separator,3)(9,Item,4)(10,Footer,-1)";
+		Assert.AreEqual (exp, v, "#13");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Footer,-1)";
+		Assert.AreEqual (exp, v, "#14");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Item,0)<br>(2,Separator,0)(3,Item,1)<br>(4,Separator,1)(5,Item,2)<br>(6,Separator,2)(7,Item,3)<br>(8,Separator,3)(9,Item,4)(10,Footer,-1)";
+		Assert.AreEqual (exp, v, "#15");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,2)(4,Separator,2)(5,Item,1)(6,Separator,1)(7,Item,3)(8,Footer,-1)";
+		Assert.AreEqual (exp, v, "#16");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,4)(4,Separator,4)(5,Item,1)(6,Separator,1)(7,Item,5)(8,Separator,5)(9,Item,2)(10,Separator,2)(11,Item,6)(12,Item,3)(13,Separator,3)(14,Footer,-1)";
+		Assert.AreEqual (exp, v, "#17");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,6)(6,Separator,6)(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,7)(12,Separator,7)(13,Item,2)(14,Separator,2)(15,Item,5)(16,Separator,5)(17,Item,8)(18,Footer,-1)";
+		Assert.AreEqual (exp, v, "#18");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,5)(6,Separator,5)(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,6)(12,Item,2)(13,Separator,2)(14,Footer,-1)";
+		Assert.AreEqual (exp, v, "#19");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#20");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#21");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#22");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)(9,Item,4)(10,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#23");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#24");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Separator,0)<br>(3,Item,1)(4,Separator,1)<br>(5,Item,2)(6,Separator,2)<br>(7,Item,3)(8,Separator,3)<br>(9,Item,4)<br>(10,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#25");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)<br>(5,Item,2)(6,Separator,2)(7,Item,3)<br>(8,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#26");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)<br>(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)<br>(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br>(13,Item,6)<br>(14,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#27");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)<br>(7,Item,3)(8,Separator,3)(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br>(13,Item,6)(14,Separator,6)(15,Item,7)(16,Separator,7)(17,Item,8)<br>(18,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#28");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)<br>(7,Item,3)(8,Separator,3)(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br>(13,Item,6)<br>(14,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#29");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Footer,-1)";
+		Assert.AreEqual (exp, v, "#30");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Footer,-1)";
+		Assert.AreEqual (exp, v, "#31");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Item,0)<br>(2,Separator,0)(3,Item,1)(4,Footer,-1)";
+		Assert.AreEqual (exp, v, "#32");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Item,0)<br>(2,Separator,0)(3,Item,1)<br>(4,Separator,1)(5,Item,2)<br>(6,Separator,2)(7,Item,3)<br>(8,Separator,3)(9,Item,4)(10,Footer,-1)";
+		Assert.AreEqual (exp, v, "#33");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Footer,-1)";
+		Assert.AreEqual (exp, v, "#34");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Item,0)<br>(2,Separator,0)(3,Item,1)<br>(4,Separator,1)(5,Item,2)<br>(6,Separator,2)(7,Item,3)<br>(8,Separator,3)(9,Item,4)(10,Footer,-1)";
+		Assert.AreEqual (exp, v, "#35");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,2)(4,Separator,2)(5,Item,1)(6,Separator,1)(7,Item,3)(8,Footer,-1)";
+		Assert.AreEqual (exp, v, "#36");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,4)(4,Separator,4)(5,Item,1)(6,Separator,1)(7,Item,5)(8,Separator,5)(9,Item,2)(10,Separator,2)(11,Item,6)(12,Item,3)(13,Separator,3)(14,Footer,-1)";
+		Assert.AreEqual (exp, v, "#37");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,6)(6,Separator,6)(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,7)(12,Separator,7)(13,Item,2)(14,Separator,2)(15,Item,5)(16,Separator,5)(17,Item,8)(18,Footer,-1)";
+		Assert.AreEqual (exp, v, "#38");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_flow_otrtblimp_hdr_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,5)(6,Separator,5)(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,6)(12,Item,2)(13,Separator,2)(14,Footer,-1)";
+		Assert.AreEqual (exp, v, "#39");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""0"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td colspan=""0"" class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#40");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(2,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#41");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td>
+	</tr><tr>
+		<td colspan=""4"" class=""Footer-1"">(4,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#42");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""10"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td>
+	</tr><tr>
+		<td colspan=""10"" class=""Footer-1"">(10,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#43");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#44");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(9,Item,4)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(10,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#45");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td>
+	</tr><tr>
+		<td colspan=""4"" class=""Footer-1"">(8,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#46");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(13,Item,6)</td>
+	</tr><tr>
+		<td colspan=""4"" class=""Footer-1"">(14,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#47");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(13,Item,6)</td><td class=""Separator6"">(14,Separator,6)</td><td class=""Item7"">(15,Item,7)</td><td class=""Separator7"">(16,Separator,7)</td><td class=""Item8"">(17,Item,8)</td>
+	</tr><tr>
+		<td colspan=""6"" class=""Footer-1"">(18,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#48");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(13,Item,6)</td>
+	</tr><tr>
+		<td colspan=""6"" class=""Footer-1"">(14,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#49");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#50");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(2,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#51");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Separator0"">(2,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(4,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#52");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Separator0"">(2,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td>
+	</tr><tr>
+		<td class=""Separator1"">(4,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td>
+	</tr><tr>
+		<td class=""Separator2"">(6,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td>
+	</tr><tr>
+		<td class=""Separator3"">(8,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(9,Item,4)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(10,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#53");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#54");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Separator0"">(2,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td>
+	</tr><tr>
+		<td class=""Separator1"">(4,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td>
+	</tr><tr>
+		<td class=""Separator2"">(6,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td>
+	</tr><tr>
+		<td class=""Separator3"">(8,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(9,Item,4)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(10,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#55");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item2"">(3,Item,2)</td><td class=""Separator2"">(4,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item1"">(5,Item,1)</td><td class=""Separator1"">(6,Separator,1)</td><td class=""Item3"">(7,Item,3)</td>
+	</tr><tr>
+		<td colspan=""4"" class=""Footer-1"">(8,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#56");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item4"">(3,Item,4)</td><td class=""Separator4"">(4,Separator,4)</td>
+	</tr><tr>
+		<td class=""Item1"">(5,Item,1)</td><td class=""Separator1"">(6,Separator,1)</td><td class=""Item5"">(7,Item,5)</td><td class=""Separator5"">(8,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item2"">(9,Item,2)</td><td class=""Separator2"">(10,Separator,2)</td><td class=""Item6"">(11,Item,6)</td>
+	</tr><tr>
+		<td class=""Item3"">(12,Item,3)</td><td class=""Separator3"">(13,Separator,3)</td>
+	</tr><tr>
+		<td colspan=""4"" class=""Footer-1"">(14,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#57");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item3"">(3,Item,3)</td><td class=""Separator3"">(4,Separator,3)</td><td class=""Item6"">(5,Item,6)</td><td class=""Separator6"">(6,Separator,6)</td>
+	</tr><tr>
+		<td class=""Item1"">(7,Item,1)</td><td class=""Separator1"">(8,Separator,1)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item7"">(11,Item,7)</td><td class=""Separator7"">(12,Separator,7)</td>
+	</tr><tr>
+		<td class=""Item2"">(13,Item,2)</td><td class=""Separator2"">(14,Separator,2)</td><td class=""Item5"">(15,Item,5)</td><td class=""Separator5"">(16,Separator,5)</td><td class=""Item8"">(17,Item,8)</td>
+	</tr><tr>
+		<td colspan=""6"" class=""Footer-1"">(18,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#58");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_tbl_hdr_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item3"">(3,Item,3)</td><td class=""Separator3"">(4,Separator,3)</td><td class=""Item5"">(5,Item,5)</td><td class=""Separator5"">(6,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item1"">(7,Item,1)</td><td class=""Separator1"">(8,Separator,1)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item6"">(11,Item,6)</td>
+	</tr><tr>
+		<td class=""Item2"">(12,Item,2)</td><td class=""Separator2"">(13,Separator,2)</td>
+	</tr><tr>
+		<td colspan=""6"" class=""Footer-1"">(14,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#59");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#60");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#61");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#62");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)(9,Item,4)(10,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#63");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#64");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Separator,0)<br>(3,Item,1)(4,Separator,1)<br>(5,Item,2)(6,Separator,2)<br>(7,Item,3)(8,Separator,3)<br>(9,Item,4)<br>(10,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#65");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)<br>(5,Item,2)(6,Separator,2)(7,Item,3)<br>(8,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#66");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)<br>(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)<br>(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br>(13,Item,6)<br>(14,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#67");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)<br>(7,Item,3)(8,Separator,3)(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br>(13,Item,6)(14,Separator,6)(15,Item,7)(16,Separator,7)(17,Item,8)<br>(18,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#68");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)<br>(7,Item,3)(8,Separator,3)(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br>(13,Item,6)<br>(14,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#69");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#70");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#71");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Separator,0)<br>(3,Item,1)<br>(4,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#72");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Separator,0)<br>(3,Item,1)<br>(4,Separator,1)<br>(5,Item,2)<br>(6,Separator,2)<br>(7,Item,3)<br>(8,Separator,3)<br>(9,Item,4)<br>(10,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#73");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#74");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Separator,0)<br>(3,Item,1)<br>(4,Separator,1)<br>(5,Item,2)<br>(6,Separator,2)<br>(7,Item,3)<br>(8,Separator,3)<br>(9,Item,4)<br>(10,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#75");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,2)(4,Separator,2)<br>(5,Item,1)(6,Separator,1)(7,Item,3)<br>(8,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#76");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,4)(4,Separator,4)<br>(5,Item,1)(6,Separator,1)(7,Item,5)(8,Separator,5)<br>(9,Item,2)(10,Separator,2)(11,Item,6)<br>(12,Item,3)(13,Separator,3)<br>(14,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#77");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,6)(6,Separator,6)<br>(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,7)(12,Separator,7)<br>(13,Item,2)(14,Separator,2)(15,Item,5)(16,Separator,5)(17,Item,8)<br>(18,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#78");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_flow_hdr_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,5)(6,Separator,5)<br>(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,6)<br>(12,Item,2)(13,Separator,2)<br>(14,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#79");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""0"" class=""Footer-1"">(0,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#80");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#81");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td colspan=""4"" class=""Footer-1"">(3,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#82");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td>
+	</tr><tr>
+		<td colspan=""10"" class=""Footer-1"">(9,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#83");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Footer-1"">(0,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#84");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(8,Item,4)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(9,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#85");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td>
+	</tr><tr>
+		<td colspan=""4"" class=""Footer-1"">(7,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#86");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(12,Item,6)</td>
+	</tr><tr>
+		<td colspan=""4"" class=""Footer-1"">(13,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#87");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(12,Item,6)</td><td class=""Separator6"">(13,Separator,6)</td><td class=""Item7"">(14,Item,7)</td><td class=""Separator7"">(15,Separator,7)</td><td class=""Item8"">(16,Item,8)</td>
+	</tr><tr>
+		<td colspan=""6"" class=""Footer-1"">(17,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#88");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(12,Item,6)</td>
+	</tr><tr>
+		<td colspan=""6"" class=""Footer-1"">(13,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#89");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
+		string exp = @"(0,Footer,-1)";
+		Assert.AreEqual (exp, v, "#90");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
+		string exp = @"(0,Item,0)(1,Footer,-1)";
+		Assert.AreEqual (exp, v, "#91");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
+		string exp = @"(0,Item,0)<br>(1,Separator,0)(2,Item,1)(3,Footer,-1)";
+		Assert.AreEqual (exp, v, "#92");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
+		string exp = @"(0,Item,0)<br>(1,Separator,0)(2,Item,1)<br>(3,Separator,1)(4,Item,2)<br>(5,Separator,2)(6,Item,3)<br>(7,Separator,3)(8,Item,4)(9,Footer,-1)";
+		Assert.AreEqual (exp, v, "#93");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
+		string exp = @"(0,Footer,-1)";
+		Assert.AreEqual (exp, v, "#94");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
+		string exp = @"(0,Item,0)<br>(1,Separator,0)(2,Item,1)<br>(3,Separator,1)(4,Item,2)<br>(5,Separator,2)(6,Item,3)<br>(7,Separator,3)(8,Item,4)(9,Footer,-1)";
+		Assert.AreEqual (exp, v, "#95");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
+		string exp = @"(0,Item,0)(1,Separator,0)(2,Item,2)(3,Separator,2)(4,Item,1)(5,Separator,1)(6,Item,3)(7,Footer,-1)";
+		Assert.AreEqual (exp, v, "#96");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
+		string exp = @"(0,Item,0)(1,Separator,0)(2,Item,4)(3,Separator,4)(4,Item,1)(5,Separator,1)(6,Item,5)(7,Separator,5)(8,Item,2)(9,Separator,2)(10,Item,6)(11,Item,3)(12,Separator,3)(13,Footer,-1)";
+		Assert.AreEqual (exp, v, "#97");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
+		string exp = @"(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,6)(5,Separator,6)(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,7)(11,Separator,7)(12,Item,2)(13,Separator,2)(14,Item,5)(15,Separator,5)(16,Item,8)(17,Footer,-1)";
+		Assert.AreEqual (exp, v, "#98");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_tbl_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
+		string exp = @"(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,5)(5,Separator,5)(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,6)(11,Item,2)(12,Separator,2)(13,Footer,-1)";
+		Assert.AreEqual (exp, v, "#99");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#100");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#101");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#102");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)(8,Item,4)(9,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#103");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#104");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)<br>(2,Item,1)(3,Separator,1)<br>(4,Item,2)(5,Separator,2)<br>(6,Item,3)(7,Separator,3)<br>(8,Item,4)<br>(9,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#105");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)<br>(4,Item,2)(5,Separator,2)(6,Item,3)<br>(7,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#106");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)<br>(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)<br>(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br>(12,Item,6)<br>(13,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#107");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)<br>(6,Item,3)(7,Separator,3)(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br>(12,Item,6)(13,Separator,6)(14,Item,7)(15,Separator,7)(16,Item,8)<br>(17,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#108");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)<br>(6,Item,3)(7,Separator,3)(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br>(12,Item,6)<br>(13,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#109");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"(0,Footer,-1)";
+		Assert.AreEqual (exp, v, "#110");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"(0,Item,0)(1,Footer,-1)";
+		Assert.AreEqual (exp, v, "#111");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"(0,Item,0)<br>(1,Separator,0)(2,Item,1)(3,Footer,-1)";
+		Assert.AreEqual (exp, v, "#112");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"(0,Item,0)<br>(1,Separator,0)(2,Item,1)<br>(3,Separator,1)(4,Item,2)<br>(5,Separator,2)(6,Item,3)<br>(7,Separator,3)(8,Item,4)(9,Footer,-1)";
+		Assert.AreEqual (exp, v, "#113");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"(0,Footer,-1)";
+		Assert.AreEqual (exp, v, "#114");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"(0,Item,0)<br>(1,Separator,0)(2,Item,1)<br>(3,Separator,1)(4,Item,2)<br>(5,Separator,2)(6,Item,3)<br>(7,Separator,3)(8,Item,4)(9,Footer,-1)";
+		Assert.AreEqual (exp, v, "#115");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"(0,Item,0)(1,Separator,0)(2,Item,2)(3,Separator,2)(4,Item,1)(5,Separator,1)(6,Item,3)(7,Footer,-1)";
+		Assert.AreEqual (exp, v, "#116");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"(0,Item,0)(1,Separator,0)(2,Item,4)(3,Separator,4)(4,Item,1)(5,Separator,1)(6,Item,5)(7,Separator,5)(8,Item,2)(9,Separator,2)(10,Item,6)(11,Item,3)(12,Separator,3)(13,Footer,-1)";
+		Assert.AreEqual (exp, v, "#117");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,6)(5,Separator,6)(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,7)(11,Separator,7)(12,Item,2)(13,Separator,2)(14,Item,5)(15,Separator,5)(16,Item,8)(17,Footer,-1)";
+		Assert.AreEqual (exp, v, "#118");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_flow_otrtblimp_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
+		string exp = @"(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,5)(5,Separator,5)(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,6)(11,Item,2)(12,Separator,2)(13,Footer,-1)";
+		Assert.AreEqual (exp, v, "#119");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_tbl_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""0"" class=""Footer-1"">(0,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#120");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_tbl_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#121");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_tbl_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td colspan=""4"" class=""Footer-1"">(3,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#122");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_tbl_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td>
+	</tr><tr>
+		<td colspan=""10"" class=""Footer-1"">(9,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#123");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_tbl_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Footer-1"">(0,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#124");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_tbl_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(8,Item,4)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(9,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#125");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_tbl_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td>
+	</tr><tr>
+		<td colspan=""4"" class=""Footer-1"">(7,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#126");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_tbl_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(12,Item,6)</td>
+	</tr><tr>
+		<td colspan=""4"" class=""Footer-1"">(13,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#127");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_tbl_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(12,Item,6)</td><td class=""Separator6"">(13,Separator,6)</td><td class=""Item7"">(14,Item,7)</td><td class=""Separator7"">(15,Separator,7)</td><td class=""Item8"">(16,Item,8)</td>
+	</tr><tr>
+		<td colspan=""6"" class=""Footer-1"">(17,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#128");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_tbl_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(12,Item,6)</td>
+	</tr><tr>
+		<td colspan=""6"" class=""Footer-1"">(13,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#129");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_tbl_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Footer-1"">(0,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#130");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_tbl_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#131");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_tbl_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Separator0"">(1,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(3,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#132");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_tbl_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Separator0"">(1,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Separator1"">(3,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td>
+	</tr><tr>
+		<td class=""Separator2"">(5,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td>
+	</tr><tr>
+		<td class=""Separator3"">(7,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(8,Item,4)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(9,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#133");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_tbl_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Footer-1"">(0,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#134");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_tbl_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Separator0"">(1,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Separator1"">(3,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td>
+	</tr><tr>
+		<td class=""Separator2"">(5,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td>
+	</tr><tr>
+		<td class=""Separator3"">(7,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(8,Item,4)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(9,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#135");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_tbl_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item2"">(2,Item,2)</td><td class=""Separator2"">(3,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item1"">(4,Item,1)</td><td class=""Separator1"">(5,Separator,1)</td><td class=""Item3"">(6,Item,3)</td>
+	</tr><tr>
+		<td colspan=""4"" class=""Footer-1"">(7,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#136");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_tbl_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item4"">(2,Item,4)</td><td class=""Separator4"">(3,Separator,4)</td>
+	</tr><tr>
+		<td class=""Item1"">(4,Item,1)</td><td class=""Separator1"">(5,Separator,1)</td><td class=""Item5"">(6,Item,5)</td><td class=""Separator5"">(7,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item2"">(8,Item,2)</td><td class=""Separator2"">(9,Separator,2)</td><td class=""Item6"">(10,Item,6)</td>
+	</tr><tr>
+		<td class=""Item3"">(11,Item,3)</td><td class=""Separator3"">(12,Separator,3)</td>
+	</tr><tr>
+		<td colspan=""4"" class=""Footer-1"">(13,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#137");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_tbl_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item3"">(2,Item,3)</td><td class=""Separator3"">(3,Separator,3)</td><td class=""Item6"">(4,Item,6)</td><td class=""Separator6"">(5,Separator,6)</td>
+	</tr><tr>
+		<td class=""Item1"">(6,Item,1)</td><td class=""Separator1"">(7,Separator,1)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item7"">(10,Item,7)</td><td class=""Separator7"">(11,Separator,7)</td>
+	</tr><tr>
+		<td class=""Item2"">(12,Item,2)</td><td class=""Separator2"">(13,Separator,2)</td><td class=""Item5"">(14,Item,5)</td><td class=""Separator5"">(15,Separator,5)</td><td class=""Item8"">(16,Item,8)</td>
+	</tr><tr>
+		<td colspan=""6"" class=""Footer-1"">(17,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#138");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_tbl_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item3"">(2,Item,3)</td><td class=""Separator3"">(3,Separator,3)</td><td class=""Item5"">(4,Item,5)</td><td class=""Separator5"">(5,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item1"">(6,Item,1)</td><td class=""Separator1"">(7,Separator,1)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item6"">(10,Item,6)</td>
+	</tr><tr>
+		<td class=""Item2"">(11,Item,2)</td><td class=""Separator2"">(12,Separator,2)</td>
+	</tr><tr>
+		<td colspan=""6"" class=""Footer-1"">(13,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#139");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_flow_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#140");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_flow_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#141");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_flow_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#142");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_flow_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)(8,Item,4)(9,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#143");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_flow_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#144");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_flow_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)<br>(2,Item,1)(3,Separator,1)<br>(4,Item,2)(5,Separator,2)<br>(6,Item,3)(7,Separator,3)<br>(8,Item,4)<br>(9,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#145");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_flow_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)<br>(4,Item,2)(5,Separator,2)(6,Item,3)<br>(7,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#146");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_flow_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)<br>(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)<br>(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br>(12,Item,6)<br>(13,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#147");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_flow_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)<br>(6,Item,3)(7,Separator,3)(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br>(12,Item,6)(13,Separator,6)(14,Item,7)(15,Separator,7)(16,Item,8)<br>(17,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#148");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_flow_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)<br>(6,Item,3)(7,Separator,3)(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br>(12,Item,6)<br>(13,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#149");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_flow_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#150");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_flow_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#151");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_flow_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Separator,0)<br>(2,Item,1)<br>(3,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#152");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_flow_ftr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Separator,0)<br>(2,Item,1)<br>(3,Separator,1)<br>(4,Item,2)<br>(5,Separator,2)<br>(6,Item,3)<br>(7,Separator,3)<br>(8,Item,4)<br>(9,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#153");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_flow_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#154");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_flow_ftr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Separator,0)<br>(2,Item,1)<br>(3,Separator,1)<br>(4,Item,2)<br>(5,Separator,2)<br>(6,Item,3)<br>(7,Separator,3)<br>(8,Item,4)<br>(9,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#155");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_flow_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,2)(3,Separator,2)<br>(4,Item,1)(5,Separator,1)(6,Item,3)<br>(7,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#156");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_flow_ftr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,4)(3,Separator,4)<br>(4,Item,1)(5,Separator,1)(6,Item,5)(7,Separator,5)<br>(8,Item,2)(9,Separator,2)(10,Item,6)<br>(11,Item,3)(12,Separator,3)<br>(13,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#157");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_flow_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,6)(5,Separator,6)<br>(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,7)(11,Separator,7)<br>(12,Item,2)(13,Separator,2)(14,Item,5)(15,Separator,5)(16,Item,8)<br>(17,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#158");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_flow_ftr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
+		string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,5)(5,Separator,5)<br>(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,6)<br>(11,Item,2)(12,Separator,2)<br>(13,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#159");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""0"" class=""Header-1"">(0,Header,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#160");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#161");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#162");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""10"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#163");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#164");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(9,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#165");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#166");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(13,Item,6)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#167");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(13,Item,6)</td><td class=""Separator6"">(14,Separator,6)</td><td class=""Item7"">(15,Item,7)</td><td class=""Separator7"">(16,Separator,7)</td><td class=""Item8"">(17,Item,8)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#168");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(13,Item,6)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#169");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
+		string exp = @"(0,Header,-1)";
+		Assert.AreEqual (exp, v, "#170");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
+		string exp = @"(0,Header,-1)(1,Item,0)";
+		Assert.AreEqual (exp, v, "#171");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
+		string exp = @"(0,Header,-1)(1,Item,0)<br>(2,Separator,0)(3,Item,1)";
+		Assert.AreEqual (exp, v, "#172");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
+		string exp = @"(0,Header,-1)(1,Item,0)<br>(2,Separator,0)(3,Item,1)<br>(4,Separator,1)(5,Item,2)<br>(6,Separator,2)(7,Item,3)<br>(8,Separator,3)(9,Item,4)";
+		Assert.AreEqual (exp, v, "#173");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
+		string exp = @"(0,Header,-1)";
+		Assert.AreEqual (exp, v, "#174");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
+		string exp = @"(0,Header,-1)(1,Item,0)<br>(2,Separator,0)(3,Item,1)<br>(4,Separator,1)(5,Item,2)<br>(6,Separator,2)(7,Item,3)<br>(8,Separator,3)(9,Item,4)";
+		Assert.AreEqual (exp, v, "#175");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,2)(4,Separator,2)(5,Item,1)(6,Separator,1)(7,Item,3)";
+		Assert.AreEqual (exp, v, "#176");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,4)(4,Separator,4)(5,Item,1)(6,Separator,1)(7,Item,5)(8,Separator,5)(9,Item,2)(10,Separator,2)(11,Item,6)(12,Item,3)(13,Separator,3)";
+		Assert.AreEqual (exp, v, "#177");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,6)(6,Separator,6)(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,7)(12,Separator,7)(13,Item,2)(14,Separator,2)(15,Item,5)(16,Separator,5)(17,Item,8)";
+		Assert.AreEqual (exp, v, "#178");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_tbl_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,5)(6,Separator,5)(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,6)(12,Item,2)(13,Separator,2)";
+		Assert.AreEqual (exp, v, "#179");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)</span>";
+		Assert.AreEqual (exp, v, "#180");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)</span>";
+		Assert.AreEqual (exp, v, "#181");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)</span>";
+		Assert.AreEqual (exp, v, "#182");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)(9,Item,4)</span>";
+		Assert.AreEqual (exp, v, "#183");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)</span>";
+		Assert.AreEqual (exp, v, "#184");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Separator,0)<br>(3,Item,1)(4,Separator,1)<br>(5,Item,2)(6,Separator,2)<br>(7,Item,3)(8,Separator,3)<br>(9,Item,4)<br></span>";
+		Assert.AreEqual (exp, v, "#185");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)<br>(5,Item,2)(6,Separator,2)(7,Item,3)<br></span>";
+		Assert.AreEqual (exp, v, "#186");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)<br>(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)<br>(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br>(13,Item,6)<br></span>";
+		Assert.AreEqual (exp, v, "#187");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)<br>(7,Item,3)(8,Separator,3)(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br>(13,Item,6)(14,Separator,6)(15,Item,7)(16,Separator,7)(17,Item,8)<br></span>";
+		Assert.AreEqual (exp, v, "#188");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)<br>(7,Item,3)(8,Separator,3)(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br>(13,Item,6)<br></span>";
+		Assert.AreEqual (exp, v, "#189");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"(0,Header,-1)";
+		Assert.AreEqual (exp, v, "#190");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"(0,Header,-1)(1,Item,0)";
+		Assert.AreEqual (exp, v, "#191");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"(0,Header,-1)(1,Item,0)<br>(2,Separator,0)(3,Item,1)";
+		Assert.AreEqual (exp, v, "#192");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"(0,Header,-1)(1,Item,0)<br>(2,Separator,0)(3,Item,1)<br>(4,Separator,1)(5,Item,2)<br>(6,Separator,2)(7,Item,3)<br>(8,Separator,3)(9,Item,4)";
+		Assert.AreEqual (exp, v, "#193");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"(0,Header,-1)";
+		Assert.AreEqual (exp, v, "#194");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"(0,Header,-1)(1,Item,0)<br>(2,Separator,0)(3,Item,1)<br>(4,Separator,1)(5,Item,2)<br>(6,Separator,2)(7,Item,3)<br>(8,Separator,3)(9,Item,4)";
+		Assert.AreEqual (exp, v, "#195");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,2)(4,Separator,2)(5,Item,1)(6,Separator,1)(7,Item,3)";
+		Assert.AreEqual (exp, v, "#196");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,4)(4,Separator,4)(5,Item,1)(6,Separator,1)(7,Item,5)(8,Separator,5)(9,Item,2)(10,Separator,2)(11,Item,6)(12,Item,3)(13,Separator,3)";
+		Assert.AreEqual (exp, v, "#197");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,6)(6,Separator,6)(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,7)(12,Separator,7)(13,Item,2)(14,Separator,2)(15,Item,5)(16,Separator,5)(17,Item,8)";
+		Assert.AreEqual (exp, v, "#198");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_flow_otrtblimp_hdr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,5)(6,Separator,5)(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,6)(12,Item,2)(13,Separator,2)";
+		Assert.AreEqual (exp, v, "#199");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_tbl_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""0"" class=""Header-1"">(0,Header,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#200");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_tbl_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#201");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_tbl_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#202");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_tbl_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""10"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#203");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_tbl_hdr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#204");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_tbl_hdr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(9,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#205");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_tbl_hdr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#206");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_tbl_hdr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(13,Item,6)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#207");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_tbl_hdr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(13,Item,6)</td><td class=""Separator6"">(14,Separator,6)</td><td class=""Item7"">(15,Item,7)</td><td class=""Separator7"">(16,Separator,7)</td><td class=""Item8"">(17,Item,8)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#208");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_tbl_hdr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(13,Item,6)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#209");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_tbl_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#210");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_tbl_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#211");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_tbl_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Separator0"">(2,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#212");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_tbl_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Separator0"">(2,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td>
+	</tr><tr>
+		<td class=""Separator1"">(4,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td>
+	</tr><tr>
+		<td class=""Separator2"">(6,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td>
+	</tr><tr>
+		<td class=""Separator3"">(8,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(9,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#213");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_tbl_hdr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#214");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_tbl_hdr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Separator0"">(2,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td>
+	</tr><tr>
+		<td class=""Separator1"">(4,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td>
+	</tr><tr>
+		<td class=""Separator2"">(6,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td>
+	</tr><tr>
+		<td class=""Separator3"">(8,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(9,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#215");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_tbl_hdr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item2"">(3,Item,2)</td><td class=""Separator2"">(4,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item1"">(5,Item,1)</td><td class=""Separator1"">(6,Separator,1)</td><td class=""Item3"">(7,Item,3)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#216");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_tbl_hdr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item4"">(3,Item,4)</td><td class=""Separator4"">(4,Separator,4)</td>
+	</tr><tr>
+		<td class=""Item1"">(5,Item,1)</td><td class=""Separator1"">(6,Separator,1)</td><td class=""Item5"">(7,Item,5)</td><td class=""Separator5"">(8,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item2"">(9,Item,2)</td><td class=""Separator2"">(10,Separator,2)</td><td class=""Item6"">(11,Item,6)</td>
+	</tr><tr>
+		<td class=""Item3"">(12,Item,3)</td><td class=""Separator3"">(13,Separator,3)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#217");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_tbl_hdr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item3"">(3,Item,3)</td><td class=""Separator3"">(4,Separator,3)</td><td class=""Item6"">(5,Item,6)</td><td class=""Separator6"">(6,Separator,6)</td>
+	</tr><tr>
+		<td class=""Item1"">(7,Item,1)</td><td class=""Separator1"">(8,Separator,1)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item7"">(11,Item,7)</td><td class=""Separator7"">(12,Separator,7)</td>
+	</tr><tr>
+		<td class=""Item2"">(13,Item,2)</td><td class=""Separator2"">(14,Separator,2)</td><td class=""Item5"">(15,Item,5)</td><td class=""Separator5"">(16,Separator,5)</td><td class=""Item8"">(17,Item,8)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#218");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_tbl_hdr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item3"">(3,Item,3)</td><td class=""Separator3"">(4,Separator,3)</td><td class=""Item5"">(5,Item,5)</td><td class=""Separator5"">(6,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item1"">(7,Item,1)</td><td class=""Separator1"">(8,Separator,1)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item6"">(11,Item,6)</td>
+	</tr><tr>
+		<td class=""Item2"">(12,Item,2)</td><td class=""Separator2"">(13,Separator,2)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#219");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_flow_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)</span>";
+		Assert.AreEqual (exp, v, "#220");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_flow_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)</span>";
+		Assert.AreEqual (exp, v, "#221");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_flow_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)</span>";
+		Assert.AreEqual (exp, v, "#222");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_flow_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)(9,Item,4)</span>";
+		Assert.AreEqual (exp, v, "#223");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_flow_hdr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)</span>";
+		Assert.AreEqual (exp, v, "#224");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_flow_hdr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Separator,0)<br>(3,Item,1)(4,Separator,1)<br>(5,Item,2)(6,Separator,2)<br>(7,Item,3)(8,Separator,3)<br>(9,Item,4)<br></span>";
+		Assert.AreEqual (exp, v, "#225");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_flow_hdr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)<br>(5,Item,2)(6,Separator,2)(7,Item,3)<br></span>";
+		Assert.AreEqual (exp, v, "#226");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_flow_hdr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)<br>(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)<br>(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br>(13,Item,6)<br></span>";
+		Assert.AreEqual (exp, v, "#227");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_flow_hdr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)<br>(7,Item,3)(8,Separator,3)(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br>(13,Item,6)(14,Separator,6)(15,Item,7)(16,Separator,7)(17,Item,8)<br></span>";
+		Assert.AreEqual (exp, v, "#228");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_flow_hdr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)<br>(7,Item,3)(8,Separator,3)(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br>(13,Item,6)<br></span>";
+		Assert.AreEqual (exp, v, "#229");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_flow_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br></span>";
+		Assert.AreEqual (exp, v, "#230");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_flow_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)</span>";
+		Assert.AreEqual (exp, v, "#231");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_flow_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Separator,0)<br>(3,Item,1)</span>";
+		Assert.AreEqual (exp, v, "#232");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_flow_hdr_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Separator,0)<br>(3,Item,1)<br>(4,Separator,1)<br>(5,Item,2)<br>(6,Separator,2)<br>(7,Item,3)<br>(8,Separator,3)<br>(9,Item,4)</span>";
+		Assert.AreEqual (exp, v, "#233");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_flow_hdr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br></span>";
+		Assert.AreEqual (exp, v, "#234");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_flow_hdr_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Separator,0)<br>(3,Item,1)<br>(4,Separator,1)<br>(5,Item,2)<br>(6,Separator,2)<br>(7,Item,3)<br>(8,Separator,3)<br>(9,Item,4)</span>";
+		Assert.AreEqual (exp, v, "#235");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_flow_hdr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,2)(4,Separator,2)<br>(5,Item,1)(6,Separator,1)(7,Item,3)</span>";
+		Assert.AreEqual (exp, v, "#236");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_flow_hdr_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,4)(4,Separator,4)<br>(5,Item,1)(6,Separator,1)(7,Item,5)(8,Separator,5)<br>(9,Item,2)(10,Separator,2)(11,Item,6)<br>(12,Item,3)(13,Separator,3)</span>";
+		Assert.AreEqual (exp, v, "#237");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_flow_hdr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,6)(6,Separator,6)<br>(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,7)(12,Separator,7)<br>(13,Item,2)(14,Separator,2)(15,Item,5)(16,Separator,5)(17,Item,8)</span>";
+		Assert.AreEqual (exp, v, "#238");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_flow_hdr_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,5)(6,Separator,5)<br>(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,6)<br>(12,Item,2)(13,Separator,2)</span>";
+		Assert.AreEqual (exp, v, "#239");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+
+</table>";
+		Assert.AreEqual (exp, v, "#240");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#241");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#242");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#243");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+
+</table>";
+		Assert.AreEqual (exp, v, "#244");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(8,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#245");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#246");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(12,Item,6)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#247");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(12,Item,6)</td><td class=""Separator6"">(13,Separator,6)</td><td class=""Item7"">(14,Item,7)</td><td class=""Separator7"">(15,Separator,7)</td><td class=""Item8"">(16,Item,8)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#248");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(12,Item,6)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#249");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
+		string exp = @"";
+		Assert.AreEqual (exp, v, "#250");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
+		string exp = @"(0,Item,0)";
+		Assert.AreEqual (exp, v, "#251");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
+		string exp = @"(0,Item,0)<br>(1,Separator,0)(2,Item,1)";
+		Assert.AreEqual (exp, v, "#252");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
+		string exp = @"(0,Item,0)<br>(1,Separator,0)(2,Item,1)<br>(3,Separator,1)(4,Item,2)<br>(5,Separator,2)(6,Item,3)<br>(7,Separator,3)(8,Item,4)";
+		Assert.AreEqual (exp, v, "#253");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
+		string exp = @"";
+		Assert.AreEqual (exp, v, "#254");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
+		string exp = @"(0,Item,0)<br>(1,Separator,0)(2,Item,1)<br>(3,Separator,1)(4,Item,2)<br>(5,Separator,2)(6,Item,3)<br>(7,Separator,3)(8,Item,4)";
+		Assert.AreEqual (exp, v, "#255");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
+		string exp = @"(0,Item,0)(1,Separator,0)(2,Item,2)(3,Separator,2)(4,Item,1)(5,Separator,1)(6,Item,3)";
+		Assert.AreEqual (exp, v, "#256");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
+		string exp = @"(0,Item,0)(1,Separator,0)(2,Item,4)(3,Separator,4)(4,Item,1)(5,Separator,1)(6,Item,5)(7,Separator,5)(8,Item,2)(9,Separator,2)(10,Item,6)(11,Item,3)(12,Separator,3)";
+		Assert.AreEqual (exp, v, "#257");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
+		string exp = @"(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,6)(5,Separator,6)(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,7)(11,Separator,7)(12,Item,2)(13,Separator,2)(14,Item,5)(15,Separator,5)(16,Item,8)";
+		Assert.AreEqual (exp, v, "#258");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_tbl_otrtblimp_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
+		string exp = @"(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,5)(5,Separator,5)(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,6)(11,Item,2)(12,Separator,2)";
+		Assert.AreEqual (exp, v, "#259");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"<span class=""mainstyle""></span>";
+		Assert.AreEqual (exp, v, "#260");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)</span>";
+		Assert.AreEqual (exp, v, "#261");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)</span>";
+		Assert.AreEqual (exp, v, "#262");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)(8,Item,4)</span>";
+		Assert.AreEqual (exp, v, "#263");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"<span class=""mainstyle""></span>";
+		Assert.AreEqual (exp, v, "#264");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)<br>(2,Item,1)(3,Separator,1)<br>(4,Item,2)(5,Separator,2)<br>(6,Item,3)(7,Separator,3)<br>(8,Item,4)<br></span>";
+		Assert.AreEqual (exp, v, "#265");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)<br>(4,Item,2)(5,Separator,2)(6,Item,3)<br></span>";
+		Assert.AreEqual (exp, v, "#266");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)<br>(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)<br>(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br>(12,Item,6)<br></span>";
+		Assert.AreEqual (exp, v, "#267");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)<br>(6,Item,3)(7,Separator,3)(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br>(12,Item,6)(13,Separator,6)(14,Item,7)(15,Separator,7)(16,Item,8)<br></span>";
+		Assert.AreEqual (exp, v, "#268");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)<br>(6,Item,3)(7,Separator,3)(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br>(12,Item,6)<br></span>";
+		Assert.AreEqual (exp, v, "#269");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"";
+		Assert.AreEqual (exp, v, "#270");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"(0,Item,0)";
+		Assert.AreEqual (exp, v, "#271");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"(0,Item,0)<br>(1,Separator,0)(2,Item,1)";
+		Assert.AreEqual (exp, v, "#272");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"(0,Item,0)<br>(1,Separator,0)(2,Item,1)<br>(3,Separator,1)(4,Item,2)<br>(5,Separator,2)(6,Item,3)<br>(7,Separator,3)(8,Item,4)";
+		Assert.AreEqual (exp, v, "#273");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"";
+		Assert.AreEqual (exp, v, "#274");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"(0,Item,0)<br>(1,Separator,0)(2,Item,1)<br>(3,Separator,1)(4,Item,2)<br>(5,Separator,2)(6,Item,3)<br>(7,Separator,3)(8,Item,4)";
+		Assert.AreEqual (exp, v, "#275");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"(0,Item,0)(1,Separator,0)(2,Item,2)(3,Separator,2)(4,Item,1)(5,Separator,1)(6,Item,3)";
+		Assert.AreEqual (exp, v, "#276");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"(0,Item,0)(1,Separator,0)(2,Item,4)(3,Separator,4)(4,Item,1)(5,Separator,1)(6,Item,5)(7,Separator,5)(8,Item,2)(9,Separator,2)(10,Item,6)(11,Item,3)(12,Separator,3)";
+		Assert.AreEqual (exp, v, "#277");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,6)(5,Separator,6)(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,7)(11,Separator,7)(12,Item,2)(13,Separator,2)(14,Item,5)(15,Separator,5)(16,Item,8)";
+		Assert.AreEqual (exp, v, "#278");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_flow_otrtblimp_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
+		string exp = @"(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,5)(5,Separator,5)(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,6)(11,Item,2)(12,Separator,2)";
+		Assert.AreEqual (exp, v, "#279");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_tbl_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+
+</table>";
+		Assert.AreEqual (exp, v, "#280");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_tbl_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#281");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_tbl_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#282");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_tbl_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#283");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_tbl_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+
+</table>";
+		Assert.AreEqual (exp, v, "#284");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_tbl_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(8,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#285");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_tbl_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#286");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_tbl_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(12,Item,6)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#287");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_tbl_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(12,Item,6)</td><td class=""Separator6"">(13,Separator,6)</td><td class=""Item7"">(14,Item,7)</td><td class=""Separator7"">(15,Separator,7)</td><td class=""Item8"">(16,Item,8)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#288");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_tbl_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(12,Item,6)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#289");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_tbl_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+
+</table>";
+		Assert.AreEqual (exp, v, "#290");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_tbl_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#291");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_tbl_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Separator0"">(1,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#292");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_tbl_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Separator0"">(1,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Separator1"">(3,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td>
+	</tr><tr>
+		<td class=""Separator2"">(5,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td>
+	</tr><tr>
+		<td class=""Separator3"">(7,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(8,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#293");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_tbl_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+
+</table>";
+		Assert.AreEqual (exp, v, "#294");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_tbl_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Separator0"">(1,Separator,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Separator1"">(3,Separator,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td>
+	</tr><tr>
+		<td class=""Separator2"">(5,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td>
+	</tr><tr>
+		<td class=""Separator3"">(7,Separator,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(8,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#295");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_tbl_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item2"">(2,Item,2)</td><td class=""Separator2"">(3,Separator,2)</td>
+	</tr><tr>
+		<td class=""Item1"">(4,Item,1)</td><td class=""Separator1"">(5,Separator,1)</td><td class=""Item3"">(6,Item,3)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#296");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_tbl_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item4"">(2,Item,4)</td><td class=""Separator4"">(3,Separator,4)</td>
+	</tr><tr>
+		<td class=""Item1"">(4,Item,1)</td><td class=""Separator1"">(5,Separator,1)</td><td class=""Item5"">(6,Item,5)</td><td class=""Separator5"">(7,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item2"">(8,Item,2)</td><td class=""Separator2"">(9,Separator,2)</td><td class=""Item6"">(10,Item,6)</td>
+	</tr><tr>
+		<td class=""Item3"">(11,Item,3)</td><td class=""Separator3"">(12,Separator,3)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#297");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_tbl_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item3"">(2,Item,3)</td><td class=""Separator3"">(3,Separator,3)</td><td class=""Item6"">(4,Item,6)</td><td class=""Separator6"">(5,Separator,6)</td>
+	</tr><tr>
+		<td class=""Item1"">(6,Item,1)</td><td class=""Separator1"">(7,Separator,1)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item7"">(10,Item,7)</td><td class=""Separator7"">(11,Separator,7)</td>
+	</tr><tr>
+		<td class=""Item2"">(12,Item,2)</td><td class=""Separator2"">(13,Separator,2)</td><td class=""Item5"">(14,Item,5)</td><td class=""Separator5"">(15,Separator,5)</td><td class=""Item8"">(16,Item,8)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#298");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_tbl_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item3"">(2,Item,3)</td><td class=""Separator3"">(3,Separator,3)</td><td class=""Item5"">(4,Item,5)</td><td class=""Separator5"">(5,Separator,5)</td>
+	</tr><tr>
+		<td class=""Item1"">(6,Item,1)</td><td class=""Separator1"">(7,Separator,1)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item6"">(10,Item,6)</td>
+	</tr><tr>
+		<td class=""Item2"">(11,Item,2)</td><td class=""Separator2"">(12,Separator,2)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#299");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_flow_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span class=""mainstyle""></span>";
+		Assert.AreEqual (exp, v, "#300");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_flow_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)</span>";
+		Assert.AreEqual (exp, v, "#301");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_flow_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)</span>";
+		Assert.AreEqual (exp, v, "#302");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_flow_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)(8,Item,4)</span>";
+		Assert.AreEqual (exp, v, "#303");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_flow_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span class=""mainstyle""></span>";
+		Assert.AreEqual (exp, v, "#304");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_flow_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)<br>(2,Item,1)(3,Separator,1)<br>(4,Item,2)(5,Separator,2)<br>(6,Item,3)(7,Separator,3)<br>(8,Item,4)<br></span>";
+		Assert.AreEqual (exp, v, "#305");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_flow_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)<br>(4,Item,2)(5,Separator,2)(6,Item,3)<br></span>";
+		Assert.AreEqual (exp, v, "#306");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_flow_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)<br>(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)<br>(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br>(12,Item,6)<br></span>";
+		Assert.AreEqual (exp, v, "#307");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_flow_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)<br>(6,Item,3)(7,Separator,3)(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br>(12,Item,6)(13,Separator,6)(14,Item,7)(15,Separator,7)(16,Item,8)<br></span>";
+		Assert.AreEqual (exp, v, "#308");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_flow_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)<br>(6,Item,3)(7,Separator,3)(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br>(12,Item,6)<br></span>";
+		Assert.AreEqual (exp, v, "#309");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_flow_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span class=""mainstyle""></span>";
+		Assert.AreEqual (exp, v, "#310");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_flow_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)</span>";
+		Assert.AreEqual (exp, v, "#311");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_flow_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Separator,0)<br>(2,Item,1)</span>";
+		Assert.AreEqual (exp, v, "#312");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_flow_sep ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Separator,0)<br>(2,Item,1)<br>(3,Separator,1)<br>(4,Item,2)<br>(5,Separator,2)<br>(6,Item,3)<br>(7,Separator,3)<br>(8,Item,4)</span>";
+		Assert.AreEqual (exp, v, "#313");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_flow_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span class=""mainstyle""></span>";
+		Assert.AreEqual (exp, v, "#314");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_flow_sep ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Separator,0)<br>(2,Item,1)<br>(3,Separator,1)<br>(4,Item,2)<br>(5,Separator,2)<br>(6,Item,3)<br>(7,Separator,3)<br>(8,Item,4)</span>";
+		Assert.AreEqual (exp, v, "#315");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_flow_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,2)(3,Separator,2)<br>(4,Item,1)(5,Separator,1)(6,Item,3)</span>";
+		Assert.AreEqual (exp, v, "#316");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_flow_sep ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,4)(3,Separator,4)<br>(4,Item,1)(5,Separator,1)(6,Item,5)(7,Separator,5)<br>(8,Item,2)(9,Separator,2)(10,Item,6)<br>(11,Item,3)(12,Separator,3)</span>";
+		Assert.AreEqual (exp, v, "#317");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_flow_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,6)(5,Separator,6)<br>(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,7)(11,Separator,7)<br>(12,Item,2)(13,Separator,2)(14,Item,5)(15,Separator,5)(16,Item,8)</span>";
+		Assert.AreEqual (exp, v, "#318");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_flow_sep ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : True
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
+		string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,5)(5,Separator,5)<br>(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,6)<br>(11,Item,2)(12,Separator,2)</span>";
+		Assert.AreEqual (exp, v, "#319");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""0"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td colspan=""0"" class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#320");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(2,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#321");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(3,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#322");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""5"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td>
+	</tr><tr>
+		<td colspan=""5"" class=""Footer-1"">(6,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#323");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#324");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(3,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(4,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(5,Item,4)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(6,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#325");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(5,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#326");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(7,Item,6)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(8,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#327");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(7,Item,6)</td><td class=""Item7"">(8,Item,7)</td><td class=""Item8"">(9,Item,8)</td>
+	</tr><tr>
+		<td colspan=""3"" class=""Footer-1"">(10,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#328");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(7,Item,6)</td>
+	</tr><tr>
+		<td colspan=""3"" class=""Footer-1"">(8,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#329");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Footer,-1)";
+		Assert.AreEqual (exp, v, "#330");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Footer,-1)";
+		Assert.AreEqual (exp, v, "#331");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Footer,-1)";
+		Assert.AreEqual (exp, v, "#332");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)(6,Footer,-1)";
+		Assert.AreEqual (exp, v, "#333");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Footer,-1)";
+		Assert.AreEqual (exp, v, "#334");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)(6,Footer,-1)";
+		Assert.AreEqual (exp, v, "#335");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,2)(3,Item,1)(4,Item,3)(5,Footer,-1)";
+		Assert.AreEqual (exp, v, "#336");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,4)(3,Item,1)(4,Item,5)(5,Item,2)(6,Item,6)(7,Item,3)(8,Footer,-1)";
+		Assert.AreEqual (exp, v, "#337");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,3)(3,Item,6)(4,Item,1)(5,Item,4)(6,Item,7)(7,Item,2)(8,Item,5)(9,Item,8)(10,Footer,-1)";
+		Assert.AreEqual (exp, v, "#338");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_tbl_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,3)(3,Item,5)(4,Item,1)(5,Item,4)(6,Item,6)(7,Item,2)(8,Footer,-1)";
+		Assert.AreEqual (exp, v, "#339");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#340");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#341");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Item,1)(3,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#342");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)(6,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#343");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#344");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Item,1)<br>(3,Item,2)<br>(4,Item,3)<br>(5,Item,4)<br>(6,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#345");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Item,1)<br>(3,Item,2)(4,Item,3)<br>(5,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#346");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Item,1)<br>(3,Item,2)(4,Item,3)<br>(5,Item,4)(6,Item,5)<br>(7,Item,6)<br>(8,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#347");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Item,1)(3,Item,2)<br>(4,Item,3)(5,Item,4)(6,Item,5)<br>(7,Item,6)(8,Item,7)(9,Item,8)<br>(10,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#348");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Item,1)(3,Item,2)<br>(4,Item,3)(5,Item,4)(6,Item,5)<br>(7,Item,6)<br>(8,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#349");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Footer,-1)";
+		Assert.AreEqual (exp, v, "#350");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Footer,-1)";
+		Assert.AreEqual (exp, v, "#351");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Footer,-1)";
+		Assert.AreEqual (exp, v, "#352");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)(6,Footer,-1)";
+		Assert.AreEqual (exp, v, "#353");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Footer,-1)";
+		Assert.AreEqual (exp, v, "#354");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)(6,Footer,-1)";
+		Assert.AreEqual (exp, v, "#355");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,2)(3,Item,1)(4,Item,3)(5,Footer,-1)";
+		Assert.AreEqual (exp, v, "#356");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,4)(3,Item,1)(4,Item,5)(5,Item,2)(6,Item,6)(7,Item,3)(8,Footer,-1)";
+		Assert.AreEqual (exp, v, "#357");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,3)(3,Item,6)(4,Item,1)(5,Item,4)(6,Item,7)(7,Item,2)(8,Item,5)(9,Item,8)(10,Footer,-1)";
+		Assert.AreEqual (exp, v, "#358");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_flow_otrtblimp_hdr_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,3)(3,Item,5)(4,Item,1)(5,Item,4)(6,Item,6)(7,Item,2)(8,Footer,-1)";
+		Assert.AreEqual (exp, v, "#359");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_tbl_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""0"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td colspan=""0"" class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#360");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_tbl_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(2,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#361");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_tbl_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(3,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#362");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_tbl_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""5"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td>
+	</tr><tr>
+		<td colspan=""5"" class=""Footer-1"">(6,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#363");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_tbl_hdr_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#364");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_tbl_hdr_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(3,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(4,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(5,Item,4)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(6,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#365");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_tbl_hdr_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(5,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#366");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_tbl_hdr_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(7,Item,6)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(8,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#367");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_tbl_hdr_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(7,Item,6)</td><td class=""Item7"">(8,Item,7)</td><td class=""Item8"">(9,Item,8)</td>
+	</tr><tr>
+		<td colspan=""3"" class=""Footer-1"">(10,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#368");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_tbl_hdr_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(7,Item,6)</td>
+	</tr><tr>
+		<td colspan=""3"" class=""Footer-1"">(8,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#369");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_tbl_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#370");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_tbl_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(2,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#371");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_tbl_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(3,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#372");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_tbl_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(3,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(4,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(5,Item,4)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(6,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#373");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_tbl_hdr_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#374");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_tbl_hdr_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(3,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(4,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(5,Item,4)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(6,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#375");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_tbl_hdr_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td><td class=""Item3"">(4,Item,3)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(5,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#376");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_tbl_hdr_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item4"">(2,Item,4)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td><td class=""Item5"">(4,Item,5)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td><td class=""Item6"">(6,Item,6)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(8,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#377");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_tbl_hdr_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item3"">(2,Item,3)</td><td class=""Item6"">(3,Item,6)</td>
+	</tr><tr>
+		<td class=""Item1"">(4,Item,1)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item7"">(6,Item,7)</td>
+	</tr><tr>
+		<td class=""Item2"">(7,Item,2)</td><td class=""Item5"">(8,Item,5)</td><td class=""Item8"">(9,Item,8)</td>
+	</tr><tr>
+		<td colspan=""3"" class=""Footer-1"">(10,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#378");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_tbl_hdr_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item3"">(2,Item,3)</td><td class=""Item5"">(3,Item,5)</td>
+	</tr><tr>
+		<td class=""Item1"">(4,Item,1)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item6"">(6,Item,6)</td>
+	</tr><tr>
+		<td class=""Item2"">(7,Item,2)</td>
+	</tr><tr>
+		<td colspan=""3"" class=""Footer-1"">(8,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#379");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_flow_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#380");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_flow_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#381");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_flow_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Item,1)(3,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#382");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_flow_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)(6,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#383");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_flow_hdr_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#384");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_flow_hdr_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Item,1)<br>(3,Item,2)<br>(4,Item,3)<br>(5,Item,4)<br>(6,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#385");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_flow_hdr_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Item,1)<br>(3,Item,2)(4,Item,3)<br>(5,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#386");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_flow_hdr_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Item,1)<br>(3,Item,2)(4,Item,3)<br>(5,Item,4)(6,Item,5)<br>(7,Item,6)<br>(8,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#387");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_flow_hdr_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Item,1)(3,Item,2)<br>(4,Item,3)(5,Item,4)(6,Item,5)<br>(7,Item,6)(8,Item,7)(9,Item,8)<br>(10,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#388");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_flow_hdr_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Item,1)(3,Item,2)<br>(4,Item,3)(5,Item,4)(6,Item,5)<br>(7,Item,6)<br>(8,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#389");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_flow_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#390");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_flow_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#391");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_flow_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Item,1)<br>(3,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#392");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_flow_hdr_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Item,1)<br>(3,Item,2)<br>(4,Item,3)<br>(5,Item,4)<br>(6,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#393");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_flow_hdr_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#394");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_flow_hdr_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Item,1)<br>(3,Item,2)<br>(4,Item,3)<br>(5,Item,4)<br>(6,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#395");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_flow_hdr_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Item,2)<br>(3,Item,1)(4,Item,3)<br>(5,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#396");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_flow_hdr_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Item,4)<br>(3,Item,1)(4,Item,5)<br>(5,Item,2)(6,Item,6)<br>(7,Item,3)<br>(8,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#397");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_flow_hdr_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Item,3)(3,Item,6)<br>(4,Item,1)(5,Item,4)(6,Item,7)<br>(7,Item,2)(8,Item,5)(9,Item,8)<br>(10,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#398");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_flow_hdr_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Item,3)(3,Item,5)<br>(4,Item,1)(5,Item,4)(6,Item,6)<br>(7,Item,2)<br>(8,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#399");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""0"" class=""Footer-1"">(0,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#400");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#401");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(2,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#402");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td>
+	</tr><tr>
+		<td colspan=""5"" class=""Footer-1"">(5,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#403");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Footer-1"">(0,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#404");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(3,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(4,Item,4)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(5,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#405");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(4,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#406");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(6,Item,6)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(7,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#407");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(6,Item,6)</td><td class=""Item7"">(7,Item,7)</td><td class=""Item8"">(8,Item,8)</td>
+	</tr><tr>
+		<td colspan=""3"" class=""Footer-1"">(9,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#408");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(6,Item,6)</td>
+	</tr><tr>
+		<td colspan=""3"" class=""Footer-1"">(7,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#409");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
+		string exp = @"(0,Footer,-1)";
+		Assert.AreEqual (exp, v, "#410");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
+		string exp = @"(0,Item,0)(1,Footer,-1)";
+		Assert.AreEqual (exp, v, "#411");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
+		string exp = @"(0,Item,0)(1,Item,1)(2,Footer,-1)";
+		Assert.AreEqual (exp, v, "#412");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
+		string exp = @"(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)(5,Footer,-1)";
+		Assert.AreEqual (exp, v, "#413");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
+		string exp = @"(0,Footer,-1)";
+		Assert.AreEqual (exp, v, "#414");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
+		string exp = @"(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)(5,Footer,-1)";
+		Assert.AreEqual (exp, v, "#415");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
+		string exp = @"(0,Item,0)(1,Item,2)(2,Item,1)(3,Item,3)(4,Footer,-1)";
+		Assert.AreEqual (exp, v, "#416");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
+		string exp = @"(0,Item,0)(1,Item,4)(2,Item,1)(3,Item,5)(4,Item,2)(5,Item,6)(6,Item,3)(7,Footer,-1)";
+		Assert.AreEqual (exp, v, "#417");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
+		string exp = @"(0,Item,0)(1,Item,3)(2,Item,6)(3,Item,1)(4,Item,4)(5,Item,7)(6,Item,2)(7,Item,5)(8,Item,8)(9,Footer,-1)";
+		Assert.AreEqual (exp, v, "#418");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_tbl_otrtblimp_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
+		string exp = @"(0,Item,0)(1,Item,3)(2,Item,5)(3,Item,1)(4,Item,4)(5,Item,6)(6,Item,2)(7,Footer,-1)";
+		Assert.AreEqual (exp, v, "#419");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#420");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#421");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)(2,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#422");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)(5,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#423");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#424");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Item,1)<br>(2,Item,2)<br>(3,Item,3)<br>(4,Item,4)<br>(5,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#425");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)<br>(2,Item,2)(3,Item,3)<br>(4,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#426");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)<br>(2,Item,2)(3,Item,3)<br>(4,Item,4)(5,Item,5)<br>(6,Item,6)<br>(7,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#427");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"<span>(0,Item,0)(1,Item,1)(2,Item,2)<br>(3,Item,3)(4,Item,4)(5,Item,5)<br>(6,Item,6)(7,Item,7)(8,Item,8)<br>(9,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#428");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"<span>(0,Item,0)(1,Item,1)(2,Item,2)<br>(3,Item,3)(4,Item,4)(5,Item,5)<br>(6,Item,6)<br>(7,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#429");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"(0,Footer,-1)";
+		Assert.AreEqual (exp, v, "#430");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"(0,Item,0)(1,Footer,-1)";
+		Assert.AreEqual (exp, v, "#431");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"(0,Item,0)(1,Item,1)(2,Footer,-1)";
+		Assert.AreEqual (exp, v, "#432");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)(5,Footer,-1)";
+		Assert.AreEqual (exp, v, "#433");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"(0,Footer,-1)";
+		Assert.AreEqual (exp, v, "#434");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)(5,Footer,-1)";
+		Assert.AreEqual (exp, v, "#435");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"(0,Item,0)(1,Item,2)(2,Item,1)(3,Item,3)(4,Footer,-1)";
+		Assert.AreEqual (exp, v, "#436");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"(0,Item,0)(1,Item,4)(2,Item,1)(3,Item,5)(4,Item,2)(5,Item,6)(6,Item,3)(7,Footer,-1)";
+		Assert.AreEqual (exp, v, "#437");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"(0,Item,0)(1,Item,3)(2,Item,6)(3,Item,1)(4,Item,4)(5,Item,7)(6,Item,2)(7,Item,5)(8,Item,8)(9,Footer,-1)";
+		Assert.AreEqual (exp, v, "#438");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_flow_otrtblimp_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
+		string exp = @"(0,Item,0)(1,Item,3)(2,Item,5)(3,Item,1)(4,Item,4)(5,Item,6)(6,Item,2)(7,Footer,-1)";
+		Assert.AreEqual (exp, v, "#439");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_tbl_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""0"" class=""Footer-1"">(0,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#440");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_tbl_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#441");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_tbl_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(2,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#442");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_tbl_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td>
+	</tr><tr>
+		<td colspan=""5"" class=""Footer-1"">(5,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#443");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_tbl_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Footer-1"">(0,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#444");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_tbl_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(3,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(4,Item,4)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(5,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#445");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_tbl_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(4,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#446");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_tbl_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(6,Item,6)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(7,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#447");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_tbl_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(6,Item,6)</td><td class=""Item7"">(7,Item,7)</td><td class=""Item8"">(8,Item,8)</td>
+	</tr><tr>
+		<td colspan=""3"" class=""Footer-1"">(9,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#448");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_tbl_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(6,Item,6)</td>
+	</tr><tr>
+		<td colspan=""3"" class=""Footer-1"">(7,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#449");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_tbl_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Footer-1"">(0,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#450");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_tbl_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(1,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#451");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_tbl_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(2,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#452");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_tbl_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(3,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(4,Item,4)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(5,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#453");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_tbl_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Footer-1"">(0,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#454");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_tbl_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(3,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(4,Item,4)</td>
+	</tr><tr>
+		<td class=""Footer-1"">(5,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#455");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_tbl_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item2"">(1,Item,2)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td><td class=""Item3"">(3,Item,3)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(4,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#456");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_tbl_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item4"">(1,Item,4)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td><td class=""Item5"">(3,Item,5)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td><td class=""Item6"">(5,Item,6)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td>
+	</tr><tr>
+		<td colspan=""2"" class=""Footer-1"">(7,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#457");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_tbl_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item3"">(1,Item,3)</td><td class=""Item6"">(2,Item,6)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item7"">(5,Item,7)</td>
+	</tr><tr>
+		<td class=""Item2"">(6,Item,2)</td><td class=""Item5"">(7,Item,5)</td><td class=""Item8"">(8,Item,8)</td>
+	</tr><tr>
+		<td colspan=""3"" class=""Footer-1"">(9,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#458");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_tbl_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item3"">(1,Item,3)</td><td class=""Item5"">(2,Item,5)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item6"">(5,Item,6)</td>
+	</tr><tr>
+		<td class=""Item2"">(6,Item,2)</td>
+	</tr><tr>
+		<td colspan=""3"" class=""Footer-1"">(7,Footer,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#459");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_flow_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#460");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_flow_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#461");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_flow_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)(2,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#462");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_flow_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)(5,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#463");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_flow_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#464");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_flow_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Item,1)<br>(2,Item,2)<br>(3,Item,3)<br>(4,Item,4)<br>(5,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#465");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_flow_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)<br>(2,Item,2)(3,Item,3)<br>(4,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#466");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_flow_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)<br>(2,Item,2)(3,Item,3)<br>(4,Item,4)(5,Item,5)<br>(6,Item,6)<br>(7,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#467");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_flow_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span>(0,Item,0)(1,Item,1)(2,Item,2)<br>(3,Item,3)(4,Item,4)(5,Item,5)<br>(6,Item,6)(7,Item,7)(8,Item,8)<br>(9,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#468");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_flow_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span>(0,Item,0)(1,Item,1)(2,Item,2)<br>(3,Item,3)(4,Item,4)(5,Item,5)<br>(6,Item,6)<br>(7,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#469");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_flow_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#470");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_flow_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#471");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_flow_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Item,1)<br>(2,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#472");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_flow_ftr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Item,1)<br>(2,Item,2)<br>(3,Item,3)<br>(4,Item,4)<br>(5,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#473");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_flow_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#474");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_flow_ftr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Item,1)<br>(2,Item,2)<br>(3,Item,3)<br>(4,Item,4)<br>(5,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#475");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_flow_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,2)<br>(2,Item,1)(3,Item,3)<br>(4,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#476");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_flow_ftr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,4)<br>(2,Item,1)(3,Item,5)<br>(4,Item,2)(5,Item,6)<br>(6,Item,3)<br>(7,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#477");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_flow_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span>(0,Item,0)(1,Item,3)(2,Item,6)<br>(3,Item,1)(4,Item,4)(5,Item,7)<br>(6,Item,2)(7,Item,5)(8,Item,8)<br>(9,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#478");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_flow_ftr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : True
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
+		string exp = @"<span>(0,Item,0)(1,Item,3)(2,Item,5)<br>(3,Item,1)(4,Item,4)(5,Item,6)<br>(6,Item,2)<br>(7,Footer,-1)</span>";
+		Assert.AreEqual (exp, v, "#479");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""0"" class=""Header-1"">(0,Header,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#480");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#481");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#482");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""5"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#483");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#484");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(3,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(4,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(5,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#485");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#486");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(7,Item,6)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#487");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(7,Item,6)</td><td class=""Item7"">(8,Item,7)</td><td class=""Item8"">(9,Item,8)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#488");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(7,Item,6)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#489");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
+		string exp = @"(0,Header,-1)";
+		Assert.AreEqual (exp, v, "#490");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
+		string exp = @"(0,Header,-1)(1,Item,0)";
+		Assert.AreEqual (exp, v, "#491");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)";
+		Assert.AreEqual (exp, v, "#492");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)";
+		Assert.AreEqual (exp, v, "#493");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
+		string exp = @"(0,Header,-1)";
+		Assert.AreEqual (exp, v, "#494");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)";
+		Assert.AreEqual (exp, v, "#495");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,2)(3,Item,1)(4,Item,3)";
+		Assert.AreEqual (exp, v, "#496");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,4)(3,Item,1)(4,Item,5)(5,Item,2)(6,Item,6)(7,Item,3)";
+		Assert.AreEqual (exp, v, "#497");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,3)(3,Item,6)(4,Item,1)(5,Item,4)(6,Item,7)(7,Item,2)(8,Item,5)(9,Item,8)";
+		Assert.AreEqual (exp, v, "#498");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_tbl_otrtblimp_hdr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,3)(3,Item,5)(4,Item,1)(5,Item,4)(6,Item,6)(7,Item,2)";
+		Assert.AreEqual (exp, v, "#499");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)</span>";
+		Assert.AreEqual (exp, v, "#500");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)</span>";
+		Assert.AreEqual (exp, v, "#501");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Item,1)</span>";
+		Assert.AreEqual (exp, v, "#502");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)</span>";
+		Assert.AreEqual (exp, v, "#503");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)</span>";
+		Assert.AreEqual (exp, v, "#504");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Item,1)<br>(3,Item,2)<br>(4,Item,3)<br>(5,Item,4)<br></span>";
+		Assert.AreEqual (exp, v, "#505");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Item,1)<br>(3,Item,2)(4,Item,3)<br></span>";
+		Assert.AreEqual (exp, v, "#506");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Item,1)<br>(3,Item,2)(4,Item,3)<br>(5,Item,4)(6,Item,5)<br>(7,Item,6)<br></span>";
+		Assert.AreEqual (exp, v, "#507");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Item,1)(3,Item,2)<br>(4,Item,3)(5,Item,4)(6,Item,5)<br>(7,Item,6)(8,Item,7)(9,Item,8)<br></span>";
+		Assert.AreEqual (exp, v, "#508");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Item,1)(3,Item,2)<br>(4,Item,3)(5,Item,4)(6,Item,5)<br>(7,Item,6)<br></span>";
+		Assert.AreEqual (exp, v, "#509");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"(0,Header,-1)";
+		Assert.AreEqual (exp, v, "#510");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"(0,Header,-1)(1,Item,0)";
+		Assert.AreEqual (exp, v, "#511");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)";
+		Assert.AreEqual (exp, v, "#512");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)";
+		Assert.AreEqual (exp, v, "#513");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"(0,Header,-1)";
+		Assert.AreEqual (exp, v, "#514");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)";
+		Assert.AreEqual (exp, v, "#515");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,2)(3,Item,1)(4,Item,3)";
+		Assert.AreEqual (exp, v, "#516");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,4)(3,Item,1)(4,Item,5)(5,Item,2)(6,Item,6)(7,Item,3)";
+		Assert.AreEqual (exp, v, "#517");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,3)(3,Item,6)(4,Item,1)(5,Item,4)(6,Item,7)(7,Item,2)(8,Item,5)(9,Item,8)";
+		Assert.AreEqual (exp, v, "#518");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_flow_otrtblimp_hdr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
+		string exp = @"(0,Header,-1)(1,Item,0)(2,Item,3)(3,Item,5)(4,Item,1)(5,Item,4)(6,Item,6)(7,Item,2)";
+		Assert.AreEqual (exp, v, "#519");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_tbl_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""0"" class=""Header-1"">(0,Header,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#520");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_tbl_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#521");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_tbl_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#522");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_tbl_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""5"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#523");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_tbl_hdr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#524");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_tbl_hdr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(3,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(4,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(5,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#525");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_tbl_hdr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#526");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_tbl_hdr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(7,Item,6)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#527");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_tbl_hdr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(7,Item,6)</td><td class=""Item7"">(8,Item,7)</td><td class=""Item8"">(9,Item,8)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#528");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_tbl_hdr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(7,Item,6)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#529");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_tbl_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#530");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_tbl_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#531");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_tbl_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#532");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_tbl_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(3,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(4,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(5,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#533");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_tbl_hdr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#534");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_tbl_hdr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(3,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(4,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(5,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#535");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_tbl_hdr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td><td class=""Item3"">(4,Item,3)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#536");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_tbl_hdr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item4"">(2,Item,4)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td><td class=""Item5"">(4,Item,5)</td>
+	</tr><tr>
+		<td class=""Item2"">(5,Item,2)</td><td class=""Item6"">(6,Item,6)</td>
+	</tr><tr>
+		<td class=""Item3"">(7,Item,3)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#537");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_tbl_hdr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item3"">(2,Item,3)</td><td class=""Item6"">(3,Item,6)</td>
+	</tr><tr>
+		<td class=""Item1"">(4,Item,1)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item7"">(6,Item,7)</td>
+	</tr><tr>
+		<td class=""Item2"">(7,Item,2)</td><td class=""Item5"">(8,Item,5)</td><td class=""Item8"">(9,Item,8)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#538");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_tbl_hdr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
+	</tr><tr>
+		<td class=""Item0"">(1,Item,0)</td><td class=""Item3"">(2,Item,3)</td><td class=""Item5"">(3,Item,5)</td>
+	</tr><tr>
+		<td class=""Item1"">(4,Item,1)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item6"">(6,Item,6)</td>
+	</tr><tr>
+		<td class=""Item2"">(7,Item,2)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#539");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_flow_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)</span>";
+		Assert.AreEqual (exp, v, "#540");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_flow_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)</span>";
+		Assert.AreEqual (exp, v, "#541");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_flow_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Item,1)</span>";
+		Assert.AreEqual (exp, v, "#542");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_flow_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)</span>";
+		Assert.AreEqual (exp, v, "#543");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_flow_hdr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)</span>";
+		Assert.AreEqual (exp, v, "#544");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_flow_hdr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Item,1)<br>(3,Item,2)<br>(4,Item,3)<br>(5,Item,4)<br></span>";
+		Assert.AreEqual (exp, v, "#545");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_flow_hdr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Item,1)<br>(3,Item,2)(4,Item,3)<br></span>";
+		Assert.AreEqual (exp, v, "#546");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_flow_hdr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Item,1)<br>(3,Item,2)(4,Item,3)<br>(5,Item,4)(6,Item,5)<br>(7,Item,6)<br></span>";
+		Assert.AreEqual (exp, v, "#547");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_flow_hdr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Item,1)(3,Item,2)<br>(4,Item,3)(5,Item,4)(6,Item,5)<br>(7,Item,6)(8,Item,7)(9,Item,8)<br></span>";
+		Assert.AreEqual (exp, v, "#548");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_flow_hdr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Item,1)(3,Item,2)<br>(4,Item,3)(5,Item,4)(6,Item,5)<br>(7,Item,6)<br></span>";
+		Assert.AreEqual (exp, v, "#549");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_flow_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br></span>";
+		Assert.AreEqual (exp, v, "#550");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_flow_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)</span>";
+		Assert.AreEqual (exp, v, "#551");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_flow_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Item,1)</span>";
+		Assert.AreEqual (exp, v, "#552");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_flow_hdr ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Item,1)<br>(3,Item,2)<br>(4,Item,3)<br>(5,Item,4)</span>";
+		Assert.AreEqual (exp, v, "#553");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_flow_hdr ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br></span>";
+		Assert.AreEqual (exp, v, "#554");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_flow_hdr ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)<br>(2,Item,1)<br>(3,Item,2)<br>(4,Item,3)<br>(5,Item,4)</span>";
+		Assert.AreEqual (exp, v, "#555");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_flow_hdr ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Item,2)<br>(3,Item,1)(4,Item,3)</span>";
+		Assert.AreEqual (exp, v, "#556");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_flow_hdr ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Header,-1)<br>(1,Item,0)(2,Item,4)<br>(3,Item,1)(4,Item,5)<br>(5,Item,2)(6,Item,6)<br>(7,Item,3)</span>";
+		Assert.AreEqual (exp, v, "#557");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_flow_hdr ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Item,3)(3,Item,6)<br>(4,Item,1)(5,Item,4)(6,Item,7)<br>(7,Item,2)(8,Item,5)(9,Item,8)</span>";
+		Assert.AreEqual (exp, v, "#558");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_flow_hdr ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : True
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
+		string exp = @"<span>(0,Header,-1)<br>(1,Item,0)(2,Item,3)(3,Item,5)<br>(4,Item,1)(5,Item,4)(6,Item,6)<br>(7,Item,2)</span>";
+		Assert.AreEqual (exp, v, "#559");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_tbl_otrtblimp ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+
+</table>";
+		Assert.AreEqual (exp, v, "#560");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_tbl_otrtblimp ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#561");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_tbl_otrtblimp ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#562");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_tbl_otrtblimp ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#563");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_tbl_otrtblimp ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+
+</table>";
+		Assert.AreEqual (exp, v, "#564");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_tbl_otrtblimp ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(3,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(4,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#565");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_tbl_otrtblimp ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#566");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_tbl_otrtblimp ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(6,Item,6)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#567");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_tbl_otrtblimp ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(6,Item,6)</td><td class=""Item7"">(7,Item,7)</td><td class=""Item8"">(8,Item,8)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#568");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_tbl_otrtblimp ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(6,Item,6)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#569");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_tbl_otrtblimp ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
+		string exp = @"";
+		Assert.AreEqual (exp, v, "#570");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_tbl_otrtblimp ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
+		string exp = @"(0,Item,0)";
+		Assert.AreEqual (exp, v, "#571");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_tbl_otrtblimp ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
+		string exp = @"(0,Item,0)(1,Item,1)";
+		Assert.AreEqual (exp, v, "#572");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_tbl_otrtblimp ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
+		string exp = @"(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)";
+		Assert.AreEqual (exp, v, "#573");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_tbl_otrtblimp ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
+		string exp = @"";
+		Assert.AreEqual (exp, v, "#574");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_tbl_otrtblimp ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
+		string exp = @"(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)";
+		Assert.AreEqual (exp, v, "#575");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_tbl_otrtblimp ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
+		string exp = @"(0,Item,0)(1,Item,2)(2,Item,1)(3,Item,3)";
+		Assert.AreEqual (exp, v, "#576");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_tbl_otrtblimp ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
+		string exp = @"(0,Item,0)(1,Item,4)(2,Item,1)(3,Item,5)(4,Item,2)(5,Item,6)(6,Item,3)";
+		Assert.AreEqual (exp, v, "#577");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_tbl_otrtblimp ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
+		string exp = @"(0,Item,0)(1,Item,3)(2,Item,6)(3,Item,1)(4,Item,4)(5,Item,7)(6,Item,2)(7,Item,5)(8,Item,8)";
+		Assert.AreEqual (exp, v, "#578");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_tbl_otrtblimp ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
+		string exp = @"(0,Item,0)(1,Item,3)(2,Item,5)(3,Item,1)(4,Item,4)(5,Item,6)(6,Item,2)";
+		Assert.AreEqual (exp, v, "#579");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_flow_otrtblimp ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"<span class=""mainstyle""></span>";
+		Assert.AreEqual (exp, v, "#580");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_flow_otrtblimp ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)</span>";
+		Assert.AreEqual (exp, v, "#581");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_flow_otrtblimp ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)</span>";
+		Assert.AreEqual (exp, v, "#582");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_flow_otrtblimp ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)</span>";
+		Assert.AreEqual (exp, v, "#583");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_flow_otrtblimp ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"<span class=""mainstyle""></span>";
+		Assert.AreEqual (exp, v, "#584");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_flow_otrtblimp ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Item,1)<br>(2,Item,2)<br>(3,Item,3)<br>(4,Item,4)<br></span>";
+		Assert.AreEqual (exp, v, "#585");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_flow_otrtblimp ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)<br>(2,Item,2)(3,Item,3)<br></span>";
+		Assert.AreEqual (exp, v, "#586");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_flow_otrtblimp ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)<br>(2,Item,2)(3,Item,3)<br>(4,Item,4)(5,Item,5)<br>(6,Item,6)<br></span>";
+		Assert.AreEqual (exp, v, "#587");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_flow_otrtblimp ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"<span>(0,Item,0)(1,Item,1)(2,Item,2)<br>(3,Item,3)(4,Item,4)(5,Item,5)<br>(6,Item,6)(7,Item,7)(8,Item,8)<br></span>";
+		Assert.AreEqual (exp, v, "#588");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_flow_otrtblimp ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"<span>(0,Item,0)(1,Item,1)(2,Item,2)<br>(3,Item,3)(4,Item,4)(5,Item,5)<br>(6,Item,6)<br></span>";
+		Assert.AreEqual (exp, v, "#589");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_flow_otrtblimp ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"";
+		Assert.AreEqual (exp, v, "#590");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_flow_otrtblimp ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"(0,Item,0)";
+		Assert.AreEqual (exp, v, "#591");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_flow_otrtblimp ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"(0,Item,0)(1,Item,1)";
+		Assert.AreEqual (exp, v, "#592");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_flow_otrtblimp ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)";
+		Assert.AreEqual (exp, v, "#593");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_flow_otrtblimp ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"";
+		Assert.AreEqual (exp, v, "#594");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_flow_otrtblimp ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)";
+		Assert.AreEqual (exp, v, "#595");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_flow_otrtblimp ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"(0,Item,0)(1,Item,2)(2,Item,1)(3,Item,3)";
+		Assert.AreEqual (exp, v, "#596");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_flow_otrtblimp ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"(0,Item,0)(1,Item,4)(2,Item,1)(3,Item,5)(4,Item,2)(5,Item,6)(6,Item,3)";
+		Assert.AreEqual (exp, v, "#597");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_flow_otrtblimp ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"(0,Item,0)(1,Item,3)(2,Item,6)(3,Item,1)(4,Item,4)(5,Item,7)(6,Item,2)(7,Item,5)(8,Item,8)";
+		Assert.AreEqual (exp, v, "#598");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_flow_otrtblimp ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : True
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
+		string exp = @"(0,Item,0)(1,Item,3)(2,Item,5)(3,Item,1)(4,Item,4)(5,Item,6)(6,Item,2)";
+		Assert.AreEqual (exp, v, "#599");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_tbl ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+
+</table>";
+		Assert.AreEqual (exp, v, "#600");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_tbl ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#601");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_tbl ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#602");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_tbl ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#603");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_tbl ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+
+</table>";
+		Assert.AreEqual (exp, v, "#604");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_tbl ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(3,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(4,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#605");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_tbl ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#606");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_tbl ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(6,Item,6)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#607");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_tbl ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(6,Item,6)</td><td class=""Item7"">(7,Item,7)</td><td class=""Item8"">(8,Item,8)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#608");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_tbl ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
+	</tr><tr>
+		<td class=""Item6"">(6,Item,6)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#609");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_tbl ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+
+</table>";
+		Assert.AreEqual (exp, v, "#610");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_tbl ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#611");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_tbl ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(1,Item,1)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#612");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_tbl ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(3,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(4,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#613");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_tbl ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+
+</table>";
+		Assert.AreEqual (exp, v, "#614");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_tbl ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td>
+	</tr><tr>
+		<td class=""Item1"">(1,Item,1)</td>
+	</tr><tr>
+		<td class=""Item2"">(2,Item,2)</td>
+	</tr><tr>
+		<td class=""Item3"">(3,Item,3)</td>
+	</tr><tr>
+		<td class=""Item4"">(4,Item,4)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#615");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_tbl ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item2"">(1,Item,2)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td><td class=""Item3"">(3,Item,3)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#616");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_tbl ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table class=""mainstyle"" border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item4"">(1,Item,4)</td>
+	</tr><tr>
+		<td class=""Item1"">(2,Item,1)</td><td class=""Item5"">(3,Item,5)</td>
+	</tr><tr>
+		<td class=""Item2"">(4,Item,2)</td><td class=""Item6"">(5,Item,6)</td>
+	</tr><tr>
+		<td class=""Item3"">(6,Item,3)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#617");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_tbl ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item3"">(1,Item,3)</td><td class=""Item6"">(2,Item,6)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item7"">(5,Item,7)</td>
+	</tr><tr>
+		<td class=""Item2"">(6,Item,2)</td><td class=""Item5"">(7,Item,5)</td><td class=""Item8"">(8,Item,8)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#618");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_tbl ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Table
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
+		string exp = @"<table border=""0"">
+	<tr>
+		<td class=""Item0"">(0,Item,0)</td><td class=""Item3"">(1,Item,3)</td><td class=""Item5"">(2,Item,5)</td>
+	</tr><tr>
+		<td class=""Item1"">(3,Item,1)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item6"">(5,Item,6)</td>
+	</tr><tr>
+		<td class=""Item2"">(6,Item,2)</td>
+	</tr>
+</table>";
+		Assert.AreEqual (exp, v, "#619");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_horiz_flow ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span class=""mainstyle""></span>";
+		Assert.AreEqual (exp, v, "#620");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_horiz_flow ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)</span>";
+		Assert.AreEqual (exp, v, "#621");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_horiz_flow ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)</span>";
+		Assert.AreEqual (exp, v, "#622");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_horiz_flow ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)</span>";
+		Assert.AreEqual (exp, v, "#623");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_horiz_flow ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span class=""mainstyle""></span>";
+		Assert.AreEqual (exp, v, "#624");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_horiz_flow ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Item,1)<br>(2,Item,2)<br>(3,Item,3)<br>(4,Item,4)<br></span>";
+		Assert.AreEqual (exp, v, "#625");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_horiz_flow ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)<br>(2,Item,2)(3,Item,3)<br></span>";
+		Assert.AreEqual (exp, v, "#626");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_horiz_flow ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)<br>(2,Item,2)(3,Item,3)<br>(4,Item,4)(5,Item,5)<br>(6,Item,6)<br></span>";
+		Assert.AreEqual (exp, v, "#627");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_horiz_flow ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span>(0,Item,0)(1,Item,1)(2,Item,2)<br>(3,Item,3)(4,Item,4)(5,Item,5)<br>(6,Item,6)(7,Item,7)(8,Item,8)<br></span>";
+		Assert.AreEqual (exp, v, "#628");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_horiz_flow ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Horizontal
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span>(0,Item,0)(1,Item,1)(2,Item,2)<br>(3,Item,3)(4,Item,4)(5,Item,5)<br>(6,Item,6)<br></span>";
+		Assert.AreEqual (exp, v, "#629");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_0itms_vert_flow ()
+	{
+ 		// cols              : 0
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span class=""mainstyle""></span>";
+		Assert.AreEqual (exp, v, "#630");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_1itms_vert_flow ()
+	{
+ 		// cols              : 0
+		// cnt               : 1
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)</span>";
+		Assert.AreEqual (exp, v, "#631");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_2itms_vert_flow ()
+	{
+ 		// cols              : 0
+		// cnt               : 2
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Item,1)</span>";
+		Assert.AreEqual (exp, v, "#632");
+	}
+
+
+	[Test]
+	public void RepeatInfo_0cols_5itms_vert_flow ()
+	{
+ 		// cols              : 0
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Item,1)<br>(2,Item,2)<br>(3,Item,3)<br>(4,Item,4)</span>";
+		Assert.AreEqual (exp, v, "#633");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_0itms_vert_flow ()
+	{
+ 		// cols              : 1
+		// cnt               : 0
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span class=""mainstyle""></span>";
+		Assert.AreEqual (exp, v, "#634");
+	}
+
+
+	[Test]
+	public void RepeatInfo_1cols_5itms_vert_flow ()
+	{
+ 		// cols              : 1
+		// cnt               : 5
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)<br>(1,Item,1)<br>(2,Item,2)<br>(3,Item,3)<br>(4,Item,4)</span>";
+		Assert.AreEqual (exp, v, "#635");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_4itms_vert_flow ()
+	{
+ 		// cols              : 2
+		// cnt               : 4
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,2)<br>(2,Item,1)(3,Item,3)</span>";
+		Assert.AreEqual (exp, v, "#636");
+	}
+
+
+	[Test]
+	public void RepeatInfo_2cols_7itms_vert_flow ()
+	{
+ 		// cols              : 2
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,4)<br>(2,Item,1)(3,Item,5)<br>(4,Item,2)(5,Item,6)<br>(6,Item,3)</span>";
+		Assert.AreEqual (exp, v, "#637");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_9itms_vert_flow ()
+	{
+ 		// cols              : 3
+		// cnt               : 9
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span>(0,Item,0)(1,Item,3)(2,Item,6)<br>(3,Item,1)(4,Item,4)(5,Item,7)<br>(6,Item,2)(7,Item,5)(8,Item,8)</span>";
+		Assert.AreEqual (exp, v, "#638");
+	}
+
+
+	[Test]
+	public void RepeatInfo_3cols_7itms_vert_flow ()
+	{
+ 		// cols              : 3
+		// cnt               : 7
+		// RepeatDirection   : Vertical
+		// RepeatLayout      : Flow
+		// OuterTableImplied : False
+		// Header            : False
+		// Footer            : False
+		// Separator         : False
+
+
+		string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
+		string exp = @"<span>(0,Item,0)(1,Item,3)(2,Item,5)<br>(3,Item,1)(4,Item,4)(5,Item,6)<br>(6,Item,2)</span>";
+		Assert.AreEqual (exp, v, "#639");
+	}
+
+
+}
+}
+#endif

+ 313 - 0
mcs/class/System.Web/Test/System.Web.UI.WebControls/RepeatInfoTest.gen.cs

@@ -0,0 +1,313 @@
+//
+// Autogen RepeatInfoTest.auto.cs
+//
+// Author:
+//	Ben Maurer <[email protected]>
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System;
+using System.IO;
+
+
+class X {
+	//
+	// KEEP THIS IN SYNC WITH THE ONE IN QUOTES!
+	//
+	public class RepeatInfoUser : IRepeatInfoUser {
+
+		private bool footer;
+		private bool header;
+		private bool separators;
+		private int count;
+		private int counter;
+
+
+		public RepeatInfoUser (bool header, bool footer, bool separators, int count)
+		{
+			this.footer = footer;
+			this.header = header;
+			this.separators = separators;
+			this.count = count;
+		}
+
+		static HtmlTextWriter GetWriter ()
+		{
+			StringWriter sw = new StringWriter ();
+			sw.NewLine = "\n";
+			return new HtmlTextWriter (sw);
+		}
+
+		public static string DoTest (int cols, int cnt, RepeatDirection d, RepeatLayout l, bool OuterTableImplied, bool hdr, bool ftr, bool sep)
+		{
+			HtmlTextWriter htw = GetWriter ();
+			RepeatInfo ri = new RepeatInfo ();
+			ri.RepeatColumns = cols;
+			ri.RepeatDirection = d;
+			ri.RepeatLayout = l;
+			ri.OuterTableImplied = OuterTableImplied;
+			// get some variation in if we use style or not
+			Style s = new Style ();
+			if (cols != 3)
+				s.CssClass = "mainstyle";
+			
+			ri.RenderRepeater (htw, new RepeatInfoUser (hdr, ftr, sep, cnt), s, new DataList ());
+			return htw.InnerWriter.ToString ();
+		}
+
+
+		public bool HasFooter {
+			get { return footer; }
+		}
+
+		public bool HasHeader {
+			get { return header; }
+		}
+		
+		public bool HasSeparators {
+			get { return separators; }
+		}
+
+		public int RepeatedItemCount {
+			get { return count; }
+		}
+
+		public Style GetItemStyle (ListItemType itemType, int repeatIndex)
+		{
+			Style s = new Style ();
+			s.CssClass = String.Format ("{0}{1}", itemType, repeatIndex);
+			return s;
+		}
+
+		public void RenderItem (ListItemType itemType, int repeatIndex, RepeatInfo repeatInfo, HtmlTextWriter writer)
+		{
+			writer.Write ("({0},{1},{2})", counter++, itemType, repeatIndex);
+		}
+	}
+
+	static void Main ()
+	{
+#if NET_2_0
+	  Console.WriteLine ("#if NET_2_0");
+#else
+	  Console.WriteLine ("#if !NET_2_0");
+#endif
+
+		Console.WriteLine (@"
+// THIS IS AUTOGENERATED DO NOT EDIT
+//
+// Authors:
+//    Ben Maurer ([email protected])
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// ""Software""), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+using System.ComponentModel;
+using System.Drawing;
+using System.IO;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+using NUnit.Framework;
+namespace MonoTests.System.Web.UI.WebControls {
+[TestFixture]
+public class RepeatInfo_Autogen {
+	public class RepeatInfoUser : IRepeatInfoUser {
+
+		private bool footer;
+		private bool header;
+		private bool separators;
+		private int count;
+		private int counter;
+
+
+		public RepeatInfoUser (bool header, bool footer, bool separators, int count)
+		{
+			this.footer = footer;
+			this.header = header;
+			this.separators = separators;
+			this.count = count;
+		}
+
+		static HtmlTextWriter GetWriter ()
+		{
+			StringWriter sw = new StringWriter ();
+			sw.NewLine = ""\n"";
+			return new HtmlTextWriter (sw);
+		}
+
+		public static string DoTest (int cols, int cnt, RepeatDirection d, RepeatLayout l, bool OuterTableImplied, bool hdr, bool ftr, bool sep)
+		{
+			HtmlTextWriter htw = GetWriter ();
+			RepeatInfo ri = new RepeatInfo ();
+			ri.RepeatColumns = cols;
+			ri.RepeatDirection = d;
+			ri.RepeatLayout = l;
+			ri.OuterTableImplied = OuterTableImplied;
+			Style s = new Style ();
+			if (cols != 3)
+				s.CssClass = ""mainstyle"";
+
+			ri.RenderRepeater (htw, new RepeatInfoUser (hdr, ftr, sep, cnt), s, new DataList ());
+			return htw.InnerWriter.ToString ();
+		}
+
+
+		public bool HasFooter {
+			get { return footer; }
+		}
+
+		public bool HasHeader {
+			get { return header; }
+		}
+		
+		public bool HasSeparators {
+			get { return separators; }
+		}
+
+		public int RepeatedItemCount {
+			get { return count; }
+		}
+
+		public Style GetItemStyle (ListItemType itemType, int repeatIndex)
+		{
+			Style s = new Style ();
+			s.CssClass = String.Format (""{0}{1}"", itemType, repeatIndex);
+			return s;
+		}
+
+		public void RenderItem (ListItemType itemType, int repeatIndex, RepeatInfo repeatInfo, HtmlTextWriter writer)
+		{
+			writer.Write (""({0},{1},{2})"", counter++, itemType, repeatIndex);
+		}
+	}");
+		
+		
+		int num = 0;
+		int [][] combos = {
+			new int [] {0, 0},
+			new int [] {0, 1},
+			new int [] {0, 2},
+			new int [] {0, 5},
+			new int [] {1, 0},
+			new int [] {1, 5},
+			new int [] {2, 4},
+			new int [] {2, 7},
+			new int [] {3, 9},
+			new int [] {3, 7}
+		};
+		
+		
+		for (int i = 0; i < (1 << 6); i ++) {
+			RepeatDirection d = (RepeatDirection) (i & (1 << 0));
+			RepeatLayout l    = (RepeatLayout)    ((i & (1 << 1)) >> 1);
+			bool oti          =                   (i & (1 << 2)) == 0;
+			bool hdr          =                   (i & (1 << 3)) == 0;
+			bool ftr          =                   (i & (1 << 4)) == 0;
+			bool sep          =                   (i & (1 << 5)) == 0;
+
+			foreach (int [] col_cnt in combos) {
+				string nm = String.Format ("RepeatInfo_{0}cols_{1}itms_{2}_{3}{4}{5}{6}{7}",
+						col_cnt [0],
+						col_cnt [1],
+						d == RepeatDirection.Vertical ? "vert" : "horiz",
+						l == RepeatLayout.Flow ? "flow" : "tbl",
+						oti ? "_otrtblimp" : "",
+						hdr ? "_hdr" : "",
+						ftr ? "_ftr" : "",
+						sep ? "_sep" : "");
+				Console.WriteLine (@"
+	[Test]
+	public void {0} ()
+	{{
+ 		// cols              : {1}
+		// cnt               : {2}
+		// RepeatDirection   : {3}
+		// RepeatLayout      : {4}
+		// OuterTableImplied : {5}
+		// Header            : {6}
+		// Footer            : {7}
+		// Separator         : {8}
+",
+						nm,
+						col_cnt [0],
+						col_cnt [1],
+						d,
+						l,
+						oti,
+						hdr,
+						ftr,
+						sep
+					);
+				string exp = RepeatInfoUser.DoTest (col_cnt [0], col_cnt [1], d, l, oti, hdr, ftr, sep).Replace (@"""", @"""""");
+				Console.WriteLine (@"
+		string v = RepeatInfoUser.DoTest ({0}, {1}, RepeatDirection.{2}, RepeatLayout.{3}, {4}, {5}, {6}, {7});
+		string exp = @""{8}"";
+		Assert.AreEqual (exp, v, ""#{9}"");
+	}}
+",
+						
+						col_cnt [0],
+						col_cnt [1],
+						d,
+						l,
+						oti ? "true" : "false",
+						hdr ? "true" : "false",
+						ftr ? "true" : "false",
+						sep ? "true" : "false",
+						exp,
+						num ++
+					);
+			}
+		}
+		Console.WriteLine (@"
+}
+}
+#endif");
+	}
+}

+ 133 - 0
mcs/class/System.Web/Test/System.Web.UI.WebControls/TextBoxTest.cs

@@ -0,0 +1,133 @@
+//
+// Tests for System.Web.UI.WebControls.TextBox.cs 
+//
+// Author:
+//     Ben Maurer ([email protected])
+//
+
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using NUnit.Framework;
+using System;
+using System.IO;
+using System.Globalization;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace MonoTests.System.Web.UI.WebControls {
+	
+	[TestFixture]	
+	public class TextBoxTest {
+		class Poker : TextBox {
+			public new void AddParsedSubObject (object o)
+			{
+				base.AddParsedSubObject (o);
+			}
+
+			public void TrackState () 
+			{
+				TrackViewState ();
+			}
+			
+			public object SaveState ()
+			{
+				foreach (string s in ViewState.Keys)
+					Console.WriteLine ("{0}: {1}", s, ViewState[s]);
+
+				return SaveViewState ();
+			}
+			
+			public void LoadState (object o)
+			{
+				LoadViewState (o);
+			}
+			
+			public string Render ()
+			{
+				StringWriter sw = new StringWriter ();
+				sw.NewLine = "\n";
+				HtmlTextWriter writer = new HtmlTextWriter (sw);
+				base.Render (writer);
+				return writer.InnerWriter.ToString ();
+			}			
+		}
+
+		[Test]
+		public void MultilineRenderEscape ()
+		{
+			Poker t = new Poker ();
+			t.TextMode = TextBoxMode.MultiLine;
+			t.Text = "</textarea>";
+#if NET_2_0
+			string exp = "<textarea rows=\"0\" cols=\"0\">&lt;/textarea&gt;</textarea>";
+#else
+			string exp = "<textarea name>&lt;/textarea&gt;</textarea>";
+#endif
+
+			Assert.AreEqual (exp, t.Render ());
+		}
+
+
+#if NET_2_0
+		[Test]
+		public void ValidationProperties ()
+		{
+			Poker t = new Poker ();
+
+			// initial values
+			Assert.AreEqual (false, t.CausesValidation, "A1");
+			Assert.AreEqual ("", t.ValidationGroup, "A2");
+
+			t.ValidationGroup = "VG";
+			Assert.AreEqual ("VG", t.ValidationGroup, "A3");
+
+			t.CausesValidation = true;
+			Assert.IsTrue (t.CausesValidation, "A4");
+		}
+
+		[Test]
+		public void ViewState ()
+		{
+			Poker t = new Poker ();
+
+			t.TrackState();
+
+			t.ValidationGroup = "VG";
+			t.CausesValidation = true;
+
+			object s = t.SaveState ();
+			Console.WriteLine ("state = {0}", s == null ? "null" : "not-null");
+
+			Poker copy = new Poker ();
+
+			copy.LoadState (s);
+
+			Assert.AreEqual ("VG", copy.ValidationGroup, "A1");
+			Assert.IsTrue (copy.CausesValidation, "A2");
+		}
+#endif
+	}
+}
+

+ 57 - 0
mcs/class/System.Web/Test/System.Web.UI.WebControls/UnitConverterTest.cs

@@ -0,0 +1,57 @@
+//
+// Tests for System.Web.UI.WebControls.Unit.cs 
+//
+// Author:
+//	Ben Maurer <[email protected]>
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using NUnit.Framework;
+using System;
+using System.Globalization;
+using System.Web;
+using System.Web.UI.WebControls;
+
+namespace MonoTests.System.Web.UI.WebControls {
+	class UnitConverterTest {
+		UnitConverter c = new UnitConverter ();
+		
+		[Test]
+		public void TestConvertTo ()
+		{
+			Assert.Equals (c.ConvertTo (new Unit (1), typeof (string)), new Unit (1).ToString ());
+			Assert.Equals (c.ConvertTo ("1 px", typeof (Unit)), new Unit (1));
+			Assert.IsTrue (c.CanConvertTo (typeof (string)));
+			Assert.IsTrue (c.CanConvertTo (typeof (Unit)));	
+		}
+
+		[Test]
+		public void TestConvertFrom ()
+		{
+			Assert.Equals (c.ConvertFrom (new Unit (1)), new Unit (1).ToString ());
+			Assert.Equals (c.ConvertFrom ("1 px"), new Unit (1));
+			Assert.IsTrue (c.CanConvertFrom (typeof (string)));
+			Assert.IsTrue (c.CanConvertFrom (typeof (Unit)));	
+		}
+	}
+}

+ 110 - 0
mcs/class/System.Web/Test/System.Web.UI/ChangeLog

@@ -1,3 +1,113 @@
+2005-08-25  Sebastien Pouliot  <[email protected]>
+
+	* TestUrlPropertyAttribute.cs: Fixed tests to match new beta2 API (and
+	so it stops throwing MissingMethodException on MS runtime).
+
+2005-08-22  Sebastien Pouliot  <[email protected]>
+
+	* PageTest.cs: Added test cases for using Request with an overrided 
+	Context property (as Page.Request should be the same as 
+	Page.Context.Request). Doesn't work as expected.
+
+2005-08-20  Sebastien Pouliot  <[email protected]>
+
+	* PageTest.cs: Added a test for overriding Context. We're not playing
+	fairly with virtual properties (and probably not just that one) as we
+	use the private variable inside the class. This means that overriding
+	the property without calling the base class doesn't work as expected.
+
+2005-08-05  Ben Maurer  <[email protected]>
+
+	* HtmlTextWriterTest.cs: Option is rendered as a block.
+
+2005-07-21  Peter Dennis Bartok  <[email protected]>
+
+	* PageTest.cs: Added new test file, added exception test for
+	  Request property
+
+2005-07-18  Peter Dennis Bartok  <[email protected]>
+
+	* ControlTest.cs: Added test file for Control class, initially
+	  contains only IDataBindingsAccessor test
+
+2005-07-18  Ben Maurer  <[email protected]>
+
+	* HtmlTextWriterTest.cs: I fixed the nested indents
+
+2005-07-18  Ben Maurer  <[email protected]>
+
+	* HtmlTextWriterTest.cs: Enable some indentation tests, others
+	need to be disabled
+
+2005-07-14  Duncan Mak  <[email protected]>
+
+	* DataBindingHandlerAttributeTest.cs (TestDefaultConstructor):
+	This test should pass now.
+
+2005-07-12  Ben Maurer  <[email protected]>
+
+	* HtmlTextWriterTest.cs: Enable some tests
+
+2005-07-12  Sebastien Pouliot  <[email protected]>
+
+	* HtmlTextWriterTest.cs: Reactivated the AddStyleAttribute test case
+	with the right value for 1.x (as current code doesn't match the 
+	expected results).
+
+2005-07-11  Ben Maurer  <[email protected]>
+
+	* HtmlTextWriterTest.cs: The style attr thing below seems to be a
+	2.0 ism. Add tests for indentation.
+
+2005-07-11  Sebastien Pouliot  <[email protected]>
+
+	* HtmlTextWriterTest.cs: Few more tests including a non working one 
+	for AddStyleAttribute.
+
+2005-07-11  Ben Maurer  <[email protected]>
+
+	* HtmlTextWriterTest.cs: Add a test for popping end tags working
+	correctly.
+
+	* ToolboxDataAttributeTest.cs: Don't depend on the way that hash
+	values are generated. Also, use built strings rather than stuff
+	from ldstr to make the test a bit stronger.
+
+	* PropertyConverterTest.cs: Make this pass on MSFT 1.1
+
+2005-07-09  Sebastien Pouliot  <[email protected]>
+
+	* DataBindingHandlerAttributeTest.cs: Fix compilation error where
+	System.Object is expected from MonoTests.System namespace. The test
+	TestDefaultHandlerTypeName still throws a NullReferenceException.
+
+2005-07-09  Duncan Mak  <[email protected]>
+
+	* DataBindingHandlerAttributeTest.cs: Aded new test. Used to find
+	out how a typename is derived from a Type. (It uses
+	AssemblyQualifiedName, and not FullName)
+	
+2005-07-08  Ben Maurer  <[email protected]>
+
+	* HtmlTextWriterTest.cs: Update notworking
+
+2005-07-08  Jackson Harper  <[email protected]>
+
+	* ToolbarDataAttributeTest.cs: New test.
+
+2005-07-07  Jackson Harper  <[email protected]>
+
+	* PropertyConverterTest.cs: New tests.
+
+2005-07-07  Ben Maurer  <[email protected]>
+
+	* HtmlTextWriterTest.cs: More tests.
+
+2005-07-07  Sebastien Pouliot  <[email protected]>
+
+	* HtmlTextWriterTest.cs: New. Unit tests for buglets found during
+	implementations of HtmlControls.
+
 2004-10-12 Sanjay Gupta <[email protected]>
 
 	* TestUrlPropertyAttribute.cs: Added UrlPropertyAttribute test cases.

+ 188 - 0
mcs/class/System.Web/Test/System.Web.UI/CleanHtmlTextWriter.cs

@@ -0,0 +1,188 @@
+//
+// CleanHtmlTextWriter.cs
+//
+// An HtmlTextWriter that cleans stuff up for you a bit. Helps writing tests
+// because you do not have to reproduce the attribute order, etc.
+// 
+// Author:
+//     Ben Maurer  <[email protected]>
+// 
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+//#define TEST_THIS
+
+using System.Web.UI;
+using System;
+using System.IO;
+using System.Collections;
+
+class CleanHtmlTextWriter : HtmlTextWriter {
+	public CleanHtmlTextWriter (TextWriter tw) : base (tw)
+	{
+		tw.NewLine = "\n";
+	}
+
+	ArrayList pending_attrs = new ArrayList ();
+	ArrayList pending_styles = new ArrayList ();
+
+	class PendingStyle : IComparable {
+		public string name, value;
+		public HtmlTextWriterStyle s;		
+		
+		public PendingStyle (string name, string value, HtmlTextWriterStyle s)
+		{
+			this.name = name;
+			this.value = value;
+			this.s = s;
+		}
+		
+		public int CompareTo (object o)
+		{
+			return string.CompareOrdinal (name, ((PendingStyle) o).name);
+		}
+	}
+	
+	class PendingAttribute : IComparable {
+		public string name, value;
+		public HtmlTextWriterAttribute a;
+		public bool encode;
+		public bool know_encode;
+		
+		public PendingAttribute (string name, string value, HtmlTextWriterAttribute a, bool encode, bool know_encode)
+		{
+			this.name = name;
+			this.value = value;
+			this.a = a;
+			this.encode = encode;
+			this.know_encode = know_encode;
+		}
+
+		public int CompareTo (object o)
+		{
+			return string.CompareOrdinal (name, ((PendingAttribute) o).name);
+		}	
+	}
+	bool filtering = false;
+
+	//
+	// Some idiot at microsoft did not do a sanity check on this api,
+	// thus forcing me to deal with some serious pain.
+	//
+	public override void AddAttribute (HtmlTextWriterAttribute key, string value)
+	{
+		if (filtering) {
+			base.AddAttribute (key, value);
+			return;
+		}
+		
+		pending_attrs.Add (new PendingAttribute (GetAttributeName (key), value, key, false, false));
+	}
+
+	public override void AddAttribute (HtmlTextWriterAttribute key, string value, bool fEncode)
+	{
+		if (filtering) {
+			base.AddAttribute (key, value, fEncode);
+			return;
+		}
+		
+		pending_attrs.Add (new PendingAttribute (GetAttributeName (key), value, key, fEncode, true));
+	}
+	
+	public override void AddAttribute (string name, string value)
+	{
+		if (filtering) {
+			base.AddAttribute (name, value);
+			return;
+		}
+				
+		pending_attrs.Add (new PendingAttribute (name, value, 0, false, false));
+	}
+	
+	public override void AddAttribute (string name, string value, bool fEncode)
+	{
+		if (filtering) {
+			base.AddAttribute (name, value, fEncode);
+			return;
+		}
+		
+		pending_attrs.Add (new PendingAttribute (name, value, 0, fEncode, true));
+	}
+	
+	protected override void AddAttribute (string name, string value, HtmlTextWriterAttribute key)
+	{
+		if (filtering) {
+			base.AddAttribute (name, value, key);
+			return;
+		}
+		
+		pending_attrs.Add (new PendingAttribute (name, value, key, false, false));
+	}
+
+	// TODO: use the above retardation in this stuff
+	protected override void AddStyleAttribute (string name, string value, HtmlTextWriterStyle s)
+	{
+		pending_styles.Add (new PendingStyle (name, value, s));
+	}
+
+	protected override void FilterAttributes ()
+	{
+		pending_attrs.Sort ();
+		pending_styles.Sort ();
+
+		filtering = true;
+		foreach (PendingAttribute a in pending_attrs) {
+			if (a.a == 0) {
+				if (a.know_encode)
+					base.AddAttribute (a.name, a.value, a.encode);
+				else
+					base.AddAttribute (a.name, a.value, a.encode);
+			} else {
+				if (a.know_encode)
+					base.AddAttribute (a.a, a.value, a.encode);
+				else
+					base.AddAttribute (a.a, a.value, a.encode);
+			}
+		}
+		
+		foreach (PendingStyle s in pending_styles)
+			base.AddStyleAttribute (s.name, s.value, s.s);
+
+		filtering = false;
+		pending_attrs.Clear ();
+		pending_styles.Clear ();
+		
+		base.FilterAttributes ();
+	}
+
+#if TEST_THIS
+	static void Main ()
+	{
+		HtmlTextWriter w = new CleanHtmlTextWriter (Console.Out);
+		w.AddAttribute (HtmlTextWriterAttribute.Name, "abcd");
+		w.AddAttribute (HtmlTextWriterAttribute.Id, "efg");
+		w.RenderBeginTag (HtmlTextWriterTag.Input);
+		w.RenderEndTag ();
+		Console.WriteLine ();
+	}
+#endif
+}

+ 357 - 0
mcs/class/System.Web/Test/System.Web.UI/HtmlTextWriterTest.cs

@@ -0,0 +1,357 @@
+//
+// HtmlTextWriterTest.cs
+//	- Unit tests for System.Web.UI.HtmlTextWriter
+//
+// Authors:
+//	Sebastien Pouliot  <[email protected]>
+//	Ben Maurer <[email protected]>
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.IO;
+using System.Web.UI;
+
+using HtwTag = System.Web.UI.HtmlTextWriterTag;
+using HtwAttribute = System.Web.UI.HtmlTextWriterAttribute;
+using HtwStyle = System.Web.UI.HtmlTextWriterStyle;
+
+using NUnit.Framework;
+
+namespace MonoTests.System.Web.UI {
+
+	[TestFixture]
+	public class HtmlTextWriterTest {
+
+		StringWriter sw;
+		HtmlTextWriter w;
+
+		[SetUp]
+		public void SetupTests ()
+		{
+			sw = new StringWriter ();
+			sw.NewLine = "\n"; // Keep sanity.
+			w = new HtmlTextWriter (sw);
+		}
+		
+		[Test]
+		public void DefaultConstFields ()
+		{
+			Assert.AreEqual ("=\"", HtmlTextWriter.EqualsDoubleQuoteString, "EqualsDoubleQuoteString");
+			// add more
+		}
+
+		[Test]
+		public void WriteAttributes_NullValue ()
+		{
+			w.WriteAttribute ("name", null);
+			Assert.AreEqual (" name", w.InnerWriter.ToString ());
+		}
+
+		[Test]
+		public void Write1 ()
+		{
+			w.RenderBeginTag ("a");
+			w.RenderEndTag ();
+
+			Assert.AreEqual ("<a></a>", sw.ToString ());
+		}
+
+		[Test]
+		public void WriteATagByKey ()
+		{
+			w.RenderBeginTag (HtwTag.A);
+			w.RenderEndTag ();
+
+			Assert.AreEqual ("<a></a>", sw.ToString ());
+		}
+
+		[Test]
+		public void WriteDivTagByKey ()
+		{
+			w.RenderBeginTag (HtwTag.Div);
+			w.RenderEndTag ();
+
+			Assert.AreEqual ("<div>\n\n</div>", sw.ToString ());
+		}
+
+		[Test]
+		public void WriteOptionTagByKey ()
+		{
+			w.RenderBeginTag (HtwTag.Option);
+			w.RenderEndTag ();
+
+			Assert.AreEqual ("<option>\n\n</option>", sw.ToString ());
+		}
+
+		[Test]
+		public void WriteDivAndATagByKey ()
+		{
+			w.RenderBeginTag (HtwTag.Div);
+			w.RenderBeginTag (HtwTag.A);
+			w.RenderEndTag ();
+			w.RenderEndTag ();
+
+			Assert.AreEqual ("<div>\n\t<a></a>\n</div>", sw.ToString ());
+		}
+
+		[Test]
+		public void NestedIndent ()
+		{
+			w.RenderBeginTag (HtwTag.Div);
+			w.RenderBeginTag (HtwTag.Div);
+			w.RenderEndTag ();
+			w.RenderEndTag ();
+
+			Assert.AreEqual ("<div>\n\t<div>\n\n\t</div>\n</div>", sw.ToString ());
+		}
+		
+		[Test]
+		public void WriteDivAndATagByKeyWithAttr ()
+		{
+			w.RenderBeginTag (HtwTag.Div);
+
+			w.AddAttribute (HtwAttribute.Href, "http://slashdot.org/");
+			w.RenderBeginTag (HtwTag.A);
+			w.RenderEndTag ();
+			w.RenderEndTag ();
+			Assert.AreEqual ("<div>\n\t<a href=\"http://slashdot.org/\"></a>\n</div>", sw.ToString ());
+		}
+		
+		[Test]
+		public void WriteDivTagWithStyle ()
+		{
+			w.AddAttribute ("id", "foo");
+			w.AddAttribute ("style", "align:left");
+			w.AddStyleAttribute (HtwStyle.Color, "red");
+			w.AddStyleAttribute (HtwStyle.FontWeight, "bold");
+			w.RenderBeginTag (HtwTag.Div);
+			w.RenderEndTag ();
+			Assert.AreEqual ("<div id=\"foo\" style=\"color:red;font-weight:bold;align:left\">\n\n</div>", sw.ToString ());
+		}
+
+		[Test]
+		[Category ("NotWorking")]
+		public void EscapeJScript ()
+		{
+			w.AddAttribute (HtwAttribute.Onclick, "this.style.color = \"red\"");
+			w.RenderBeginTag (HtwTag.Div);
+			w.RenderEndTag ();
+			Assert.AreEqual ("<div onclick=\"this.style.color = &quot;red&quot;\">\n\n</div>", sw.ToString ());
+		}
+
+		[Test]
+		[Category ("NotWorking")]
+		public void EscapeUrl ()
+		{
+			w.AddAttribute (HtwAttribute.Href, "http://www.google.com/search?hl=en&q=i+love+nunit&btnG=Google+Search");
+			w.RenderBeginTag (HtwTag.A);
+			w.RenderEndTag ();
+			Assert.AreEqual ("<a href=\"http://www.google.com/search?hl=en&amp;q=i+love+nunit&amp;btnG=Google+Search\"></a>", sw.ToString ());
+		}
+
+		[Test]
+		[Category ("NotWorking")]
+		public void NoEscapeAttrName ()
+		{
+			w.AddAttribute (HtwAttribute.Name, "cookies&cream");
+			w.RenderBeginTag (HtwTag.Div);
+			w.RenderEndTag ();
+			Assert.AreEqual ("<div name=\"cookies&cream\">\n\n</div>", sw.ToString ());
+		}	
+
+		[Test]
+		public void WriteInput ()
+		{
+			w.RenderBeginTag (HtwTag.Input);
+			w.RenderEndTag ();
+			Assert.AreEqual ("<input />", sw.ToString ());
+		}
+		[Test]
+		public void WriteInputStringTag ()
+		{
+			w.RenderBeginTag ("input");
+			w.RenderEndTag ();
+			Assert.AreEqual ("<input />", sw.ToString ());
+		}
+
+		[Test]
+		public void WriteDivStringTag ()
+		{
+			w.RenderBeginTag ("div");
+			w.RenderEndTag ();
+			Assert.AreEqual ("<div>\n\n</div>", sw.ToString ());
+		}
+
+		[Test]
+		public void WriteUnknownTag ()
+		{
+			w.RenderBeginTag ("somerandomtag");
+			w.RenderEndTag ();
+			Assert.AreEqual ("<somerandomtag>\n\n</somerandomtag>", sw.ToString ());	
+		}
+		
+		[Test]
+		public void WritePartialBlock ()
+		{
+			w.RenderBeginTag ("div");
+			Assert.AreEqual ("<div>\n", sw.ToString ());	
+		}
+		
+		[Test]
+		public void WritePartialInline ()
+		{
+			w.RenderBeginTag ("a");
+			Assert.AreEqual ("<a>", sw.ToString ());	
+		}
+
+		[Test]
+		public void WritePartialSelfClosing ()
+		{
+			w.RenderBeginTag ("input");
+			Assert.AreEqual ("<input />", sw.ToString ());	
+		}
+
+		[Test]
+		[ExpectedException (typeof (InvalidOperationException))]
+		public void NoMatchingClose ()
+		{
+			w.RenderEndTag ();
+		}
+		
+		[Test]
+		public void AttributeAfterBegin ()
+		{
+			w.RenderBeginTag ("div");
+			w.AddAttribute ("class", "foo");
+			w.RenderEndTag ();
+			w.RenderBeginTag ("div");
+			w.RenderEndTag ();
+			
+			Assert.AreEqual ("<div>\n\n</div><div class=\"foo\">\n\n</div>", sw.ToString ());	
+		}
+		
+		[Test]
+		public void StyleAttribute ()
+		{
+			w.WriteStyleAttribute ("a", "b");
+			
+			Assert.AreEqual ("a:b;", sw.ToString ());	
+		}
+
+		[Test]
+		[Category ("NotWorking")]
+		public void TagByNameGetsCaseChanged ()
+		{
+			w.RenderBeginTag ("InPuT");
+			Assert.AreEqual ("<input />", sw.ToString ());	
+		}
+
+		[Test]
+		public void EnsurePopWorks ()
+		{
+			w.RenderBeginTag (HtwTag.A);
+			w.RenderBeginTag (HtwTag.B);
+			w.RenderEndTag ();
+			w.RenderEndTag ();
+
+			Assert.AreEqual ("<a><b></b></a>", sw.ToString ());
+		}
+
+		[Test]
+		public void AddAttributeTwice_SameValue ()
+		{
+			w.AddAttribute (HtmlTextWriterAttribute.Border, "0");
+			w.AddAttribute (HtmlTextWriterAttribute.Border, "0");
+			w.RenderBeginTag ("div");
+			w.RenderEndTag ();
+
+			Assert.AreEqual ("<div border=\"0\" border=\"0\">\n\n</div>", sw.ToString ());
+		}
+
+		[Test]
+		public void AddAttributeTwice_DifferentValue ()
+		{
+			w.AddAttribute (HtmlTextWriterAttribute.Border, "0");
+			w.AddAttribute (HtmlTextWriterAttribute.Border, "1");
+			w.RenderBeginTag ("div");
+			w.RenderEndTag ();
+
+			Assert.AreEqual ("<div border=\"0\" border=\"1\">\n\n</div>", sw.ToString ());
+		}
+
+		[Test]
+		public void AddStyleAttribute ()
+		{
+			w.AddStyleAttribute (HtmlTextWriterStyle.BackgroundImage, "http://www.go-mono.com/");
+			w.RenderBeginTag ("div");
+			w.RenderEndTag ();
+
+#if NET_2_0
+			Assert.AreEqual ("<div style=\"background-image:url(http://www.go-mono.com/);\">\n\n</div>", sw.ToString ());
+#else
+			// the url(...) is missing in fx 1.x
+			Assert.AreEqual ("<div style=\"background-image:http://www.go-mono.com/;\">\n\n</div>", sw.ToString ());
+#endif
+		}
+
+		[Test]
+		public void AddStyleAttribute2 ()
+		{
+			w.AddStyleAttribute (HtmlTextWriterStyle.BackgroundColor, "Aqua");
+			w.RenderBeginTag ("div");
+			w.RenderEndTag ();
+
+			Assert.AreEqual ("<div style=\"background-color:Aqua;\">\n\n</div>", sw.ToString ());
+		}
+
+		[Test]
+		public void WriteIndentation ()
+		{
+			w.RenderBeginTag (HtwTag.Div);
+			w.Write ("Hello");
+			w.RenderEndTag ();
+
+			Assert.AreEqual ("<div>\n\tHello\n</div>", sw.ToString ());
+		}
+
+		[Test]
+		public void WriteIndentation2 ()
+		{
+			w.RenderBeginTag (HtwTag.Div);
+			w.Write ("");
+			w.RenderEndTag ();
+
+			Assert.AreEqual ("<div>\n\t\n</div>", sw.ToString ());
+		}
+
+		[Test]
+		public void WriteIndentation3 ()
+		{
+			w.RenderBeginTag (HtwTag.Div);
+			w.RenderEndTag ();
+
+			Assert.AreEqual ("<div>\n\n</div>", sw.ToString ());
+		}
+	}
+}

+ 66 - 0
mcs/class/System.Web/Test/System.Web.UI/StateBagTest.cs

@@ -0,0 +1,66 @@
+//
+// Tests for System.Web.UI.StateBag
+//
+// Author:
+//	Ben Maurer ([email protected])
+//
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using NUnit.Framework;
+using System;
+using System.Collections;
+using System.Drawing;
+using System.IO;
+using System.Globalization;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace MonoTests.System.Web.UI {
+	[TestFixture]	
+	public class StateBagTest {
+		[Test]
+		public void SetValueToNull ()
+		{
+			StateBag sb = new StateBag ();
+			sb ["a"] = "a";
+			Assert.AreEqual ("a", sb ["a"], "#1");
+			sb ["a"] = null;
+			Assert.IsNull (sb ["a"], "#2");
+			Assert.AreEqual (0, sb.Count, "#3");
+		}
+
+		[Test]
+		public void SetValueToNull2 ()
+		{
+			StateBag sb = new StateBag ();
+			sb ["a"] = "a";
+			Assert.AreEqual ("a", sb ["a"], "#1");
+			((IStateManager) sb).TrackViewState ();
+			sb ["a"] = null;
+			Assert.IsNull (sb ["a"], "#2");
+			Assert.AreEqual (1, sb.Count, "#3");
+		}
+	}
+}

+ 6 - 0
mcs/class/System.Web/Test/standalone/adrotator/adrotator-size.aspx

@@ -0,0 +1,6 @@
+<%@ Page language="c#" %>
+<html>
+	<body>
+		<asp:adrotator runat="server" Width="160px" Height="60px" />
+	</body>
+</html>

+ 19 - 0
mcs/class/System.Web/Test/standalone/button/button-font-viewstate.aspx

@@ -0,0 +1,19 @@
+<!-- bug 47725 -->
+<%@ Page language="C#" %>
+<html>
+	<head>
+		<script runat="server">
+		void c (object sender, EventArgs e)
+		{
+			b.Font.Bold = !b.Font.Bold;
+		}
+		</script>
+	</head>
+	<body>
+		Clicking on this button should toggle its boldness.
+		<br />
+		<form runat="server">
+			<asp:button id="b" runat="server" Text="Test" OnClick="c" />
+		</form>
+	</body>
+</html>

+ 25 - 0
mcs/class/System.Web/Test/standalone/checkbox/checkbox-disabled-save-state.aspx

@@ -0,0 +1,25 @@
+<!-- bug 49091 -->
+<%@ Page language="c#" %>
+<html>
+	<head>
+		<script runat="server">		
+		private void BtnDisable_Click(object sender, System.EventArgs e)
+		{
+			CheckBox1.Enabled = false;
+		}
+		
+		private void BtnEnable_Click(object sender, System.EventArgs e)
+		{
+			CheckBox1.Enabled = true;
+		}
+		</script>
+	</head>
+	<body>
+		<p>Check the checkbox, click disable then enable. The checkbox should stay enabled.</p>
+		<form runat="server">
+			<asp:checkbox id="CheckBox1" runat="server" Text="Test" />
+			<asp:button onclick="BtnDisable_Click" runat="server" Text="Disable" />
+			<asp:button onclick="BtnEnable_Click" runat="server" Text="Enable" />
+		</form>
+	</body>
+</html>

+ 76 - 0
mcs/class/System.Web/Test/standalone/checkbox/checkbox-label.aspx

@@ -0,0 +1,76 @@
+<!--
+In this case, we have a checkbox inside a repeater control, which is a
+naming container. We need to make sure to use the correct attribute on
+the label element so that the browser knows how to hook up the label
+and the widget.
+-->
+
+<%@ Page Language="C#" AutoEventWireup="True" %>
+<%@ Import Namespace="System.Data" %>
+
+<html>
+<head>
+<script runat="server">
+	void Page_Load (object s, EventArgs e)
+	{
+		if (IsPostBack)
+			return;
+		
+		DataTable t = new DataTable ("t");
+		
+		t.Columns.Add (new DataColumn ("Symbol", typeof (string)));
+		t.Columns.Add (new DataColumn ("Company", typeof (string)));
+		t.Columns.Add (new DataColumn ("Price", typeof (double)));
+
+		DataSet ds = new DataSet ("ds");
+
+		ds.Tables.Add (t);
+		AddStock (t, "MSFT", "Microsoft Corp.", 25.81);
+		AddStock (t, "NOVL", "Novell Inc.", 6.17);
+		AddStock (t, "GOOG", "Google", 300.95);
+
+		rep.DataSource = ds;
+		rep.DataMember = "t";
+		rep.DataBind ();		
+	}
+
+	void AddStock (DataTable dt, string symbol, string co, double price)
+	{
+		DataRow dr = dt.NewRow ();
+		dr [0] = symbol;
+		dr [1] = co;
+		dr [2] = price;
+		dt.Rows.Add (dr);
+	}
+</script>
+</head>
+<body>
+	<asp:Label id="lbl1" runat="server" />
+	<form runat="server">
+		<asp:Repeater id="rep" runat="server">
+			<HeaderTemplate>
+				<table>
+					<thead>
+						<tr>
+						<td>Stock</td>
+						<td>Company</td>
+						<td>Price</td>
+						<td>Buy</td>
+						</tr>
+					</thead>
+			</HeaderTemplate>
+			<ItemTemplate>
+				<tr>
+					<td><%# DataBinder.Eval (Container.DataItem, "Symbol") %></td> 
+					<td><%# DataBinder.Eval (Container.DataItem, "Company") %></td>
+					<td><%# DataBinder.Eval (Container.DataItem, "Price") %></td>
+					<td><asp:checkbox id="buy" runat="server" text="Buy"/></td>
+				</tr>
+			</ItemTemplate>
+			<FooterTemplate>
+				</table>
+			</FooterTemplate>
+		</asp:Repeater>
+	</form>
+</body>
+</html>

+ 23 - 0
mcs/class/System.Web/Test/standalone/cookie/bake.aspx

@@ -0,0 +1,23 @@
+<%@ Page language="c#" AutoEventWireup="true"%>
+
+<html>
+<head>
+<script runat="server">
+
+	
+	void Page_Load (object s, EventArgs e)
+	{            
+		HttpCookie cookie = HttpContext.Current.Request.Cookies ["blah"];
+		if (cookie != null)
+			return;
+
+		HttpContext.Current.Response.Cookies ["blah"].Expires = DateTime.Now.AddMinutes(15);
+		HttpContext.Current.Response.Cookies ["blah"].Value = Guid.NewGuid ().ToString ();
+	}
+
+</script>
+
+</head>
+<body>
+</body>
+</html>

+ 218 - 0
mcs/class/System.Web/Test/standalone/datagrid/datagrid-bound-column-readonlymode.aspx

@@ -0,0 +1,218 @@
+<!-- bug 50390 -->
+<%@ Page Language="C#" %>
+<%@ Import Namespace="System.Data" %>
+ 
+<html>
+   <script runat="server">
+       DataTable Cart = new DataTable();
+      DataView CartView;   
+ 
+      void Page_Load(Object sender, EventArgs e) 
+      {
+          GetSource();
+         if (!IsPostBack)
+            BindGrid();
+      }
+ 
+      void ItemsGrid_Edit(Object sender, DataGridCommandEventArgs e) 
+      {
+         ItemsGrid.EditItemIndex = e.Item.ItemIndex;
+         BindGrid();
+      }
+ 
+      void ItemsGrid_Cancel(Object sender, DataGridCommandEventArgs e) 
+      {
+         ItemsGrid.EditItemIndex = -1;
+         BindGrid();
+      }
+ 
+      void ItemsGrid_Update(Object sender, DataGridCommandEventArgs e) 
+      {
+         TextBox qtyText = (TextBox)e.Item.Cells[3].Controls[0];
+         TextBox priceText = (TextBox)e.Item.Cells[4].Controls[0];
+ 
+         // Retrieve the updated values.
+         String item = e.Item.Cells[2].Text;
+         String qty = qtyText.Text;
+         String price = priceText.Text;
+        
+         DataRow dr;
+ 
+         CartView.RowFilter = "Item='" + item + "'";
+         if (CartView.Count > 0)
+            CartView.Delete(0);
+         CartView.RowFilter = "";
+ 
+         dr = Cart.NewRow();
+         dr[0] = Convert.ToInt32(qty);
+         dr[1] = item;
+
+         if(price[0] == '$')
+            dr[2] = Convert.ToDouble(price.Substring(1));
+         else
+            dr[2] = Convert.ToDouble(price);
+
+         Cart.Rows.Add(dr);
+ 
+         ItemsGrid.EditItemIndex = -1;
+         BindGrid();
+
+      }
+ 
+      void BindGrid() 
+      {
+         ItemsGrid.DataSource = CartView;
+         ItemsGrid.DataBind();
+      }
+
+      void GetSource()
+      {
+         if (ViewState["ShoppingCart"] == null) 
+         {     
+            DataRow dr;  
+ 
+            Cart.Columns.Add(new DataColumn("Qty", typeof(Int32)));
+            Cart.Columns.Add(new DataColumn("Item", typeof(String)));
+            Cart.Columns.Add(new DataColumn("Price", typeof(Double)));
+
+            ViewState ["ShoppingCart"] = Cart;
+             
+            // Populate the DataTable with sample data.
+            for (int i = 1; i <= 9; i++) 
+            {
+               dr = Cart.NewRow();
+               if (i % 2 != 0)
+               {
+                  dr[0] = 2;
+               }
+               else
+               {
+                  dr[0] = 1;
+               }
+               dr[1] = "Item " + i.ToString();
+               dr[2] = (1.23 * (i + 1));
+               Cart.Rows.Add(dr);
+            }
+
+         } 
+
+         else
+         {
+
+            Cart = (DataTable)ViewState["ShoppingCart"];
+
+         }         
+ 
+         // Create a DataView and specify the field to sort by.
+         CartView = new DataView(Cart);
+         CartView.Sort="Item";
+
+         return;
+
+      }
+
+      void ItemsGrid_Command(Object sender, DataGridCommandEventArgs e)
+      {
+
+         switch(((LinkButton)e.CommandSource).CommandName)
+         {
+
+            case "Delete":
+               DeleteItem(e);
+               break;
+
+            // Add other cases here, if there are multiple ButtonColumns in 
+            // the DataGrid control.
+
+            default:
+               // Do nothing.
+               break;
+
+         }
+
+      }
+
+      void DeleteItem(DataGridCommandEventArgs e)
+      {
+
+         // e.Item is the table row where the command is raised. For bound
+         // columns, the value is stored in the Text property of a TableCell.
+         TableCell itemCell = e.Item.Cells[2];
+         string item = itemCell.Text;
+
+         // Remove the selected item from the data source.         
+         CartView.RowFilter = "Item='" + item + "'";
+         if (CartView.Count > 0) 
+         {     
+            CartView.Delete(0);
+         }
+         CartView.RowFilter = "";
+
+         // Rebind the data source to refresh the DataGrid control.
+         BindGrid();
+
+      }
+ 
+   </script>
+ 
+<body>
+ 
+   <form runat="server">
+
+      <h3>DataGrid Editing Example</h3>
+ 
+      <asp:DataGrid id="ItemsGrid"
+           BorderColor="black"
+           BorderWidth="1"
+           CellPadding="3"
+           OnEditCommand="ItemsGrid_Edit"
+           OnCancelCommand="ItemsGrid_Cancel"
+           OnUpdateCommand="ItemsGrid_Update"
+           OnItemCommand="ItemsGrid_Command"
+           AutoGenerateColumns="false"
+           runat="server">
+
+         <HeaderStyle BackColor="#aaaadd">
+         </HeaderStyle>
+ 
+         <Columns>
+
+            <asp:EditCommandColumn
+                 EditText="Edit"
+                 CancelText="Cancel"
+                 UpdateText="Update" 
+                 HeaderText="Edit item">
+
+               <ItemStyle Wrap="False">
+               </ItemStyle>
+
+               <HeaderStyle Wrap="False">
+               </HeaderStyle>
+
+            </asp:EditCommandColumn>
+
+            <asp:ButtonColumn 
+                 HeaderText="Delete item" 
+                 ButtonType="LinkButton" 
+                 Text="Delete" 
+                 CommandName="Delete"/>  
+ 
+            <asp:BoundColumn HeaderText="Item" 
+                 ReadOnly="True" 
+                 DataField="Item"/>
+ 
+            <asp:BoundColumn HeaderText="Quantity" 
+                 DataField="Qty"/>
+ 
+            <asp:BoundColumn HeaderText="Price"
+                 DataField="Price"
+                 DataFormatString="{0:c}"/>
+ 
+         </Columns>
+ 
+      </asp:DataGrid>
+
+   </form>
+ 
+</body>
+</html>

+ 40 - 0
mcs/class/System.Web/Test/standalone/datagrid/datagrid-buttoncol-select.aspx

@@ -0,0 +1,40 @@
+<!-- based on bug 49744 -->
+<%@ Import Namespace="System.Data" %>
+<%@ Page language="c#" %>
+<html>
+	<head>
+		<script runat="server">
+		void Page_Load (object sender, EventArgs e)
+		{
+			if (IsPostBack)
+				return;
+		
+			DataSet ds = new DataSet ();
+			ds.ReadXml (new System.IO.StringReader (@"
+<DataSet>
+	<Stocks Company='Novell Inc.'     Symbol='NOVL' Price='6.14'   />
+	<Stocks Company='Microsoft Corp.' Symbol='MSFT' Price='25.92'  />
+	<Stocks Company='Google'          Symbol='GOOG' Price='291.60' />
+</DataSet>
+"));
+			DataGrid1.DataSource = ds;
+			DataGrid1.DataBind();
+		}
+		</script>
+	</head>
+	<body>
+		<p>Clicking select should highlight a column</p>
+		<form runat="server">
+			<asp:DataGrid id="DataGrid1" GridLines=Horizontal AutoGenerateColumns=False runat="server">
+				<ItemStyle BackColor=orange ForeColor=black />
+				<AlternatingItemStyle BackColor=red ForeColor=white />
+				<SelectedItemStyle BackColor=#33ffff ForeColor=black />
+				<Columns>
+					<asp:BoundColumn DataField="Company" />
+					<asp:ButtonColumn Text="Select" CommandName="Select" />
+				</Columns>									
+			</asp:DataGrid>
+			
+		</form>
+	</body>
+</html>

+ 43 - 0
mcs/class/System.Web/Test/standalone/datagrid/datagrid-buttoncol.aspx

@@ -0,0 +1,43 @@
+<!-- based on bug 49738, 50171 -->
+<%@ Import Namespace="System.Data" %>
+<%@ Page language="c#" %>
+<html>
+	<head>
+		<script runat="server">
+		void Page_Load (object sender, EventArgs e)
+		{
+			if (IsPostBack)
+				return;
+		
+			DataSet ds = new DataSet ();
+			ds.ReadXml (new System.IO.StringReader (@"
+<DataSet>
+	<Stocks Company='Novell Inc.'     Symbol='NOVL' Price='6.14'   />
+	<Stocks Company='Microsoft Corp.' Symbol='MSFT' Price='25.92'  />
+	<Stocks Company='Google'          Symbol='GOOG' Price='291.60' />
+</DataSet>
+"));
+			DataGrid1.DataSource = ds;
+			DataGrid1.DataBind();
+		}
+		</script>
+	</head>
+	<body>
+		<p>Should have the company names with alternating
+		black on orange / white on red colors. The push buttons are not
+		colored. The last column should use a format string Symbol: {0}</p>
+		<form runat="server">
+			<asp:DataGrid id="DataGrid1" AutoGenerateColumns=False runat="server">
+				<ItemStyle BackColor=orange ForeColor=black />
+				<AlternatingItemStyle BackColor=red ForeColor=white />
+				<Columns>
+					<asp:BoundColumn DataField="Company" />
+					<asp:ButtonColumn Text="Test" />
+					<asp:buttoncolumn ButtonType="PushButton" Text="push" />
+					<asp:ButtonColumn ButtonType=LinkButton DataTextField="Symbol" DataTextFormatString="Symbol: {0}" />
+				</Columns>									
+			</asp:DataGrid>
+			
+		</form>
+	</body>
+</html>

+ 39 - 0
mcs/class/System.Web/Test/standalone/datagrid/datagrid-cells-controls-add.aspx

@@ -0,0 +1,39 @@
+<!-- Based on bug 50173 -->
+<%@ Page language="c#" %>
+<%@ Import Namespace="System.Data" %>
+<html>
+	<head>
+		<script runat="server">
+		private void Page_Load(object sender, System.EventArgs e)
+		{
+			if (IsPostBack)
+				return;
+			DataSet ds = new DataSet ();
+			ds.ReadXml (new System.IO.StringReader (@"
+<DataSet>
+	<Stocks Company='Novell Inc.'     Symbol='NOVL' Price='6.14'   />
+	<Stocks Company='Microsoft Corp.' Symbol='MSFT' Price='25.92'  />
+	<Stocks Company='Google'          Symbol='GOOG' Price='291.60' />
+</DataSet>
+"));
+			DataGrid1.DataSource = ds;
+			DataGrid1.DataBind();
+		}
+		
+		private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
+		{
+			if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
+				e.Item.Cells[0].Controls.Add( new LiteralControl ("Hello World" ));
+		}
+		</script>
+	</head>
+	<body>
+		<form runat="server">
+			<asp:DataGrid id="DataGrid1" AutoGenerateColumns=False OnItemCreated="DataGrid1_ItemCreated" runat="server">
+			<Columns>
+				<asp:ButtonColumn ButtonType=LinkButton ItemStyle-ForeColor=Red DataTextField="Company" DataTextFormatString="Blah: {0}" />
+			</Columns>
+			</asp:DataGrid>
+		</form>
+	</body>
+</html>

+ 37 - 0
mcs/class/System.Web/Test/standalone/datagrid/datagrid-editcmdcol.aspx

@@ -0,0 +1,37 @@
+<!-- based on bug 49736 -->
+<%@ Import Namespace="System.Data" %>
+<%@ Page language="c#" %>
+<html>
+	<head>
+		<script runat="server">
+		void Page_Load (object sender, EventArgs e)
+		{
+			if (IsPostBack)
+				return;
+		
+			DataSet ds = new DataSet ();
+			ds.ReadXml (new System.IO.StringReader (@"
+<DataSet>
+	<Stocks Company='Novell Inc.'     Symbol='NOVL' Price='6.14'   />
+	<Stocks Company='Microsoft Corp.' Symbol='MSFT' Price='25.92'  />
+	<Stocks Company='Google'          Symbol='GOOG' Price='291.60' />
+</DataSet>
+"));
+			DataGrid1.DataSource = ds;
+			DataGrid1.DataBind();
+		}
+		</script>
+	</head>
+	<body>
+		<p>Should have the company names with an "edit" button next to each. The button won't work</p>
+		<form runat="server">
+			<asp:DataGrid id="DataGrid1" AutoGenerateColumns=False runat="server">
+				<Columns>
+					<asp:BoundColumn DataField="Company" />
+					<asp:EditCommandColumn CancelText="Cancel" EditText="Edit" UpdateText="Update" />
+				</Columns>									
+			</asp:DataGrid>
+			
+		</form>
+	</body>
+</html>

+ 36 - 0
mcs/class/System.Web/Test/standalone/datagrid/datagrid-hyperlink-col.aspx

@@ -0,0 +1,36 @@
+<!-- Based on bug 50234, 51092 -->
+<%@ Page language="c#" %>
+<%@ Import Namespace="System.Data" %>
+<html>
+	<head>
+		<script runat="server">
+		private void Page_Load(object sender, System.EventArgs e)
+		{
+			if (IsPostBack)
+				return;
+			DataSet ds = new DataSet ();
+			ds.ReadXml (new System.IO.StringReader (@"
+<DataSet>
+	<Stocks Company='Novell Inc.'     Symbol='NOVL' Price='6.14'   />
+	<Stocks Company='Microsoft Corp.' Symbol='MSFT' Price='25.92'  />
+	<Stocks Company='Google'          Symbol='GOOG' Price='291.60' />
+</DataSet>
+"));
+			DataGrid1.DataSource = ds;
+			DataGrid1.DataBind();
+		}
+		</script>
+	</head>
+	<body>
+		<form runat="server">
+			<asp:DataGrid id="DataGrid1" AutoGenerateColumns=False runat="server">
+			<Columns>
+				<asp:HyperLinkColumn Text="" DataNavigateUrlField="Company" />
+				<asp:HyperLinkColumn Text="ClickHere" DataNavigateUrlField="Company" />
+				<asp:HyperLinkColumn Text="Get quote" DataNavigateUrlField="Symbol" DataNavigateUrlFormatString="~/quote.aspx?{0}" />
+				<asp:HyperLinkColumn Text="Google quote" DataNavigateUrlField="Symbol" DataNavigateUrlFormatString="http://www.google.com/search?q=stocks:{0}" />
+			</Columns>
+			</asp:DataGrid>
+		</form>
+	</body>
+</html>

+ 98 - 0
mcs/class/System.Web/Test/standalone/datagrid/datagrid-pager-numeric-pages-empty.aspx

@@ -0,0 +1,98 @@
+<!-- bug 51487 -->
+<%@ Page Language="C#" %>
+<%@ Import Namespace="System.Data" %>
+ 
+ <html>
+ <script language="C#" runat="server">
+ 
+    ICollection CreateDataSource() 
+    {
+       DataTable dt = new DataTable();
+       DataRow dr;
+ 
+       dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
+       dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
+       dt.Columns.Add(new DataColumn("DateTimeValue", typeof(string)));
+       dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));
+  
+       DataView dv = new DataView(dt);
+       return dv;
+    }
+ 
+    void Page_Load(Object sender, EventArgs e) 
+    {
+		
+      BindGrid();
+    }
+ 
+    void MyDataGrid_Page(Object sender, DataGridPageChangedEventArgs e) 
+    {
+       MyDataGrid.CurrentPageIndex = e.NewPageIndex;
+       BindGrid();
+    }
+ 
+    void BindGrid() 
+    {
+       MyDataGrid.DataSource = CreateDataSource();
+       MyDataGrid.DataBind();
+       ShowStats();
+    }
+ 
+    void ShowStats() 
+    {
+       lblEnabled.Text = "AllowPaging is " + MyDataGrid.AllowPaging;
+       lblCurrentIndex.Text = "CurrentPageIndex is " + MyDataGrid.CurrentPageIndex;
+       lblPageCount.Text = "PageCount is " + MyDataGrid.PageCount;
+       lblPageSize.Text = "PageSize is " + MyDataGrid.PageSize;
+    }
+ 
+ 
+ </script>
+ 
+ <body>
+ 
+    <h3>DataGrid Paging Example</h3>
+ 
+    <form runat=server>
+ 
+       <asp:DataGrid id="MyDataGrid" runat="server"        
+			AllowPaging="True"
+            PageSize="10"
+            OnPageIndexChanged="MyDataGrid_Page"
+            BorderColor="black"
+            BorderWidth="1"
+            GridLines="Both"
+            CellPadding="3"
+            CellSpacing="0"
+            Font-Name="Verdana"
+            Font-Size="8pt">
+
+            <PagerStyle Mode="NumericPages"
+                        HorizontalAlign="Right" />
+
+       </asp:DataGrid>
+  
+       <table bgcolor="#eeeeee" cellpadding="6">
+          <tr>
+             <td nowrap>
+                
+ 
+                   <asp:Label id="lblEnabled" 
+                        runat="server"/><br>
+                   <asp:Label id="lblCurrentIndex" 
+                        runat="server"/><br>
+                   <asp:Label id="lblPageCount" 
+                        runat="server"/><br>
+                   <asp:Label id="lblPageSize" 
+                        runat="server"/><br>
+ 
+                
+             </td>
+          </tr>
+       </table>
+ 
+    </form>
+ 
+ </body>
+ </html>
+   

+ 44 - 0
mcs/class/System.Web/Test/standalone/datagrid/datagrid-pager-style-visible.aspx

@@ -0,0 +1,44 @@
+<!-- bug 50246 -->
+<%@ Page language="c#" %>
+<html>
+	<head>
+		<script runat="server">
+		void Page_Load (object sender, EventArgs e)
+		{
+			PopulateDataGrid();
+		}
+		
+		void Button1_Click (object sender, System.EventArgs e)
+		{			
+			DataGrid1.PagerStyle.Visible = false;
+		}
+		
+		void PopulateDataGrid()
+		{
+			ArrayList al = new ArrayList ();
+			al.Add("Item 1");
+			al.Add("Item 2");
+			al.Add("Item 3");
+			al.Add("Item 4");
+			
+			DataGrid1.DataSource = al;
+			DataGrid1.DataBind ();
+		}
+		
+		void DataGrid1_PageIndexChanged (object source, DataGridPageChangedEventArgs e)
+		{
+			DataGrid1.CurrentPageIndex = e.NewPageIndex;
+			PopulateDataGrid ();
+		}
+		</script>
+	</head>
+	<body>
+		<form runat="server">
+			<asp:datagrid id="DataGrid1" runat="server" AllowPaging="True" OnPageIndexChanged="DataGrid1_PageIndexChanged"
+				PageSize="2">
+				<PagerStyle BackColor=Yellow />
+			</asp:datagrid>
+			<asp:Button OnClick="Button1_Click" runat="server" Text="Assign Pager Style" />
+		</form>
+	</body>
+</html>

+ 48 - 0
mcs/class/System.Web/Test/standalone/datagrid/datagrid-pager-style.aspx

@@ -0,0 +1,48 @@
+<!-- bug 50241 -->
+<%@ Page language="c#" %>
+<%@ Import Namespace="System.Drawing" %>
+<html>
+	<head>
+		<script runat="server">
+		void Page_Load (object sender, EventArgs e)
+		{
+			PopulateDataGrid();
+		}
+		
+		void Button1_Click (object sender, System.EventArgs e)
+		{
+			Style s = new Style ();
+			s.BackColor = Color.Green;
+			
+			DataGrid1.PagerStyle.CopyFrom (s);
+		}
+		
+		void PopulateDataGrid()
+		{
+			ArrayList al = new ArrayList ();
+			al.Add("Item 1");
+			al.Add("Item 2");
+			al.Add("Item 3");
+			al.Add("Item 4");
+			
+			DataGrid1.DataSource = al;
+			DataGrid1.DataBind ();
+		}
+		
+		void DataGrid1_PageIndexChanged (object source, DataGridPageChangedEventArgs e)
+		{
+			DataGrid1.CurrentPageIndex = e.NewPageIndex;
+			PopulateDataGrid ();
+		}
+		</script>
+	</head>
+	<body>
+		<form runat="server">
+			<asp:datagrid id="DataGrid1" runat="server" AllowPaging="True" OnPageIndexChanged="DataGrid1_PageIndexChanged"
+				PageSize="2">
+				<PagerStyle BackColor=Yellow />
+			</asp:datagrid>
+			<asp:Button OnClick="Button1_Click" runat="server" Text="Assign Pager Style" />
+		</form>
+	</body>
+</html>

+ 118 - 0
mcs/class/System.Web/Test/standalone/datagrid/datagrid-paging.aspx

@@ -0,0 +1,118 @@
+<!-- bug 50285 -->
+<%@ Page Language="C#" %>
+<%@ Import Namespace="System.Data" %>
+ 
+<html>
+<script language="C#" runat="server">
+		ICollection CreateDataSource() 
+		{
+			 DataTable dt = new DataTable();
+			 DataRow dr;
+ 
+			 dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
+			 dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
+			 dt.Columns.Add(new DataColumn("DateTimeValue", typeof(string)));
+			 dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));
+ 
+			 for (int i = 0; i < 100; i++) 
+			 {
+					dr = dt.NewRow();
+ 
+					dr[0] = i;
+					dr[1] = "Item " + i.ToString();
+					dr[2] = DateTime.Now.ToShortDateString();
+					dr[3] = (i % 2 != 0) ? true : false;
+ 
+					dt.Rows.Add(dr);
+			 }
+ 
+			 DataView dv = new DataView(dt);
+			 return dv;
+		}
+ 
+		void Page_Load(Object sender, EventArgs e) 
+		{
+			 if (chk1.Checked)
+					MyDataGrid.PagerStyle.Mode = PagerMode.NumericPages;
+			 else 
+					MyDataGrid.PagerStyle.Mode = PagerMode.NextPrev;
+ 
+			 BindGrid();
+		}
+ 
+		void MyDataGrid_Page(Object sender, DataGridPageChangedEventArgs e) 
+		{
+			 MyDataGrid.CurrentPageIndex = e.NewPageIndex;
+			 BindGrid();
+		}
+ 
+		void BindGrid() 
+		{
+			 MyDataGrid.DataSource = CreateDataSource();
+			 MyDataGrid.DataBind();
+			 ShowStats();
+		}
+ 
+		void ShowStats() 
+		{
+			 lblEnabled.Text = "AllowPaging is " + MyDataGrid.AllowPaging;
+			 lblCurrentIndex.Text = "CurrentPageIndex is " + MyDataGrid.CurrentPageIndex;
+			 lblPageCount.Text = "PageCount is " + MyDataGrid.PageCount;
+			 lblPageSize.Text = "PageSize is " + MyDataGrid.PageSize;
+		}
+</script>
+ 
+ <body>
+ 
+		<h3>DataGrid Paging Example</h3>
+ 
+		<form runat=server>
+ 
+			 <asp:DataGrid id="MyDataGrid" runat="server"				 
+				AllowPaging="True"
+				PageSize="10"
+				OnPageIndexChanged="MyDataGrid_Page"
+				BorderColor="black"
+				BorderWidth="1"
+				GridLines="Both"
+				CellPadding="3"
+				CellSpacing="0"
+				Font-Name="Verdana"
+				Font-Size="8pt">
+
+				<PagerStyle Mode="NumericPages"
+					    HorizontalAlign="Right" />
+
+
+				<HeaderStyle BackColor="#aaaadd" />
+				<AlternatingItemStyle BackColor="#eeeeee" />
+			 </asp:DataGrid>
+ 
+			 <p>
+ 
+			 <asp:Checkbox id="chk1" runat="server"
+						Text="Show numeric page navigation buttons"
+						Font-Name="Verdana"
+						Font-Size="8pt"
+						AutoPostBack="true"/>
+ 
+			 <p>
+ 
+			 <table bgcolor="#eeeeee" cellpadding="6">
+					<tr>
+						<td nowrap>
+							<asp:Label id="lblEnabled" runat="server"/><br>
+							<asp:Label id="lblCurrentIndex" runat="server"/><br>
+							<asp:Label id="lblPageCount" runat="server"/><br>
+							<asp:Label id="lblPageSize" runat="server"/><br>
+ 
+								
+						</td>
+					</tr>
+			 </table>
+ 
+		</form>
+ 
+ </body>
+ </html>
+	 

+ 39 - 0
mcs/class/System.Web/Test/standalone/datagrid/datagrid-simple-pager.aspx

@@ -0,0 +1,39 @@
+<!-- based on bug# 49837
+
+There may be a regression here in Microsoft's v2.0. See: 
+http://lab.msdn.microsoft.com/ProductFeedback/viewFeedback.aspx?feedbackId=FDBK33880
+-->
+<%@ Import Namespace="System.Data" %>
+<%@ Page language="c#" %>
+<html>
+	<head>
+		<script runat="server">
+		void Page_Load (object sender, EventArgs e)
+		{
+			DataSet ds = new DataSet ();
+			ds.ReadXml (new System.IO.StringReader (@"
+<DataSet>
+	<Stocks Company='Novell Inc.'     Symbol='NOVL' Price='6.14'   />
+	<Stocks Company='Microsoft Corp.' Symbol='MSFT' Price='25.92'  />
+	<Stocks Company='Google'          Symbol='GOOG' Price='291.60' />
+</DataSet>
+"));
+			DataGrid1.DataSource = ds;
+			DataGrid1.DataBind();
+		}
+
+		void changepage(object source, DataGridPageChangedEventArgs e)
+		{
+			DataGrid1.CurrentPageIndex = e.NewPageIndex;
+			DataGrid1.DataBind ();
+		}
+		</script>
+	</head>
+	<body>
+		<p>Clicking select should highlight a column</p>
+		<form runat="server">
+			<asp:DataGrid id="DataGrid1" runat="server" PageSize="2" OnPageIndexChanged="changepage" AllowPaging="True" />
+			
+		</form>
+	</body>
+</html>

+ 73 - 0
mcs/class/System.Web/Test/standalone/datagrid/datagrid-sorting.aspx

@@ -0,0 +1,73 @@
+<!-- bug 51424 -->
+
+<%@ Page language="c#" %>
+<%@ Import Namespace="System.Data" %>
+<html>
+	<body>
+		<form runat="server">
+			<asp:DataGrid id="DataGrid1" runat="server" />
+		</form>
+	</body>
+	<script language="c#" runat="server">
+		void Page_Load(object sender, System.EventArgs e)
+		{
+				DataGrid1.AllowSorting = true;
+				if (!IsPostBack)
+				{
+					DataGrid1.DataSource = createDataTable();
+					DataGrid1.DataBind();
+				}
+				this.DataGrid1.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.DataGrid1_SortCommand);
+		}
+		void DataGrid1_SortCommand(object sender, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
+		{
+			DataView dv = new DataView();
+			dv.Table = createDataTable();			
+			dv.Sort = e.SortExpression;       
+			DataGrid1.DataSource = dv;
+			DataGrid1.DataBind();
+		}
+		System.Data.DataTable createDataTable()
+		{
+			System.Data.DataTable dt = new System.Data.DataTable("Customers");
+			System.Data.DataColumn dc = dt.Columns.Add("ID",typeof(int));
+			dc.AllowDBNull = false;
+			dc.AutoIncrement = true;
+			dc.AutoIncrementSeed = 1;
+			dc.AutoIncrementStep = 1;
+			dc.Unique = true;
+
+			dt.PrimaryKey = new System.Data.DataColumn[] {dc};
+
+	        	dc = dt.Columns.Add("Name", typeof(String));
+			dc.MaxLength = 14;
+			dc.DefaultValue = "nobody";
+			dc = dt.Columns.Add("Company", typeof(String));
+			dc.MaxLength = 14;
+			dc.DefaultValue = "nonexistent";
+
+			ArrayList arr = createArrayList();
+			IEnumerator items = arr.GetEnumerator();
+            		items.Reset();
+            		while(items.MoveNext())
+			{
+                		DataRow dr = dt.NewRow();
+                		dr["Name"] = "n_" + "_" + items.Current;
+                		dr["Company"] = "c_" + "_" + items.Current;
+				dt.Rows.Add(dr);
+			}
+			return dt;
+		}
+
+		ArrayList createArrayList()
+		{
+			ArrayList arr = new ArrayList();
+			arr.Add("One");
+			arr.Add("Two");
+			arr.Add("Three");
+			arr.Add("Four");
+			arr.Add("Five");
+			return arr;
+		}
+	</script>
+</html>

+ 55 - 0
mcs/class/System.Web/Test/standalone/datagrid/sysdata-datatable-style.aspx

@@ -0,0 +1,55 @@
+<!-- Based on bug #43823 -->
+
+<%@ Page Language="C#" %>
+<%@ Import Namespace="System.Data" %>
+	
+<script runat="server">
+	void Page_Load (object o, EventArgs e)
+	{
+		if (IsPostBack)
+			return;
+	
+		
+		DataTable t = new DataTable ("t");
+		
+		t.Columns.Add (new DataColumn ("Symbol", typeof (string)));
+		t.Columns.Add (new DataColumn ("Company", typeof (string)));
+		t.Columns.Add (new DataColumn ("Price", typeof (double)));
+
+		DataSet ds = new DataSet ("ds");
+
+		ds.Tables.Add (t);
+		AddStock (t, "MSFT", "Microsoft Corp.", 25.81);
+		AddStock (t, "NOVL", "Novell Inc.", 6.17);
+		AddStock (t, "GOOG", "Google", 300.95);
+
+		dg.DataSource = ds;
+		dg.DataBind ();
+	}
+
+	void AddStock (DataTable dt, string symbol, string co, double price)
+	{
+		DataRow dr = dt.NewRow ();
+		dr [0] = symbol;
+		dr [1] = co;
+		dr [2] = price;
+		dt.Rows.Add (dr);
+	}
+</script>
+
+<html>
+<body>
+<form runat="server">
+<asp:datagrid
+	ID="dg"
+	CellPadding="10"
+	HeaderStyle-Font-Name="Arial"
+	HeaderStyle-Font-Bold="True"
+	HeaderStyle-BackColor="lightyellow"
+	ItemStyle-Font-Name="Arial"
+	ItemStyle-Font-Size="10pt"
+	AlternatingItemStyle-BackColor="lightblue"
+	runat="server" />
+</form>
+</body>
+</html>

+ 121 - 0
mcs/class/System.Web/Test/standalone/datagrid/sysdata-datatable-update.aspx

@@ -0,0 +1,121 @@
+<!-- Based on bug #43823. Also tests bug #48212 (using font-names) -->
+
+<%@ Page Language="C#" %>
+<%@ Import Namespace="System.Data" %>
+	
+<script runat="server">
+	DataTable t;
+
+	void Page_Load (object o, EventArgs e)
+	{
+		if (IsPostBack) {
+			t = (DataTable) ViewState ["dt"];
+			return;
+		}
+		
+		t = new DataTable ("t");
+		
+		t.Columns.Add (new DataColumn ("Symbol", typeof (string)));
+		t.Columns.Add (new DataColumn ("Company", typeof (string)));
+		t.Columns.Add (new DataColumn ("Price", typeof (double)));
+
+		DataColumn[] keys = new DataColumn[1];
+		keys[0] = t.Columns[0];
+		t.PrimaryKey = keys;
+
+		AddStock (t, "MSFT", "Microsoft Corp.", 25.81);
+		AddStock (t, "NOVL", "Novell Inc.", 6.17);
+		AddStock (t, "GOOG", "Google", 300.95);
+
+		BindGrid ();
+	}
+
+	void BindGrid ()
+	{
+		// Don't ever do this in real code. It bloats the viewstate
+		ViewState ["dt"] = t;
+		dg.DataSource = t;
+		dg.DataBind ();
+	}
+
+	void AddStock (DataTable dt, string symbol, string co, double price)
+	{
+		DataRow dr = dt.NewRow ();
+		dr [0] = symbol;
+		dr [1] = co;
+		dr [2] = price;
+		dt.Rows.Add (dr);
+	}
+
+	void edit (Object sender, DataGridCommandEventArgs e) 
+	{
+		
+		dg.EditItemIndex = e.Item.ItemIndex;
+		BindGrid ();
+		
+	}
+ 
+	void cancel (Object sender, DataGridCommandEventArgs e) 
+	{
+		dg.EditItemIndex = -1;
+		BindGrid ();
+	}
+ 
+	void update (Object sender, DataGridCommandEventArgs e) 
+	{
+		TextBox txtprice = (TextBox) e.Item.FindControl ("txtprice");
+		DataRow dr = t.Rows.Find (dg.DataKeys [e.Item.ItemIndex]);
+
+		dr [2] = Convert.ToDouble (txtprice.Text);
+		dg.EditItemIndex = -1;
+		BindGrid ();	
+	}
+</script>
+
+<html>
+<body>
+<form runat="server">
+
+<asp:DataGrid
+  ID="dg"
+  Font-Names="verdana, arial, helvetica" 
+  OnEditCommand="edit"
+  OnUpdateCommand="update"
+  OnCancelCommand="cancel"
+  DataKeyField="Symbol"
+  AutoGenerateColumns="False"
+  CellPadding="10"
+  HeaderStyle-BackColor="Salmon"
+  runat="server">
+<Columns>
+  <asp:BoundColumn
+    HeaderText="Symbol"
+    DataField="Symbol"
+    ReadOnly="True" />
+  <asp:BoundColumn
+    HeaderText="Company"
+    DataField="Company"
+    ReadOnly="True" />
+  <asp:TemplateColumn>
+  <HeaderTemplate>
+    Price
+  </HeaderTemplate>
+  <ItemTemplate>
+     <%# DataBinder.Eval(Container.DataItem, "Price" ) %>
+  </ItemTemplate>
+  <EditItemTemplate>
+    <asp:TextBox
+      ID="txtprice"
+      Text='<%# DataBinder.Eval(Container.DataItem, "Price" ) %>'
+      runat="server" />
+  </EditItemTemplate>	
+  </asp:TemplateColumn>
+  <asp:EditCommandColumn
+    EditText="Edit"
+    UpdateText="Update"
+    CancelText="Cancel" />
+</Columns>
+</asp:DataGrid>
+</form>
+</body>
+</html>

+ 48 - 0
mcs/class/System.Web/Test/standalone/datalist/datalist-invisible.aspx

@@ -0,0 +1,48 @@
+<!-- based on bug #49024 -->
+
+<%@ Page language="c#" %>
+<%@ Import Namespace="System.Data" %>
+<html>
+	<head>
+		<script runat="server">
+		void Page_Load (object sender, EventArgs e)
+		{
+			if (IsPostBack)
+				return;
+			
+			DataSet ds = new DataSet ();
+			ds.ReadXml (new System.IO.StringReader (@"
+<DataSet>
+	<Stocks Company='Novell Inc.'     Symbol='NOVL' Price='6.14'   />
+	<Stocks Company='Microsoft Corp.' Symbol='MSFT' Price='25.92'  />
+	<Stocks Company='Google'          Symbol='GOOG' Price='291.60' />
+</DataSet>
+"));
+			DataList1.DataSource = ds;
+			DataList1.DataBind();
+		}
+	
+		void BtnVisible_Click (object sender, EventArgs e)
+		{
+			DataList1.Visible = true;
+		}
+
+		void BtnInvisible_Click(object sender, System.EventArgs e)
+		{
+			DataList1.Visible = false;
+		}
+		</script>
+	</head>
+	<body>
+		<p>Click invisible then click visible. The names should come back.</p>
+		<form runat="server">
+			<asp:DataList id="DataList1" runat="server">
+				<ItemTemplate>
+					<%# DataBinder.Eval (Container.DataItem, "Company") %>
+				</ItemTemplate>
+			</asp:DataList>
+			<asp:button OnClick="BtnInvisible_Click" runat="server" Text="Invisible" />
+			<asp:button OnClick="BtnVisible_Click" runat="server" Text="Visible" />
+		</form>
+	</body>
+</html>

+ 74 - 0
mcs/class/System.Web/Test/standalone/datalist/datalist-style-edit.aspx

@@ -0,0 +1,74 @@
+<!-- Inspired by bug 49020 -->
+<%@ Page language="c#" Debug="true" %>
+<%@ Import Namespace="System.Data" %>
+<html>
+	<head>
+		<script runat="server">
+		DataSet ds;
+		private void Page_Load (object sender, EventArgs e)
+		{
+			PopulateList();
+		}
+		
+		private void PopulateList()
+		{
+			if (IsPostBack) {
+				ds = (DataSet) ViewState ["ds"];
+				return;
+			} else {
+				ds = new DataSet ();
+				ds.ReadXml (new System.IO.StringReader (@"
+<DataSet>
+	<Stocks Company='Novell Inc.'     Symbol='NOVL' Price='6.14'   />
+	<Stocks Company='Microsoft Corp.' Symbol='MSFT' Price='25.92'  />
+	<Stocks Company='Google'          Symbol='GOOG' Price='291.60' />
+</DataSet>
+"));
+				ViewState ["ds"] = ds;
+			}
+
+			DataList1.GridLines = GridLines.Both;
+			DataList1.DataSource = ds;
+			DataList1.DataBind();
+		}
+	
+		private void EditCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
+		{
+			DataList1.EditItemIndex = e.Item.ItemIndex;
+			DataList1.DataSource = ds;
+			DataList1.DataBind();	
+		}
+		
+		private void UpdateCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
+		{
+			
+			string name = ((TextBox)e.Item.FindControl("edit_name")).Text;
+			ds.Tables[0].Rows [DataList1.EditItemIndex]["Company"] = name;
+			DataList1.EditItemIndex = -1;
+			ViewState ["ds"] = ds;
+			DataList1.DataSource = ds;
+			DataList1.DataBind();
+		}
+		</script>
+	</head>
+	<body>
+		<form runat="server">
+			<asp:datalist
+				runat="server"
+				id="DataList1"
+				OnEditCommand="EditCommand"
+				OnUpdateCommand="UpdateCommand"
+				RepeatColumns="2"
+				RepeatDirection="vertical">
+				<ItemTemplate>
+					<asp:label runat="server" Text='<%# DataBinder.Eval (Container.DataItem, "Company") %>' />
+					<asp:LinkButton Runat="server" CommandName="Edit" Text="Edit" />
+				</ItemTemplate>
+				<EditItemTemplate>
+						<asp:textbox id="edit_name" text='<%# DataBinder.Eval(Container.DataItem, "Company") %>' runat="server" />
+						<asp:linkbutton runat="server" commandname="Update" text="Update" />
+				</EditItemTemplate>
+			</asp:datalist>
+		</form>
+	</body>
+</html>

+ 53 - 0
mcs/class/System.Web/Test/standalone/datalist/datalist-style.aspx

@@ -0,0 +1,53 @@
+<!--
+This page should render a table with cellpadding="3" and cellspacing="1"
+-->
+
+<%@ Page Language="C#" AutoEventWireup="True" %>
+<%@ Import Namespace="System.Data" %>
+
+<html>
+<head>
+<script runat="server">
+	void Page_Load (object s, EventArgs e)
+	{
+		if (IsPostBack)
+			return;
+		
+		DataTable t = new DataTable ("t");
+		
+		t.Columns.Add (new DataColumn ("Symbol", typeof (string)));
+		t.Columns.Add (new DataColumn ("Company", typeof (string)));
+		t.Columns.Add (new DataColumn ("Price", typeof (double)));
+
+		DataSet ds = new DataSet ("ds");
+
+		ds.Tables.Add (t);
+		AddStock (t, "MSFT", "Microsoft Corp.", 25.81);
+		AddStock (t, "NOVL", "Novell Inc.", 6.17);
+		AddStock (t, "GOOG", "Google", 300.95);
+
+		dl.DataSource = ds;
+		dl.DataMember = "t";
+		dl.DataBind ();		
+	}
+
+	void AddStock (DataTable dt, string symbol, string co, double price)
+	{
+		DataRow dr = dt.NewRow ();
+		dr [0] = symbol;
+		dr [1] = co;
+		dr [2] = price;
+		dt.Rows.Add (dr);
+	}
+</script>
+</head>
+<body>
+	<asp:datalist id="dl" runat="server" Cellpadding="3" cellspacing="1" width="100%">
+		<ItemTemplate>
+			<%# DataBinder.Eval (Container.DataItem, "Symbol") %>, 
+			<%# DataBinder.Eval (Container.DataItem, "Company") %>,
+			<%# DataBinder.Eval (Container.DataItem, "Price") %>
+		</ItemTemplate>
+	</asp:datalist>
+</body>
+</html>

+ 52 - 0
mcs/class/System.Web/Test/standalone/dropdownlist/ddl-databind.aspx

@@ -0,0 +1,52 @@
+<!-- Inspired by bug #42246 -->
+
+<%@ Page Language="C#" %>
+<%@ Import Namespace="System" %>
+<%@ Import Namespace="System.Data" %>
+
+<script runat="server">
+	void Page_Load (object s, EventArgs e)
+	{
+		if (IsPostBack) {
+			txt.Text = ddl.SelectedItem.Value;
+			return;
+		}
+		
+		DataTable t = new DataTable ("t");
+		
+		t.Columns.Add (new DataColumn ("Symbol", typeof (string)));
+		t.Columns.Add (new DataColumn ("Company", typeof (string)));
+		t.Columns.Add (new DataColumn ("Price", typeof (double)));
+
+		DataSet ds = new DataSet ("ds");
+
+		ds.Tables.Add (t);
+		AddStock (t, "MSFT", "Microsoft Corp.", 25.81);
+		AddStock (t, "NOVL", "Novell Inc.", 6.17);
+		AddStock (t, "GOOG", "Google", 300.95);
+
+		ddl.DataSource = ds;
+		ddl.DataTextField = "Company";
+		ddl.DataBind ();		
+	}
+
+	void AddStock (DataTable dt, string symbol, string co, double price)
+	{
+		DataRow dr = dt.NewRow ();
+		dr [0] = symbol;
+		dr [1] = co;
+		dr [2] = price;
+		dt.Rows.Add (dr);
+	}
+</script>
+
+<html>
+<body>
+<form runat="server">
+
+<asp:dropdownlist autopostback="true" id="ddl" runat="server" />
+
+<asp:label id="txt" runat="server" />
+</form>
+</body>
+</html>

+ 20 - 0
mcs/class/System.Web/Test/standalone/htmlbutton/button-serverclick.aspx

@@ -0,0 +1,20 @@
+<!-- bug 35677 -->
+
+<html>
+	<script language="C#" runat="server">
+		void onclick (object sender, EventArgs e)
+		{			
+			c.Value = Convert.ToString (Convert.ToInt32 (a.Value) + Convert.ToInt32(b.Value));
+		}
+	</script>
+
+	<body>
+		<form id="Form1" method="post" runat="server">
+			<input id="a" type="text" runat="server" value="1" />
+			+
+			<input id="b" type="text" runat="server" value="1" />
+			<input OnServerClick="onclick" type="button" value="=" runat="server">
+			<INPUT id="c" type="text" runat="server">
+		</form>
+	</body>
+</html>

+ 32 - 0
mcs/class/System.Web/Test/standalone/htmlform/qs_postback.aspx

@@ -0,0 +1,32 @@
+<%@ Page Language="C#" AutoEventWireup="True" %>
+
+<html>
+<head>
+<script runat="server">
+	void Page_Load (object o, EventArgs e)
+	{
+		DataBind ();
+	}
+</script>
+</head>
+<body>
+	<p>
+	Instructions: put a query string (ie ...aspx?a=b) in the
+	location bar. Then click the button. You should get the same
+	query string on the resulting page.
+	</p>
+
+	<form runat="server">
+		<asp:button runat="server" Text="Click Me!"/>
+		<br>
+		Your query string:<br>
+		<asp:DataList id="DataList1" DataSource="<%# Request.QueryString %>" runat="server">
+
+        	<ItemTemplate>
+			<%# Container.DataItem %> -- <%# Request.QueryString [(string) Container.DataItem] %>
+		</ItemTemplate>
+
+		</asp:datalist>
+	</form>
+</body>
+</html>

+ 25 - 0
mcs/class/System.Web/Test/standalone/htmlform/tail_postback.aspx

@@ -0,0 +1,25 @@
+<%@ Page Language="C#" AutoEventWireup="True" %>
+
+<html>
+<head>
+<script runat="server">
+	void Page_Load (object o, EventArgs e)
+	{
+		DataBind ();
+	}
+</script>
+</head>
+<body>
+	<p>
+	Instructions: put a tail (ie ...aspx/foo) in the
+	location bar. Then click the button. You will get a different
+	path.
+	</p>
+
+	<form runat="server">
+		<asp:button runat="server" Text="Click Me!"/>
+		<br>
+		PathInfo: <%# Request.PathInfo %>
+	</form>
+</body>
+</html>

+ 24 - 0
mcs/class/System.Web/Test/standalone/htmlinputradio/radio-name-neq-id.aspx

@@ -0,0 +1,24 @@
+<!-- bug 51582 -->
+<%@ Page language="c#" %>
+<html>
+	<body>
+		<form runat="server">
+			<input id="Radio1" type="radio" value="Radio1" name="RadioGroup" runat="server">
+			<input id="Radio2" type="radio" value="Radio2" name="Radio2" runat="server">
+			<input id="Radio3" type="radio" value="Radio3" name="Radio3" runat="server">
+			<asp:button runat="server" text="submit" />
+			<asp:label id="t" runat="server" />
+		</form>
+	</body>
+	<script language="C#" runat="server">
+		void Page_Load (object sender, EventArgs e)
+		{
+			if (Radio1.Checked == true)
+				t.Text = "Radio1 is checked";
+			else if (Radio2.Checked == true)
+				t.Text = "Radio2 is checked";
+			else if (Radio3.Checked == true)
+				t.Text = "Radio3 is checked";
+		}
+	</script>
+</html>

+ 1 - 0
mcs/class/System.Web/Test/standalone/httpresponse/r.html

@@ -0,0 +1 @@
+pass

+ 7 - 0
mcs/class/System.Web/Test/standalone/httpresponse/response-redirect.aspx

@@ -0,0 +1,7 @@
+<%@ Page Language="C#" AutoEventWireup="True" %>
+<script runat="server">
+	void Page_Load ()
+	{
+		Response.Redirect ("r.html");
+	}
+</script>

+ 8 - 0
mcs/class/System.Web/Test/standalone/hyperlink/hyperlink-resolve.aspx

@@ -0,0 +1,8 @@
+<%@ Page Language="C#" %>
+<html>
+<body>
+	<asp:hyperlink navigateurl="~/myurl" text="blah" runat="server" />
+	<asp:hyperlink imageurl="~/myimage.png" navigateurl="~/myurl" text="blah" runat="server" />
+	<asp:hyperlink navigateurl="http://www.novell.com" text="blah" runat="server" />
+</body>
+</html>

+ 16 - 0
mcs/class/System.Web/Test/standalone/imagebutton/imagebutton-postback.aspx

@@ -0,0 +1,16 @@
+<%@ Page Language="C#" %>
+<script runat="server">
+	void btnclick (object s, ImageClickEventArgs ea)
+	{
+		txt.Text = "PASS";
+	}
+</script>
+
+<html>
+<body>
+	Click the button and a message will appear: <asp:label id="txt" runat="server" />
+	<form runat="server">
+	      <asp:imagebutton imageurl="http://www.novell.com/common/img/hdr_logo_pf.gif" alternatetext="click here" onclick="btnclick" runat="server"/> 
+	</form>
+</body>
+</html>

+ 36 - 0
mcs/class/System.Web/Test/standalone/listbox/listbox-autopostback.aspx

@@ -0,0 +1,36 @@
+<!-- Inspired by bug 48671, should do autopostback -->
+
+<%@ Page language="c#" %>
+<%@ Import Namespace="System.Data" %>
+<html>
+	<head>
+		<script runat="server" language="C#">
+		void Page_Load (object sender, EventArgs e)
+		{
+			if (IsPostBack) {
+				txt.Text = "Postback";
+				return;
+			}
+
+			DataSet ds = new DataSet();
+			ds.ReadXml (new System.IO.StringReader (@"
+<DataSet>
+	<Stocks Company='Novell Inc.'     Symbol='NOVL' Price='6.14'   />
+	<Stocks Company='Microsoft Corp.' Symbol='MSFT' Price='25.92'  />
+	<Stocks Company='Google'          Symbol='GOOG' Price='291.60' />
+</DataSet>
+"));
+			l.DataSource = ds;
+			l.DataValueField = "Symbol";
+			l.DataTextField = "Company";
+			l.DataBind (); 
+		}
+		</script>
+	</head>
+	<body>
+		<asp:label id="txt" runat="server" />
+		<form runat="server">
+			<asp:listbox selectionmode="multiple" autopostback="true" id="l" runat="server" />
+		</form>
+	</body>
+</html>

+ 72 - 0
mcs/class/System.Web/Test/standalone/listbox/listbox-databind-postback.aspx

@@ -0,0 +1,72 @@
+<!-- bug on 45493. Right now, I am getting an error other than the one on the bug. the original issue was:
+
+To reproduce the bug: 
+ 
+1. in xsp, start the following aspx page. 
+ 
+2. Select an exam, e.g. "calculus". 
+ 
+3. Click "view subscriptions". The list of subscription correctly 
+appears.  
+ 
+4. Now click "view subscriptions" again, _without_ changing the 
+selection (i.e. leave "calculus" selected). An error message appears, 
+complaining that there was no exam selected. But it was! 
+
+-->
+
+
+<%@ language="C#" %> 
+ 
+<script runat="server" > 
+ 
+void Page_Load(Object Source, EventArgs E) {  
+        if (!IsPostBack){ 
+                #region fill the listbox exams 
+                exams.Items.Clear(); 
+                exams.Items.Add(new ListItem( "math")); 
+                exams.Items.Add(new ListItem( "calculus")); 
+                exams.Items.Add(new ListItem( "english"));       
+                message_subscriptions.Visible=false; 
+                subscriptions.Visible=false; 
+                #endregion 
+        } 
+        else{ 
+                if (exams.SelectedIndex >=0){    
+                         
+                        message_subscriptions.Visible=true; 
+                        subscriptions.Visible=true; 
+                        message.Text=""; 
+                        message_subscriptions.Text = "Subscriptions to \"" + exams.SelectedItem.Text + "\" are:"; 
+                        subscriptions.Items.Clear(); 
+                        subscriptions.Items.Add(new ListItem( "John")); 
+                        subscriptions.Items.Add(new ListItem( "Jack")); 
+                } 
+                else{ 
+                        message.Text = "<h2>Error: no item selected. SelectedIndex = " +  
+                                exams.SelectedIndex + " </h2>"; 
+                } 
+        } 
+} 
+</script> 
+ 
+<html> 
+ 
+<body> 
+<asp:label id=message runat=server ForeColor=red/> 
+<h1>Mono test page</h1> 
+Select an exam, then click "view subscriptions". 
+<form runat=server> 
+<p><asp:listbox id="exams" runat=server  /> 
+ 
+<p> <input type=submit value="View subscriptions"> 
+<p><asp:label id="message_subscriptions" runat=server /> 
+<p><asp:listbox id="subscriptions" runat=server  /> 
+ 
+</form> 
+ 
+</body> 
+ 
+</html>
+
+

+ 37 - 0
mcs/class/System.Web/Test/standalone/repeater/blankdatasource.aspx

@@ -0,0 +1,37 @@
+<%@ Page Language="C#" AutoEventWireup="True" %>
+<%@ Import Namespace="System.Data" %>
+
+<html>
+<head>
+<script runat="server">
+	void Page_Load (object s, EventArgs e)
+	{
+		if (IsPostBack)
+			return;
+		
+		rep.DataBind ();		
+	}
+
+	void Clicked (object o, EventArgs e)
+	{
+		lbl1.Text = "Pass";
+	}	
+</script>
+</head>
+<body>
+	<form runat="server">
+
+		<asp:label runat="server" id="lbl1" />
+		<asp:Repeater id="rep" runat="server">
+			<HeaderTemplate>
+				<h1>FAIL</h1>
+			</HeaderTemplate>
+			<FooterTemplate>
+				<h2>FAIL</h2>
+			</FooterTemplate>
+		</asp:Repeater>
+
+		<asp:button runat="server" Text="Click" id="x" onclick="Clicked" />
+	</form>
+</body>
+</html>

+ 56 - 0
mcs/class/System.Web/Test/standalone/repeater/datatable.aspx

@@ -0,0 +1,56 @@
+<%@ Page Language="C#" AutoEventWireup="True" %>
+<%@ Import Namespace="System.Data" %>
+
+<html>
+<head>
+<script runat="server">
+	void Page_Load (object s, EventArgs e)
+	{
+		if (IsPostBack)
+			return;
+		
+		DataTable t = new DataTable ("t");
+		
+		t.Columns.Add (new DataColumn ("Integer", typeof (int)));
+		t.Columns.Add (new DataColumn ("String", typeof (string)));
+		t.Columns.Add (new DataColumn ("Double", typeof (double)));
+
+		DataSet ds = new DataSet ("ds");
+
+		ds.Tables.Add (t);
+
+		for (int i = 0; i < 3; i ++) {
+			DataRow dr = t.NewRow ();
+
+			dr [0] = i;
+			dr [1] = "Blah blah blah " + i;
+			dr [2] = i * Math.PI;
+			t.Rows.Add (dr);
+		}
+
+		rep.DataSource = ds;
+		rep.DataMember = "t";
+		rep.DataBind ();		
+	}
+</script>
+</head>
+<body>
+	<form runat="server">
+		<asp:Repeater id="rep" runat="server">
+			<HeaderTemplate>
+				<h1>Hello, World</h1>
+			</HeaderTemplate>
+			<ItemTemplate>
+				<%# DataBinder.Eval (Container.DataItem, "String") %>, 
+				<%# DataBinder.Eval (Container.DataItem, "Double") %>
+			</ItemTemplate>
+			<FooterTemplate>
+				<h2>Bye!</h2>
+			</FooterTemplate>
+			<SeparatorTemplate>
+				<p>
+			</SeparatorTemplate>
+		</asp:Repeater>
+	</form>
+</body>
+</html>

+ 74 - 0
mcs/class/System.Web/Test/standalone/repeater/onitemcreated.aspx

@@ -0,0 +1,74 @@
+<%@ Page Language="C#" AutoEventWireup="True" %>
+<%@ Import Namespace="System.Data" %>
+
+<html>
+<head>
+<script runat="server">
+	void Page_Load (object s, EventArgs e)
+	{
+		if (IsPostBack)
+			return;
+		
+		DataTable t = new DataTable ("t");
+		
+		t.Columns.Add (new DataColumn ("Symbol", typeof (string)));
+		t.Columns.Add (new DataColumn ("Company", typeof (string)));
+		t.Columns.Add (new DataColumn ("Price", typeof (double)));
+
+		DataSet ds = new DataSet ("ds");
+
+		ds.Tables.Add (t);
+		AddStock (t, "MSFT", "Microsoft Corp.", 25.81);
+		AddStock (t, "NOVL", "Novell Inc.", 6.17);
+		AddStock (t, "GOOG", "Google", 300.95);
+
+		rep.DataSource = ds;
+		rep.DataMember = "t";
+		rep.DataBind ();		
+	}
+
+	void AddStock (DataTable dt, string symbol, string co, double price)
+	{
+		DataRow dr = dt.NewRow ();
+		dr [0] = symbol;
+		dr [1] = co;
+		dr [2] = price;
+		dt.Rows.Add (dr);
+	}
+
+	void CreateItem (object sender, RepeaterItemEventArgs e)
+	{
+		if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
+			if (e.Item.DataItem == null)
+				lbl1.Text = "FAILED";
+	}
+</script>
+</head>
+<body>
+	<asp:Label id="lbl1" runat="server" />
+	<form runat="server">
+		<asp:Repeater id="rep" OnItemCreated="CreateItem" runat="server">
+			<HeaderTemplate>
+				<table>
+					<thead>
+						<tr>
+						<td>Stock</td>
+						<td>Company</td>
+						<td>Price</td>
+						</tr>
+					</thead>
+			</HeaderTemplate>
+			<ItemTemplate>
+				<tr>
+					<td><%# DataBinder.Eval (Container.DataItem, "Symbol") %></td> 
+					<td><%# DataBinder.Eval (Container.DataItem, "Company") %></td>
+					<td><%# DataBinder.Eval (Container.DataItem, "Price") %></td>
+				</tr>
+			</ItemTemplate>
+			<FooterTemplate>
+				</table>
+			</FooterTemplate>
+		</asp:Repeater>
+	</form>
+</body>
+</html>

+ 74 - 0
mcs/class/System.Web/Test/standalone/repeater/postback.aspx

@@ -0,0 +1,74 @@
+<%@ Page Language="C#" AutoEventWireup="True" %>
+<%@ Import Namespace="System.Data" %>
+
+<html>
+<head>
+<script runat="server">
+	void Page_Load (object s, EventArgs e)
+	{
+		if (IsPostBack)
+			return;
+		
+		DataTable t = new DataTable ("t");
+		
+		t.Columns.Add (new DataColumn ("Symbol", typeof (string)));
+		t.Columns.Add (new DataColumn ("Company", typeof (string)));
+		t.Columns.Add (new DataColumn ("Price", typeof (double)));
+
+		DataSet ds = new DataSet ("ds");
+
+		ds.Tables.Add (t);
+		AddStock (t, "MSFT", "Microsoft Corp.", 25.81);
+		AddStock (t, "NOVL", "Novell Inc.", 6.17);
+		AddStock (t, "GOOG", "Google", 300.95);
+
+		rep.DataSource = ds;
+		rep.DataMember = "t";
+		rep.DataBind ();		
+	}
+
+	void AddStock (DataTable dt, string symbol, string co, double price)
+	{
+		DataRow dr = dt.NewRow ();
+		dr [0] = symbol;
+		dr [1] = co;
+		dr [2] = price;
+		dt.Rows.Add (dr);
+	}
+
+	void ItemCommand (object sender, RepeaterCommandEventArgs e)
+	{
+		lbl1.Text = String.Format ("You bought {0}", e.CommandArgument);
+	}
+</script>
+</head>
+<body>
+	<asp:Label id="lbl1" runat="server" />
+	<form runat="server">
+		<asp:Repeater id="rep" OnItemCommand="ItemCommand" runat="server">
+			<HeaderTemplate>
+				<table>
+					<thead>
+						<tr>
+						<td>Stock</td>
+						<td>Company</td>
+						<td>Price</td>
+						<td>Buy</td>
+						</tr>
+					</thead>
+			</HeaderTemplate>
+			<ItemTemplate>
+				<tr>
+					<td><%# DataBinder.Eval (Container.DataItem, "Symbol") %></td> 
+					<td><%# DataBinder.Eval (Container.DataItem, "Company") %></td>
+					<td><%# DataBinder.Eval (Container.DataItem, "Price") %></td>
+					<td><asp:LinkButton Text="Buy" runat="server" CommandArgument='<%# DataBinder.Eval (Container.DataItem, "Symbol") %>' /></td>
+				</tr>
+			</ItemTemplate>
+			<FooterTemplate>
+				</table>
+			</FooterTemplate>
+		</asp:Repeater>
+	</form>
+</body>
+</html>

+ 21 - 0
mcs/class/System.Web/Test/standalone/security/xss-false-alarm.aspx

@@ -0,0 +1,21 @@
+<%@ Page Language="C#" %>
+<script runat="server">
+	void Page_Load (object o, EventArgs e)
+	{
+		DataBind ();
+	}
+</script>
+
+<html>
+<body>
+	<asp:datalist DataSource="<%# Request.Form %>" runat="server">
+        	<ItemTemplate>
+			<%# Container.DataItem %> -- <%# Request.Form [(string) Container.DataItem] %>
+		</ItemTemplate>
+	</asp:datalist>
+
+	<form runat="server">
+	      <asp:button Text="Go Here >" runat="server"/> 
+	</form>
+</body>
+</html>

+ 29 - 0
mcs/class/System.Web/Test/standalone/validators/isvalid-not-enabled.aspx

@@ -0,0 +1,29 @@
+<html>
+<head>
+<script language="C#" runat=server>
+	void Click(object s, EventArgs e)
+	{
+        	if (Page.IsValid == true)
+			lblOutput.Text = "PASS";
+		else
+			lblOutput.Text = "FAIL";
+	}
+</script>
+</head>
+<body>
+
+<form runat="server">
+
+<p>
+Just click validate. It should say pass.
+</p>
+
+<asp:label ID="lblOutput" runat=server /><br>
+
+<asp:textbox id="t1" runat=server />
+<asp:requiredfieldvalidator id="r1" ControlToValidate="t1" Enabled="false" runat="server" />
+
+<asp:button id="b1" text="Validate" OnClick="Click" runat="server" />
+</form>
+</body>
+</html>

+ 16 - 0
mcs/class/System.Web/Test/standalone/webcontrol/disabled-recursive.aspx

@@ -0,0 +1,16 @@
+<!-- bug 52171. on msft v1.1 with ff this does not work, however it does work on ie.
+     on v2 beta 2, it works with both
+
+     the bug report said this was in web control...
+-->
+<html>
+	<body>
+		<form runat="server">
+			<asp:table runat="server" enabled="false">
+				<asp:tablerow>
+					<asp:tablecell><asp:checkbox runat="server" text="i should be disabled" /></asp:tablecell>
+				</asp:tablerow>
+			</asp:table>
+		</form>
+	</body>
+</html>