/* * Karinto Library Project * * This software is distributed under a zlib-style license. * See license.txt for more information. */ using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.Data; using System.IO; using Karinto; using Karinto.Xml; using NUnit.Framework; namespace KarintoTest { [TestFixture] public class CsvWriterTest { [Test] public void XY2chData() { File.Delete("Resources/d_d_d_out.csv"); CsvReader reader = new CsvReader(); Data.XY2ChDataTable source = reader.Read("Resources/d_d_d.csv"); CsvWriter writer = new CsvWriter(); writer.Write("Resources/d_d_d_out.csv", source); Data.XY2ChDataTable table = reader.Read("Resources/d_d_d_out.csv"); Assert.AreEqual("X", table.XColumn.Caption); Assert.AreEqual("Y1", table.Y1Column.Caption); Assert.AreEqual("Y2", table.Y2Column.Caption); Assert.AreEqual(0.0, table[0].X); Assert.AreEqual(5.0, table[50].X); Assert.AreEqual(10.0, table[100].X); Assert.AreEqual(0.0, table[0].Y1); Assert.AreEqual(0.0, table[50].Y1); Assert.AreEqual(0.0, table[100].Y1); Assert.AreEqual(0.0, table[0].Y2); Assert.AreEqual(1.0, table[50].Y2); Assert.AreEqual(0.0, table[100].Y2); } [Test] public void XY2chDataWithCaption() { File.Delete("Resources/d_d_d_out.csv"); CsvReader reader = new CsvReader(); Data.XY2ChDataTable source = reader.Read("Resources/d_d_d.csv"); CsvWriter writer = new CsvWriter(); writer.WriteWithCaption("Resources/d_d_d_out.csv", source); Data.XY2ChDataTable table = reader.Read("Resources/d_d_d_out.csv"); Assert.AreEqual("Header1", table.XColumn.Caption); Assert.AreEqual("Header2", table.Y1Column.Caption); Assert.AreEqual("Header3", table.Y2Column.Caption); Assert.AreEqual(0.0, table[0].X); Assert.AreEqual(5.0, table[50].X); Assert.AreEqual(10.0, table[100].X); Assert.AreEqual(0.0, table[0].Y1); Assert.AreEqual(0.0, table[50].Y1); Assert.AreEqual(0.0, table[100].Y1); Assert.AreEqual(0.0, table[0].Y2); Assert.AreEqual(1.0, table[50].Y2); Assert.AreEqual(0.0, table[100].Y2); } [Test] public void XY1chData() { File.Delete("Resources/d_d_d_out.csv"); CsvReader reader = new CsvReader(); Data.XY1ChDataTable table = reader.Read("Resources/d_d_d.csv"); Assert.AreEqual("Header1", table.XColumn.Caption); Assert.AreEqual("Header2", table.YColumn.Caption); Assert.AreEqual(0.0, table[0].X); Assert.AreEqual(5.0, table[50].X); Assert.AreEqual(10.0, table[100].X); Assert.AreEqual(0.0, table[0].Y); Assert.AreEqual(0.0, table[50].Y); Assert.AreEqual(0.0, table[100].Y); } [Test] public void Prototype() { File.Delete("Resources/d_d_d_out.csv"); DataTable prototype = new DataTable(); prototype.Columns.Add("X", typeof(decimal)); prototype.Columns.Add("Y1", typeof(float)); prototype.Columns.Add("Y2", typeof(int)); CsvReader reader = new CsvReader(prototype); DataTable source = reader.Read("Resources/d_d_d.csv"); CsvWriter writer = new CsvWriter(prototype); prototype = null; writer.WriteWithCaption("Resources/d_d_d_out.csv", source); DataTable table = reader.Read("Resources/d_d_d.csv"); Assert.AreEqual("Header1", table.Columns["X"].Caption); Assert.AreEqual("Header2", table.Columns["Y1"].Caption); Assert.AreEqual("Header3", table.Columns["Y2"].Caption); Assert.AreEqual(0.0m, table.Rows[0]["X"]); Assert.AreEqual(5.0m, table.Rows[50]["X"]); Assert.AreEqual(10.0m, table.Rows[100]["X"]); Assert.AreEqual(0.0f, table.Rows[0]["Y1"]); Assert.AreEqual(0.0f, table.Rows[50]["Y1"]); Assert.AreEqual(0.0f, table.Rows[100]["Y1"]); Assert.AreEqual(0, table.Rows[0]["Y2"]); Assert.AreEqual(1, table.Rows[50]["Y2"]); Assert.AreEqual(0, table.Rows[100]["Y2"]); } } }