public void NonUsefulReadMethodKeepsOldBehaviour()
        {
            // check old implementation
            var csvReaderWriterOld = new CSVReaderWriterForAnnotation();

            AssertReturnsTrueOrThrowsException(csvReaderWriterOld);

            // check new implementation
            var csvReaderWriterNew = new CsvReaderWriter();

            AssertReturnsTrueOrThrowsException(csvReaderWriterNew);
        }
        public void WritesColumns()
        {
            // check old implementation
            var csvReaderWriterOld = new CSVReaderWriterForAnnotation();

            AssertWritesColumns(csvReaderWriterOld);

            // check new implementation
            var csvReaderWriterNew = new CsvReaderWriter();

            AssertWritesColumns(csvReaderWriterNew);
        }
        public void ReadsAllLines()
        {
            // check old implementation
            var csvReaderWriterOld = new CSVReaderWriterForAnnotation();

            AssertReadsAllLines(csvReaderWriterOld);

            // check new implementation
            var csvReaderWriterNew = new CsvReaderWriter();

            AssertReadsAllLines(csvReaderWriterNew);
        }
        public void Should_write_columns_faster_with_updates()
        {
            CSVReaderWriter csvReaderWriter = new CSVReaderWriter();

            string fileName = GetTempFilePath();

            csvReaderWriter.Open(fileName, CSVReaderWriter.Mode.Write);

            DateTime startTime = DateTime.Now;

            for (int i = 0; i < 10000; i++)
            {
                csvReaderWriter.Write("COL 1", "column 2", "Test");
            }
            DateTime endTime = DateTime.Now;

            csvReaderWriter.Close();


            TimeSpan updatedDuration = endTime.Subtract(startTime);



            CSVReaderWriterForAnnotation oldCsvReaderWriter = new CSVReaderWriterForAnnotation();

            fileName = GetTempFilePath();

            oldCsvReaderWriter.Open(fileName, CSVReaderWriterForAnnotation.Mode.Write);

            startTime = DateTime.Now;
            for (int i = 0; i < 100000; i++)
            {
                oldCsvReaderWriter.Write("COL 1", "column 2", "Test");
            }
            endTime = DateTime.Now;

            oldCsvReaderWriter.Close();


            TimeSpan oldDuration = endTime.Subtract(startTime);


            string newTime = updatedDuration.ToString("c");
            string oldTime = oldDuration.ToString("c");

            System.Diagnostics.Debug.Write(newTime);
            System.Diagnostics.Debug.Write(oldTime);

            Assert.Less(updatedDuration.Ticks, oldDuration.Ticks);
        }