From a5fcc98115526de01d9bf4fd9da72b6cdf640467 Mon Sep 17 00:00:00 2001
From: Richard Schmidt <richard.schmidt@mailbox.tu-dresden.de>
Date: Sun, 11 Aug 2019 13:40:35 +0200
Subject: [PATCH] Test CsvXAlignedParser

---
 .../csvparser/CsvXAlignedParser.java          |   2 +-
 .../csvparser/CsvXAlignedParserTest.java      | 108 +++++++++++++++---
 2 files changed, 93 insertions(+), 17 deletions(-)

diff --git a/src/main/java/de/tudresden/inf/mci/brailleplot/csvparser/CsvXAlignedParser.java b/src/main/java/de/tudresden/inf/mci/brailleplot/csvparser/CsvXAlignedParser.java
index 8f5a775e..c966203d 100644
--- a/src/main/java/de/tudresden/inf/mci/brailleplot/csvparser/CsvXAlignedParser.java
+++ b/src/main/java/de/tudresden/inf/mci/brailleplot/csvparser/CsvXAlignedParser.java
@@ -13,7 +13,7 @@ import java.util.List;
 import java.util.Objects;
 
 /**
- * Parser for CSV files with aligned mX-values. Inherits from CsvParseAlgorithm.
+ * Parser for CSV files with aligned X-values. Inherits from CsvParseAlgorithm.
  * @author SVGPlott-Team, Georg Graßnick
  * @version 2019.07.29
  */
diff --git a/src/test/java/de/tudresden/inf/mci/brailleplot/csvparser/CsvXAlignedParserTest.java b/src/test/java/de/tudresden/inf/mci/brailleplot/csvparser/CsvXAlignedParserTest.java
index 3777b8c9..f8acb109 100644
--- a/src/test/java/de/tudresden/inf/mci/brailleplot/csvparser/CsvXAlignedParserTest.java
+++ b/src/test/java/de/tudresden/inf/mci/brailleplot/csvparser/CsvXAlignedParserTest.java
@@ -2,31 +2,107 @@ package de.tudresden.inf.mci.brailleplot.csvparser;
 
 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 CsvXAlignedParserTest {
-/*
-    CsvXAlignedParser parser = new CsvXAlignedParser();
-    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.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() {
+        PointListContainer<PointList> container = parser.parse(CsvType.X_ALIGNED, CsvOrientation.VERTICAL);
+        Iterator containerIt = container.iterator();
+        PointList list_1 = (PointList) containerIt.next();
+        Assertions.assertEquals(list_1.getName(), "a");
+
+        Iterator it = list_1.getListIterator();
+
+        Point2DDouble point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 0.0);
+        Assertions.assertEquals(point.getY(), 1.0);
+
+        PointList list_2 = (PointList) containerIt.next();
+        Assertions.assertEquals(list_2.getName(), "b");
+
+        it = list_2.getListIterator();
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 0.0);
+        Assertions.assertEquals(point.getY(), 2.2);
+
+        PointList list_3 = (PointList) containerIt.next();
+        Assertions.assertEquals(list_3.getName(), "c");
+
+        it = list_3.getListIterator();
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 0.0);
+        Assertions.assertEquals(point.getY(), 3.0);
+
+        PointList list_4 = (PointList) containerIt.next();
+        Assertions.assertEquals(list_4.getName(), "d");
+
+        it = list_4.getListIterator();
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 0.0);
+        Assertions.assertEquals(point.getY(), 4.4);
+
+        PointList list_5 = (PointList) containerIt.next();
+        Assertions.assertEquals(list_5.getName(), "e");
+
+        it = list_5.getListIterator();
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 0.0);
+        Assertions.assertEquals(point.getY(), 5.0);
+
+        PointList list_6 = (PointList) containerIt.next();
+        Assertions.assertEquals(list_6.getName(), "f");
+
+        it = list_6.getListIterator();
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 0.0);
+        Assertions.assertEquals(point.getY(), 6.0);
+
+        PointList list_7 = (PointList) containerIt.next();
+        Assertions.assertEquals(list_7.getName(), "g");
+
+        it = list_7.getListIterator();
+
+        point = (Point2DDouble) it.next();
+        Assertions.assertEquals(point.getX(), 0.0);
+        Assertions.assertEquals(point.getY(), 7.0);
+
+    }
+/*
+    @Test
+    public void testHorizontalParsing() {
+
     }
- */
+*/
 }
-- 
GitLab