From 09c6e88f1454db60f85ca24de38b1d2659d3ca33 Mon Sep 17 00:00:00 2001
From: Richard Schmidt <richard.schmidt@mailbox.tu-dresden.de>
Date: Sun, 11 Aug 2019 13:30:42 +0200
Subject: [PATCH] Test CsvXAlignedCategoriesParser

---
 .../examples/csv/0_bar_chart_categorical.csv  |   2 +-
 .../brailleplot/csvparser/CsvParserTest.java  |  17 ---
 .../CsvXAlignedCategoriesParserTest.java      | 135 +++++++++++++++---
 3 files changed, 120 insertions(+), 34 deletions(-)
 delete mode 100644 src/test/java/de/tudresden/inf/mci/brailleplot/csvparser/CsvParserTest.java

diff --git a/src/main/resources/examples/csv/0_bar_chart_categorical.csv b/src/main/resources/examples/csv/0_bar_chart_categorical.csv
index 9804ec7a..d12fb20e 100644
--- a/src/main/resources/examples/csv/0_bar_chart_categorical.csv
+++ b/src/main/resources/examples/csv/0_bar_chart_categorical.csv
@@ -1,4 +1,4 @@
-, Reihe a , Reihe b , Reihe c, Reihe d
+, Reihe a , Reihe b , Reihe c , Reihe d
 Kat.1 ,3 ,"2,5" ,1 ,3
 Kat.2 ,4 ,3 ,2 ,5
 Kat.3 ,"4,5" ,3 ,1,"0,2"
diff --git a/src/test/java/de/tudresden/inf/mci/brailleplot/csvparser/CsvParserTest.java b/src/test/java/de/tudresden/inf/mci/brailleplot/csvparser/CsvParserTest.java
deleted file mode 100644
index 8f55f213..00000000
--- a/src/test/java/de/tudresden/inf/mci/brailleplot/csvparser/CsvParserTest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package de.tudresden.inf.mci.brailleplot.csvparser;
-
-import org.junit.jupiter.api.Test;
-
-public class CsvParserTest {
-/*
-    @Test
-    public void testCsvParser() {
-
-    }
-
-    @Test
-    public void testParse() {
-
-    }
- */
-}
diff --git a/src/test/java/de/tudresden/inf/mci/brailleplot/csvparser/CsvXAlignedCategoriesParserTest.java b/src/test/java/de/tudresden/inf/mci/brailleplot/csvparser/CsvXAlignedCategoriesParserTest.java
index 00658031..4dad0961 100644
--- a/src/test/java/de/tudresden/inf/mci/brailleplot/csvparser/CsvXAlignedCategoriesParserTest.java
+++ b/src/test/java/de/tudresden/inf/mci/brailleplot/csvparser/CsvXAlignedCategoriesParserTest.java
@@ -1,32 +1,135 @@
 package de.tudresden.inf.mci.brailleplot.csvparser;
 
+import de.tudresden.inf.mci.brailleplot.datacontainers.CategoricalPointListContainer;
 import de.tudresden.inf.mci.brailleplot.datacontainers.PointList;
 import de.tudresden.inf.mci.brailleplot.datacontainers.PointListContainer;
+import de.tudresden.inf.mci.brailleplot.point.Point2DDouble;
 import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.Iterator;
 import java.util.List;
 
 public class CsvXAlignedCategoriesParserTest {
-/*
-    CsvXAlignedCategoriesParser parser = new CsvXAlignedCategoriesParser();
-    List<? extends List<String>> csvDataHorizontal = ;
-    List<? extends List<String>> csvDataVertical = ;
-    PointListContainer<PointList> resultHorizontal = ;
-    PointListContainer<PointList> resultVertical = ;
 
-    @Test
-    public void testHorizontalParsing () {
-        Assertions.assertEquals(resultHorizontal, () -> {
-            parser.parseAsHorizontalDataSets(csvDataHorizontal);
-        });
+    public static CsvParser parser;
+
+    @BeforeAll
+    public static void initialize() {
+        ClassLoader classloader = Thread.currentThread().getContextClassLoader();
+        InputStream csvStream = classloader.getResourceAsStream("examples/csv/0_bar_chart_categorical.csv");
+        Reader csvReader = new BufferedReader(new InputStreamReader(csvStream));
+        try {
+            parser = new CsvParser(csvReader, ',', '\"');
+        } catch (Exception e) {
+
+        }
+
     }
 
     @Test
-    public void testVerticalParsing () {
-        Assertions.assertEquals(resultVertical, () -> {
-            parser.parseAsHorizontalDataSets(csvDataVertical);
-        });
+    public void testVerticalParsing() {
+        CategoricalPointListContainer<PointList> container = parser.parse(CsvType.X_ALIGNED_CATEGORIES, CsvOrientation.VERTICAL);
+        Assertions.assertEquals(container.getCategory(1), " Reihe a ");
+        Assertions.assertEquals(container.getCategory(2), " Reihe b ");
+        Assertions.assertEquals(container.getCategory(3), " Reihe c ");
+        Assertions.assertEquals(container.getCategory(4), " Reihe d");
+
+        Iterator containerIt = container.iterator();
+        PointList list_1 = (PointList) containerIt.next();
+        Assertions.assertEquals(list_1.getName(), "Kat.1");
+
+        Iterator it = list_1.getListIterator();
+
+        Point2DDouble point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 1.0);
+        Assertions.assertEquals(point.getY(), 3.0);
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 2.0);
+        Assertions.assertEquals(point.getY(), 2.5);
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 3.0);
+        Assertions.assertEquals(point.getY(), 1.0);
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 4.0);
+        Assertions.assertEquals(point.getY(), 3.0);
+
+        PointList list_2 = (PointList) containerIt.next();
+        Assertions.assertEquals(list_2.getName(), "Kat.2");
+
+        it = list_2.getListIterator();
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 1.0);
+        Assertions.assertEquals(point.getY(), 4.0);
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 2.0);
+        Assertions.assertEquals(point.getY(), 3.0);
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 3.0);
+        Assertions.assertEquals(point.getY(), 2.0);
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 4.0);
+        Assertions.assertEquals(point.getY(), 5.0);
+
+        PointList list_3 = (PointList) containerIt.next();
+        Assertions.assertEquals(list_3.getName(), "Kat.3");
+
+        it = list_3.getListIterator();
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 1.0);
+        Assertions.assertEquals(point.getY(), 4.5);
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 2.0);
+        Assertions.assertEquals(point.getY(), 3.0);
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 3.0);
+        Assertions.assertEquals(point.getY(), 1.0);
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 4.0);
+        Assertions.assertEquals(point.getY(), 0.2);
+
+        PointList list_4 = (PointList) containerIt.next();
+        Assertions.assertEquals(list_4.getName(), "Kat.4");
+
+        it = list_4.getListIterator();
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 1.0);
+        Assertions.assertEquals(point.getY(), 4.5);
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 2.0);
+        Assertions.assertEquals(point.getY(), 3.0);
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 3.0);
+        Assertions.assertEquals(point.getY(), 1.0);
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 4.0);
+        Assertions.assertEquals(point.getY(), 0.2);
+
+    }
+/*
+    @Test
+    public void testHorizontalParsing() {
+
     }
- */
+*/
 }
-- 
GitLab