diff data/fileio/test/CSVReaderTest.h @ 1874:48f50a4a82ea

Merge from branch csv-import-headers
author Chris Cannam
date Thu, 18 Jun 2020 13:43:20 +0100
parents 1d44fdc8196c
children f49afb5b9eac
line wrap: on
line diff
--- a/data/fileio/test/CSVReaderTest.h	Tue Jun 16 15:15:57 2020 +0100
+++ b/data/fileio/test/CSVReaderTest.h	Thu Jun 18 13:43:20 2020 +0100
@@ -77,7 +77,23 @@
         auto actual = qobject_cast<SparseOneDimensionalModel *>(model);
         QVERIFY(actual);
         QCOMPARE(actual->getAllEvents().size(), 5);
-        //!!! + the actual contents
+        vector<sv_frame_t> expected { 45678, 123239, 320130, 452103, 620301 };
+        for (int i = 0; in_range_for(expected, i); ++i) {
+            QCOMPARE(actual->getAllEvents()[i], Event(expected[i]));
+        }
+        delete model;
+    }
+
+    void modelType1DSamplesWithHeader() {
+        Model *model = nullptr;
+        loadFrom("model-type-1d-samples-header.csv", model);
+        auto actual = qobject_cast<SparseOneDimensionalModel *>(model);
+        QVERIFY(actual);
+        QCOMPARE(actual->getAllEvents().size(), 5);
+        vector<sv_frame_t> expected { 45678, 123239, 320130, 452103, 620301 };
+        for (int i = 0; in_range_for(expected, i); ++i) {
+            QCOMPARE(actual->getAllEvents()[i], Event(expected[i]));
+        }
         delete model;
     }
 
@@ -90,6 +106,15 @@
         delete model;
     }
 
+    void modelType1DSecondsWithHeader() {
+        Model *model = nullptr;
+        loadFrom("model-type-1d-seconds-header.csv", model);
+        auto actual = qobject_cast<SparseOneDimensionalModel *>(model);
+        QVERIFY(actual);
+        QCOMPARE(actual->getAllEvents().size(), 5);
+        delete model;
+    }
+
     void modelType2DDurationSamples() {
         Model *model = nullptr;
         loadFrom("model-type-2d-duration-samples.csv", model);
@@ -98,6 +123,15 @@
         QCOMPARE(actual->getAllEvents().size(), 5);
         delete model;
     }
+
+    void modelType2DDurationSamplesWithHeader() {
+        Model *model = nullptr;
+        loadFrom("model-type-2d-duration-samples-header.csv", model);
+        auto actual = qobject_cast<RegionModel *>(model);
+        QVERIFY(actual);
+        QCOMPARE(actual->getAllEvents().size(), 5);
+        delete model;
+    }
     
     void modelType2DDurationSeconds() {
         Model *model = nullptr;
@@ -108,6 +142,15 @@
         delete model;
     }
     
+    void modelType2DDurationSecondsWithHeader() {
+        Model *model = nullptr;
+        loadFrom("model-type-2d-duration-seconds-header.csv", model);
+        auto actual = qobject_cast<RegionModel *>(model);
+        QVERIFY(actual);
+        QCOMPARE(actual->getAllEvents().size(), 5);
+        delete model;
+    }
+    
     void badNegativeDuration() {
         Model *model = nullptr;
         loadFrom("bad-negative-duration.csv", model);
@@ -127,6 +170,15 @@
         delete model;
     }
     
+    void modelType2DEndTimeSamplesWithHeader() {
+        Model *model = nullptr;
+        loadFrom("model-type-2d-endtime-samples-header.csv", model);
+        auto actual = qobject_cast<RegionModel *>(model);
+        QVERIFY(actual);
+        QCOMPARE(actual->getAllEvents().size(), 5);
+        delete model;
+    }
+    
     void modelType2DEndTimeSeconds() {
         Model *model = nullptr;
         loadFrom("model-type-2d-endtime-seconds.csv", model);
@@ -136,12 +188,48 @@
         delete model;
     }
     
