public void Write_Read_roundtrip_with_datetime___OK([Values(true, false)] bool writeHeader) { DateTime now = new DateTime(2019, 12, 16, 21, 57, 13); DateTime[] dts = { now.AddMinutes(-12), now }; DataPoint[] dataPoints = { new DataPoint(dts[0], 2), new DataPoint(dts[1], -1) }; var sut = new DataPointSerializer(); string file = _tmpFile; const string datetimeFormat = "yyyy-MM-dd:HHmmss"; if (writeHeader) { sut.Write(file, dataPoints, header: ("x", "y"), dateTimeFormat: datetimeFormat); } else { sut.Write(file, dataPoints, dateTimeFormat: datetimeFormat); } DataPoint[] actual = sut.Read(file, firstLineIsHeader: writeHeader, dateTimeFormat: datetimeFormat).ToArray(); Assert.Multiple(() => { Assert.AreEqual(2, actual.Length); Assert.AreEqual(dts[0], new DateTime((long)(actual[0].X))); Assert.AreEqual(dataPoints[0].Y, actual[0].Y, 1e-3); Assert.AreEqual(dts[1], new DateTime((long)(actual[1].X))); Assert.AreEqual(dataPoints[1].Y, actual[1].Y, 1e-3); }); }
//--------------------------------------------------------------------- private static void Run(string name, double instrumentPrecision, double compressionDeviation) { var dataPointReader = new DataPointSerializer(); IEnumerable <DataPoint> compressed = dataPointReader .Read($"{name}.csv", dateTimeFormat: "yyyy-MM-dd_HH:mm:ss") .DeadBandCompression(instrumentPrecision) .SwingingDoorCompression(compressionDeviation); dataPointReader.Write($"{name}_compressed.csv", compressed, dateTimeFormat: "yyyy-MM-dd_HH:mm:ss"); GnuPlot(name); ShowChart(name); }
static void Main() { Environment.CurrentDirectory = Path.Combine(Directory.GetCurrentDirectory(), "data"); var dataPointReader = new DataPointSerializer(); IEnumerable <DataPoint> compressed = dataPointReader .Read("coolant-temp.csv") .DeadBandCompression(1d); dataPointReader.Write("coolant-temp_compressed.csv", compressed, header: ("Oh", "Temp")); GnuPlot(); ShowChart(); }
public void Write_Read_roundtrip___OK([Values(true, false)] bool writeHeader) { DataPoint[] dataPoints = { DataPoint.Origin, new DataPoint(1, 2), new DataPoint(2, -1) }; var sut = new DataPointSerializer(); string file = _tmpFile; if (writeHeader) { sut.Write(file, dataPoints, header: ("x", "y")); } else { sut.Write(file, dataPoints); } DataPoint[] actual = sut.Read(file, firstLineIsHeader: writeHeader).ToArray(); CollectionAssert.AreEqual(dataPoints, actual); }