public void ColumnFormatterTest() { ColumnSerializer formatter = new ColumnSerializer(new string[] { "1", "2", "3", "4" }); formatter.AddRow(new string[] { "a", "bb", "ccc", "dddd" }); formatter.AddRow(new string[] { " A ", " BB ", " CCC ", " DDDD " }); formatter.AddRow(new string[] { "w", "x", "y", "z" }); StringWriter writer = new StringWriter(); formatter.Serialize(writer); Assert.AreEqual( "1 2 3 4 \r\n" + "- -- --- ----\r\n" + "a bb ccc dddd\r\n" + "A BB CCC DDDD\r\n" + "w x y z \r\n", writer.ToString()); }
public override void Serialize(TextWriter writer, IEnumerable <World> worlds, SectorSerializeOptions options) { List <string> cols = new List <string> { "Hex", "Name", "UWP", "Remarks", "{Ix}", "(Ex)", "[Cx]", "N", "B", "Z", "PBG", "W", "A", "Stellar" }; if (options.includeRoutes) { cols.Add("Routes"); } ColumnSerializer formatter = new ColumnSerializer(cols); formatter.SetMinimumWidth("Name", 20); formatter.SetMinimumWidth("Remarks", 20); foreach (World world in worlds.OrderBy(world => world.SS)) { List <string> row = new List <string> { options.sscoords?world.SubsectorHex : world.Hex, world.Name, world.UWP, world.Remarks, world.Importance ?? "", world.Economic ?? "", world.Cultural ?? "", DashIfEmpty(world.Nobility ?? ""), DashIfEmpty(world.Bases), DashIfEmpty(world.Zone), world.PBG, world.Worlds > 0 ? world.Worlds.ToString() : "", world.Allegiance, world.Stellar }; if (options.includeRoutes) { row.Add(world.Routes ?? ""); } formatter.AddRow(row); } formatter.Serialize(writer, options.includeHeader); }