+    void modelType2DEndTimeSecondsWithHeader() {
+        Model *model = nullptr;
+        loadFrom("model-type-2d-endtime-seconds-header.csv", model);
+        auto actual = qobject_cast<RegionModel *>(model);
+        QVERIFY(actual);
+        QCOMPARE(actual->getAllEvents().size(), 5);
+        delete model;
+    }
+    
     void modelType2DImplicit() {
         Model *model = nullptr;
         loadFrom("model-type-2d-implicit.csv", model);
         auto actual = qobject_cast<SparseTimeValueModel *>(model);
         QVERIFY(actual);
         QCOMPARE(actual->getAllEvents().size(), 5);
+        vector<sv_frame_t> expectedFrames { 0, 1024, 2048, 3072, 4096 };
+        vector<float> expectedValues { 4.f, 4.2f, 0.4f, 3.8f, -2.3f };
+        vector<QString> expectedLabels { {}, {}, "A label", {}, {} };
+        for (int i = 0; in_range_for(expectedFrames, i); ++i) {
+            QCOMPARE(actual->getAllEvents()[i],
+                     Event(expectedFrames[i],
+                           expectedValues[i],
+                           expectedLabels[i]));
+        }
+        delete model;
+    }
+    
+    void modelType2DImplicitWithHeader() {
+        Model *model = nullptr;
+        loadFrom("model-type-2d-implicit-header.csv", model);
+        auto actual = qobject_cast<SparseTimeValueModel *>(model);
+        QVERIFY(actual);
+        QCOMPARE(actual->getAllEvents().size(), 5);
+        vector<sv_frame_t> expectedFrames { 0, 1024, 2048, 3072, 4096 };
+        vector<float> expectedValues { 4.f, 4.2f, 0.4f, 3.8f, -2.3f };
+        vector<QString> expectedLabels { {}, {}, "A label", {}, {} };
+        for (int i = 0; in_range_for(expectedFrames, i); ++i) {
+            QCOMPARE(actual->getAllEvents()[i],
+                     Event(expectedFrames[i],
+                           expectedValues[i],
+                           expectedLabels[i]));
+        }
         delete model;
     }
     
@@ -154,6 +242,15 @@
         delete model;
     }
     
+    void modelType2DSamplesWithHeader() {
+        Model *model = nullptr;
+        loadFrom("model-type-2d-samples-header.csv", model);
+        auto actual = qobject_cast<SparseTimeValueModel *>(model);
+        QVERIFY(actual);
+        QCOMPARE(actual->getAllEvents().size(), 5);
+        delete model;
+    }
+    
     void modelType2DSeconds() {
         Model *model = nullptr;
         loadFrom("model-type-2d-seconds.csv", model);
@@ -163,6 +260,15 @@
         delete model;
     }
     
+    void modelType2DSecondsWithHeader() {
+        Model *model = nullptr;
+        loadFrom("model-type-2d-seconds-header.csv", model);
+        auto actual = qobject_cast<SparseTimeValueModel *>(model);
+        QVERIFY(actual);
+        QCOMPARE(actual->getAllEvents().size(), 5);
+        delete model;
+    }
+    
     void modelType3DImplicit() {
         Model *model = nullptr;
         loadFrom("model-type-3d-implicit.csv", model);
@@ -173,6 +279,16 @@
         delete model;
     }
     
+    void modelType3DImplicitWithHeader() {
+        Model *model = nullptr;
+        loadFrom("model-type-3d-implicit-header.csv", model);
+        auto actual = qobject_cast<EditableDenseThreeDimensionalModel *>(model);
+        QVERIFY(actual);
+        QCOMPARE(actual->getWidth(), 6);
+        QCOMPARE(actual->getHeight(), 6);
+        delete model;
+    }
+    
     void modelType3DSamples() {
         Model *model = nullptr;
         loadFrom("model-type-3d-samples.csv", model);
@@ -183,6 +299,16 @@
         delete model;
     }
     
+    void modelType3DSamplesWithHeader() {
+        Model *model = nullptr;
+        loadFrom("model-type-3d-samples-header.csv", model);
+        auto actual = qobject_cast<EditableDenseThreeDimensionalModel *>(model);
+        QVERIFY(actual);
+        QCOMPARE(actual->getWidth(), 6);
+        QCOMPARE(actual->getHeight(), 6);
+        delete model;
+    }
+    
     void modelType3DSeconds() {
         Model *model = nullptr;
         loadFrom("model-type-3d-seconds.csv", model);
@@ -193,6 +319,16 @@
         delete model;
     }
     
+    void modelType3DSecondsWithHeader() {
+        Model *model = nullptr;
+        loadFrom("model-type-3d-seconds-header.csv", model);
+        auto actual = qobject_cast<EditableDenseThreeDimensionalModel *>(model);
+        QVERIFY(actual);
+        QCOMPARE(actual->getWidth(), 6);
+        QCOMPARE(actual->getHeight(), 6);
+        delete model;
+    }
+    
     void withBlankLines1D() {
         Model *model = nullptr;
         loadFrom("with-blank-lines-1d.csv", model);