From f10f800353473cbc5d27bb4d7fc6f18ae7c51223 Mon Sep 17 00:00:00 2001
From: p9malino26 <pm3g19@soton.ac.uk>
Date: Fri, 7 May 2021 08:46:49 +0100
Subject: [PATCH] added missing files

---
 Makefile                               |   5 +
 pr1.cql                                |   6 ++
 pr10.cql                               |   5 +
 pr2.cql                                |   6 ++
 pr3.cql                                |   9 ++
 pr4.cql                                |   6 ++
 pr5.cql                                |   5 +
 pr6.cql                                |   9 ++
 pr7.cql                                |   0
 pr8.cql                                |   0
 pr9.cql                                |   0
 test.sh                                |  19 ++++
 testCases/pr1/.DS_Store                | Bin 0 -> 6148 bytes
 testCases/pr1/expected/exp1.txt        |   1 +
 testCases/pr1/expected/exp10.txt       |   4 +
 testCases/pr1/expected/exp11.txt       |   4 +
 testCases/pr1/expected/exp12.txt       |   4 +
 testCases/pr1/expected/exp13.txt       |   4 +
 testCases/pr1/expected/exp14.txt       |   4 +
 testCases/pr1/expected/exp15.txt       | 130 +++++++++++++++++++++++++
 testCases/pr1/expected/exp2.txt        |   1 +
 testCases/pr1/expected/exp3.txt        |   1 +
 testCases/pr1/expected/exp4.txt        |   1 +
 testCases/pr1/expected/exp5.txt        |   2 +
 testCases/pr1/expected/exp6.txt        |   2 +
 testCases/pr1/expected/exp7.txt        |   2 +
 testCases/pr1/expected/exp8.txt        |   4 +
 testCases/pr1/expected/exp9.txt        |   4 +
 testCases/pr1/inputs/.DS_Store         | Bin 0 -> 10244 bytes
 testCases/pr1/inputs/input1/A.csv      |   0
 testCases/pr1/inputs/input1/B.csv      |   0
 testCases/pr1/inputs/input10/.DS_Store | Bin 0 -> 6148 bytes
 testCases/pr1/inputs/input10/A.csv     |   2 +
 testCases/pr1/inputs/input10/B.csv     |   2 +
 testCases/pr1/inputs/input11/.DS_Store | Bin 0 -> 6148 bytes
 testCases/pr1/inputs/input11/A.csv     |   2 +
 testCases/pr1/inputs/input11/B.csv     |   2 +
 testCases/pr1/inputs/input12/.DS_Store | Bin 0 -> 6148 bytes
 testCases/pr1/inputs/input12/A.csv     |   2 +
 testCases/pr1/inputs/input12/B.csv     |   2 +
 testCases/pr1/inputs/input13/.DS_Store | Bin 0 -> 6148 bytes
 testCases/pr1/inputs/input13/A.csv     |   2 +
 testCases/pr1/inputs/input13/B.csv     |   2 +
 testCases/pr1/inputs/input14/.DS_Store | Bin 0 -> 6148 bytes
 testCases/pr1/inputs/input14/A.csv     |   2 +
 testCases/pr1/inputs/input14/B.csv     |   2 +
 testCases/pr1/inputs/input15/.DS_Store | Bin 0 -> 6148 bytes
 testCases/pr1/inputs/input15/A.csv     |  10 ++
 testCases/pr1/inputs/input15/B.csv     |  13 +++
 testCases/pr1/inputs/input2/A.csv      |   1 +
 testCases/pr1/inputs/input2/B.csv      |   0
 testCases/pr1/inputs/input3/A.csv      |   0
 testCases/pr1/inputs/input3/B.csv      |   1 +
 testCases/pr1/inputs/input4/A.csv      |   1 +
 testCases/pr1/inputs/input4/B.csv      |   1 +
 testCases/pr1/inputs/input5/A.csv      |   2 +
 testCases/pr1/inputs/input5/B.csv      |   1 +
 testCases/pr1/inputs/input6/A.csv      |   2 +
 testCases/pr1/inputs/input6/B.csv      |   1 +
 testCases/pr1/inputs/input7/.DS_Store  | Bin 0 -> 6148 bytes
 testCases/pr1/inputs/input7/A.csv      |   1 +
 testCases/pr1/inputs/input7/B.csv      |   2 +
 testCases/pr1/inputs/input8/.DS_Store  | Bin 0 -> 6148 bytes
 testCases/pr1/inputs/input8/A.csv      |   2 +
 testCases/pr1/inputs/input8/B.csv      |   2 +
 testCases/pr1/inputs/input9/.DS_Store  | Bin 0 -> 6148 bytes
 testCases/pr1/inputs/input9/A.csv      |   2 +
 testCases/pr1/inputs/input9/B.csv      |   2 +
 testCases/pr10/inputs/input1/S.csv     |   3 +
 testCases/pr10/inputs/input1/T.csv     |   4 +
 testCases/pr10/inputs/input2/S.csv     |   3 +
 testCases/pr10/inputs/input2/T.csv     |   3 +
 testCases/pr2/.DS_Store                | Bin 0 -> 6148 bytes
 testCases/pr2/expected/exp1.txt        |   1 +
 testCases/pr2/expected/exp10.txt       |  18 ++++
 testCases/pr2/expected/exp2.txt        |   1 +
 testCases/pr2/expected/exp3.txt        |   1 +
 testCases/pr2/expected/exp4.txt        |   1 +
 testCases/pr2/expected/exp5.txt        |   1 +
 testCases/pr2/expected/exp6.txt        |   1 +
 testCases/pr2/expected/exp7.txt        |   1 +
 testCases/pr2/expected/exp8.txt        |   1 +
 testCases/pr2/expected/exp9.txt        |   3 +
 testCases/pr2/inputs/.DS_Store         | Bin 0 -> 8196 bytes
 testCases/pr2/inputs/input1/A.csv      |   0
 testCases/pr2/inputs/input10/A.csv     |  21 ++++
 testCases/pr2/inputs/input2/A.csv      |   1 +
 testCases/pr2/inputs/input3/A.csv      |   1 +
 testCases/pr2/inputs/input4/A.csv      |   1 +
 testCases/pr2/inputs/input5/A.csv      |   1 +
 testCases/pr2/inputs/input6/A.csv      |   1 +
 testCases/pr2/inputs/input7/A.csv      |   1 +
 testCases/pr2/inputs/input8/A.csv      |   2 +
 testCases/pr2/inputs/input9/A.csv      |   5 +
 testCases/pr3/.DS_Store                | Bin 0 -> 6148 bytes
 testCases/pr3/expected/exp1.txt        |   1 +
 testCases/pr3/expected/exp10.txt       |  18 ++++
 testCases/pr3/expected/exp2.txt        |   1 +
 testCases/pr3/expected/exp3.txt        |   1 +
 testCases/pr3/expected/exp4.txt        |   1 +
 testCases/pr3/expected/exp5.txt        |   1 +
 testCases/pr3/expected/exp6.txt        |   1 +
 testCases/pr3/expected/exp7.txt        |   1 +
 testCases/pr3/expected/exp8.txt        |   1 +
 testCases/pr3/expected/exp9.txt        |   3 +
 testCases/pr3/inputs/.DS_Store         | Bin 0 -> 6148 bytes
 testCases/pr3/inputs/input1/P.csv      |   0
 testCases/pr3/inputs/input1/Q.csv      |   0
 testCases/pr3/inputs/input10/P.csv     |  10 ++
 testCases/pr3/inputs/input10/Q.csv     |   5 +
 testCases/pr3/inputs/input2/P.csv      |   1 +
 testCases/pr3/inputs/input2/Q.csv      |   0
 testCases/pr3/inputs/input3/P.csv      |   0
 testCases/pr3/inputs/input3/Q.csv      |   1 +
 testCases/pr3/inputs/input4/P.csv      |   1 +
 testCases/pr3/inputs/input4/Q.csv      |   1 +
 testCases/pr3/inputs/input5/P.csv      |   1 +
 testCases/pr3/inputs/input5/Q.csv      |   1 +
 testCases/pr3/inputs/input6/P.csv      |   1 +
 testCases/pr3/inputs/input6/Q.csv      |   1 +
 testCases/pr3/inputs/input7/P.csv      |   1 +
 testCases/pr3/inputs/input7/Q.csv      |   1 +
 testCases/pr3/inputs/input8/P.csv      |   1 +
 testCases/pr3/inputs/input8/Q.csv      |   1 +
 testCases/pr3/inputs/input9/P.csv      |   3 +
 testCases/pr3/inputs/input9/Q.csv      |   3 +
 testCases/pr4/.DS_Store                | Bin 0 -> 6148 bytes
 testCases/pr4/expected/.DS_Store       | Bin 0 -> 6148 bytes
 testCases/pr4/expected/exp1.txt        |   1 +
 testCases/pr4/expected/exp2.txt        |   1 +
 testCases/pr4/expected/exp3.txt        |   1 +
 testCases/pr4/expected/exp4.txt        |   1 +
 testCases/pr4/expected/exp5.txt        |   1 +
 testCases/pr4/expected/exp6.txt        |   1 +
 testCases/pr4/expected/exp7.txt        |   3 +
 testCases/pr4/expected/exp8.txt        |  11 +++
 testCases/pr4/inputs/.DS_Store         | Bin 0 -> 6148 bytes
 testCases/pr4/inputs/input1/A.csv      |   0
 testCases/pr4/inputs/input2/A.csv      |   1 +
 testCases/pr4/inputs/input3/A.csv      |   1 +
 testCases/pr4/inputs/input4/A.csv      |   1 +
 testCases/pr4/inputs/input5/A.csv      |   1 +
 testCases/pr4/inputs/input6/A.csv      |   2 +
 testCases/pr4/inputs/input7/A.csv      |   3 +
 testCases/pr4/inputs/input8/A.csv      |  15 +++
 testCases/pr5/.DS_Store                | Bin 0 -> 6148 bytes
 testCases/pr5/expected/exp1.txt        |   1 +
 testCases/pr5/expected/exp2.txt        |   1 +
 testCases/pr5/expected/exp3.txt        |   1 +
 testCases/pr5/expected/exp4.txt        |   2 +
 testCases/pr5/expected/exp5.txt        |   3 +
 testCases/pr5/expected/exp6.txt        |   6 ++
 testCases/pr5/expected/exp7.txt        |  52 ++++++++++
 testCases/pr5/inputs/.DS_Store         | Bin 0 -> 6148 bytes
 testCases/pr5/inputs/input1/A.csv      |   0
 testCases/pr5/inputs/input2/A.csv      |   1 +
 testCases/pr5/inputs/input3/A.csv      |   1 +
 testCases/pr5/inputs/input4/A.csv      |   2 +
 testCases/pr5/inputs/input5/A.csv      |   3 +
 testCases/pr5/inputs/input6/A.csv      |   6 ++
 testCases/pr5/inputs/input7/A.csv      |  52 ++++++++++
 testCases/pr6/expected/exp1.txt        |   6 ++
 testCases/pr6/inputs/input1/P.csv      |   3 +
 testCases/pr6/inputs/input1/Q.csv      |   2 +
 testCases/pr6/inputs/input1/R.csv      |   1 +
 testCases/pr6/inputs/input1/S.csv      |   1 +
 testCases/pr6/inputs/input1/T.csv      |   1 +
 testCases/pr7/inputs/input1/F.csv      |   4 +
 testCases/pr7/inputs/input1/G.csv      |   5 +
 testCases/pr8/expected/exp1.txt        |   0
 testCases/pr8/inputs/input1/P.csv      |   4 +
 testCases/pr8/inputs/input1/Q.csv      |   4 +
 testCases/pr8/inputs/input2/P.csv      |   2 +
 testCases/pr8/inputs/input2/Q.csv      |   2 +
 testCases/pr9/inputs/input1/R.csv      |   5 +
 175 files changed, 655 insertions(+)
 create mode 100644 Makefile
 create mode 100644 pr1.cql
 create mode 100644 pr10.cql
 create mode 100644 pr2.cql
 create mode 100644 pr3.cql
 create mode 100644 pr4.cql
 create mode 100644 pr5.cql
 create mode 100644 pr6.cql
 create mode 100644 pr7.cql
 create mode 100644 pr8.cql
 create mode 100644 pr9.cql
 create mode 100755 test.sh
 create mode 100644 testCases/pr1/.DS_Store
 create mode 100644 testCases/pr1/expected/exp1.txt
 create mode 100644 testCases/pr1/expected/exp10.txt
 create mode 100644 testCases/pr1/expected/exp11.txt
 create mode 100644 testCases/pr1/expected/exp12.txt
 create mode 100644 testCases/pr1/expected/exp13.txt
 create mode 100644 testCases/pr1/expected/exp14.txt
 create mode 100644 testCases/pr1/expected/exp15.txt
 create mode 100644 testCases/pr1/expected/exp2.txt
 create mode 100644 testCases/pr1/expected/exp3.txt
 create mode 100644 testCases/pr1/expected/exp4.txt
 create mode 100644 testCases/pr1/expected/exp5.txt
 create mode 100644 testCases/pr1/expected/exp6.txt
 create mode 100644 testCases/pr1/expected/exp7.txt
 create mode 100644 testCases/pr1/expected/exp8.txt
 create mode 100644 testCases/pr1/expected/exp9.txt
 create mode 100644 testCases/pr1/inputs/.DS_Store
 create mode 100644 testCases/pr1/inputs/input1/A.csv
 create mode 100644 testCases/pr1/inputs/input1/B.csv
 create mode 100644 testCases/pr1/inputs/input10/.DS_Store
 create mode 100644 testCases/pr1/inputs/input10/A.csv
 create mode 100644 testCases/pr1/inputs/input10/B.csv
 create mode 100644 testCases/pr1/inputs/input11/.DS_Store
 create mode 100644 testCases/pr1/inputs/input11/A.csv
 create mode 100644 testCases/pr1/inputs/input11/B.csv
 create mode 100644 testCases/pr1/inputs/input12/.DS_Store
 create mode 100644 testCases/pr1/inputs/input12/A.csv
 create mode 100644 testCases/pr1/inputs/input12/B.csv
 create mode 100644 testCases/pr1/inputs/input13/.DS_Store
 create mode 100644 testCases/pr1/inputs/input13/A.csv
 create mode 100644 testCases/pr1/inputs/input13/B.csv
 create mode 100644 testCases/pr1/inputs/input14/.DS_Store
 create mode 100644 testCases/pr1/inputs/input14/A.csv
 create mode 100644 testCases/pr1/inputs/input14/B.csv
 create mode 100644 testCases/pr1/inputs/input15/.DS_Store
 create mode 100644 testCases/pr1/inputs/input15/A.csv
 create mode 100644 testCases/pr1/inputs/input15/B.csv
 create mode 100644 testCases/pr1/inputs/input2/A.csv
 create mode 100644 testCases/pr1/inputs/input2/B.csv
 create mode 100644 testCases/pr1/inputs/input3/A.csv
 create mode 100644 testCases/pr1/inputs/input3/B.csv
 create mode 100644 testCases/pr1/inputs/input4/A.csv
 create mode 100644 testCases/pr1/inputs/input4/B.csv
 create mode 100644 testCases/pr1/inputs/input5/A.csv
 create mode 100644 testCases/pr1/inputs/input5/B.csv
 create mode 100644 testCases/pr1/inputs/input6/A.csv
 create mode 100644 testCases/pr1/inputs/input6/B.csv
 create mode 100644 testCases/pr1/inputs/input7/.DS_Store
 create mode 100644 testCases/pr1/inputs/input7/A.csv
 create mode 100644 testCases/pr1/inputs/input7/B.csv
 create mode 100644 testCases/pr1/inputs/input8/.DS_Store
 create mode 100644 testCases/pr1/inputs/input8/A.csv
 create mode 100644 testCases/pr1/inputs/input8/B.csv
 create mode 100644 testCases/pr1/inputs/input9/.DS_Store
 create mode 100644 testCases/pr1/inputs/input9/A.csv
 create mode 100644 testCases/pr1/inputs/input9/B.csv
 create mode 100644 testCases/pr10/inputs/input1/S.csv
 create mode 100644 testCases/pr10/inputs/input1/T.csv
 create mode 100644 testCases/pr10/inputs/input2/S.csv
 create mode 100644 testCases/pr10/inputs/input2/T.csv
 create mode 100644 testCases/pr2/.DS_Store
 create mode 100644 testCases/pr2/expected/exp1.txt
 create mode 100644 testCases/pr2/expected/exp10.txt
 create mode 100644 testCases/pr2/expected/exp2.txt
 create mode 100644 testCases/pr2/expected/exp3.txt
 create mode 100644 testCases/pr2/expected/exp4.txt
 create mode 100644 testCases/pr2/expected/exp5.txt
 create mode 100644 testCases/pr2/expected/exp6.txt
 create mode 100644 testCases/pr2/expected/exp7.txt
 create mode 100644 testCases/pr2/expected/exp8.txt
 create mode 100644 testCases/pr2/expected/exp9.txt
 create mode 100644 testCases/pr2/inputs/.DS_Store
 create mode 100644 testCases/pr2/inputs/input1/A.csv
 create mode 100644 testCases/pr2/inputs/input10/A.csv
 create mode 100644 testCases/pr2/inputs/input2/A.csv
 create mode 100644 testCases/pr2/inputs/input3/A.csv
 create mode 100644 testCases/pr2/inputs/input4/A.csv
 create mode 100644 testCases/pr2/inputs/input5/A.csv
 create mode 100644 testCases/pr2/inputs/input6/A.csv
 create mode 100644 testCases/pr2/inputs/input7/A.csv
 create mode 100644 testCases/pr2/inputs/input8/A.csv
 create mode 100644 testCases/pr2/inputs/input9/A.csv
 create mode 100644 testCases/pr3/.DS_Store
 create mode 100644 testCases/pr3/expected/exp1.txt
 create mode 100644 testCases/pr3/expected/exp10.txt
 create mode 100644 testCases/pr3/expected/exp2.txt
 create mode 100644 testCases/pr3/expected/exp3.txt
 create mode 100644 testCases/pr3/expected/exp4.txt
 create mode 100644 testCases/pr3/expected/exp5.txt
 create mode 100644 testCases/pr3/expected/exp6.txt
 create mode 100644 testCases/pr3/expected/exp7.txt
 create mode 100644 testCases/pr3/expected/exp8.txt
 create mode 100644 testCases/pr3/expected/exp9.txt
 create mode 100644 testCases/pr3/inputs/.DS_Store
 create mode 100644 testCases/pr3/inputs/input1/P.csv
 create mode 100644 testCases/pr3/inputs/input1/Q.csv
 create mode 100644 testCases/pr3/inputs/input10/P.csv
 create mode 100644 testCases/pr3/inputs/input10/Q.csv
 create mode 100644 testCases/pr3/inputs/input2/P.csv
 create mode 100644 testCases/pr3/inputs/input2/Q.csv
 create mode 100644 testCases/pr3/inputs/input3/P.csv
 create mode 100644 testCases/pr3/inputs/input3/Q.csv
 create mode 100644 testCases/pr3/inputs/input4/P.csv
 create mode 100644 testCases/pr3/inputs/input4/Q.csv
 create mode 100644 testCases/pr3/inputs/input5/P.csv
 create mode 100644 testCases/pr3/inputs/input5/Q.csv
 create mode 100644 testCases/pr3/inputs/input6/P.csv
 create mode 100644 testCases/pr3/inputs/input6/Q.csv
 create mode 100644 testCases/pr3/inputs/input7/P.csv
 create mode 100644 testCases/pr3/inputs/input7/Q.csv
 create mode 100644 testCases/pr3/inputs/input8/P.csv
 create mode 100644 testCases/pr3/inputs/input8/Q.csv
 create mode 100644 testCases/pr3/inputs/input9/P.csv
 create mode 100644 testCases/pr3/inputs/input9/Q.csv
 create mode 100644 testCases/pr4/.DS_Store
 create mode 100644 testCases/pr4/expected/.DS_Store
 create mode 100644 testCases/pr4/expected/exp1.txt
 create mode 100644 testCases/pr4/expected/exp2.txt
 create mode 100644 testCases/pr4/expected/exp3.txt
 create mode 100644 testCases/pr4/expected/exp4.txt
 create mode 100644 testCases/pr4/expected/exp5.txt
 create mode 100644 testCases/pr4/expected/exp6.txt
 create mode 100644 testCases/pr4/expected/exp7.txt
 create mode 100644 testCases/pr4/expected/exp8.txt
 create mode 100644 testCases/pr4/inputs/.DS_Store
 create mode 100644 testCases/pr4/inputs/input1/A.csv
 create mode 100644 testCases/pr4/inputs/input2/A.csv
 create mode 100644 testCases/pr4/inputs/input3/A.csv
 create mode 100644 testCases/pr4/inputs/input4/A.csv
 create mode 100644 testCases/pr4/inputs/input5/A.csv
 create mode 100644 testCases/pr4/inputs/input6/A.csv
 create mode 100644 testCases/pr4/inputs/input7/A.csv
 create mode 100644 testCases/pr4/inputs/input8/A.csv
 create mode 100644 testCases/pr5/.DS_Store
 create mode 100644 testCases/pr5/expected/exp1.txt
 create mode 100644 testCases/pr5/expected/exp2.txt
 create mode 100644 testCases/pr5/expected/exp3.txt
 create mode 100644 testCases/pr5/expected/exp4.txt
 create mode 100644 testCases/pr5/expected/exp5.txt
 create mode 100644 testCases/pr5/expected/exp6.txt
 create mode 100644 testCases/pr5/expected/exp7.txt
 create mode 100644 testCases/pr5/inputs/.DS_Store
 create mode 100644 testCases/pr5/inputs/input1/A.csv
 create mode 100644 testCases/pr5/inputs/input2/A.csv
 create mode 100644 testCases/pr5/inputs/input3/A.csv
 create mode 100644 testCases/pr5/inputs/input4/A.csv
 create mode 100644 testCases/pr5/inputs/input5/A.csv
 create mode 100644 testCases/pr5/inputs/input6/A.csv
 create mode 100644 testCases/pr5/inputs/input7/A.csv
 create mode 100644 testCases/pr6/expected/exp1.txt
 create mode 100644 testCases/pr6/inputs/input1/P.csv
 create mode 100644 testCases/pr6/inputs/input1/Q.csv
 create mode 100644 testCases/pr6/inputs/input1/R.csv
 create mode 100644 testCases/pr6/inputs/input1/S.csv
 create mode 100644 testCases/pr6/inputs/input1/T.csv
 create mode 100644 testCases/pr7/inputs/input1/F.csv
 create mode 100644 testCases/pr7/inputs/input1/G.csv
 create mode 100644 testCases/pr8/expected/exp1.txt
 create mode 100644 testCases/pr8/inputs/input1/P.csv
 create mode 100644 testCases/pr8/inputs/input1/Q.csv
 create mode 100644 testCases/pr8/inputs/input2/P.csv
 create mode 100644 testCases/pr8/inputs/input2/Q.csv
 create mode 100644 testCases/pr9/inputs/input1/R.csv

diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..fef60a0
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,5 @@
+build:
+	alex Lexer.x
+	happy Parser.y
+	ghc -dynamic Main.hs
+	mv Main csvql
diff --git a/pr1.cql b/pr1.cql
new file mode 100644
index 0000000..f9bfb75
--- /dev/null
+++ b/pr1.cql
@@ -0,0 +1,6 @@
+.in
+A:2, # declare input files and their numbers of cols in .in section
+B:2
+
+.out # statements for the query are in .out section
+A x B; # returns the cartesian product of the two sets (conjunction)
\ No newline at end of file
diff --git a/pr10.cql b/pr10.cql
new file mode 100644
index 0000000..bb4e262
--- /dev/null
+++ b/pr10.cql
@@ -0,0 +1,5 @@
+.in
+B:1
+
+.out
+B;
\ No newline at end of file
diff --git a/pr2.cql b/pr2.cql
new file mode 100644
index 0000000..7411d32
--- /dev/null
+++ b/pr2.cql
@@ -0,0 +1,6 @@
+.in
+A:3
+
+.out
+filter( \(r) -> r[1] == r[2]);
+map (\(r) -> r[3,1]);
\ No newline at end of file
diff --git a/pr3.cql b/pr3.cql
new file mode 100644
index 0000000..5dc784d
--- /dev/null
+++ b/pr3.cql
@@ -0,0 +1,9 @@
+.in
+P: 4,
+Q: 4
+
+.out
+P x Q;
+filter(\(r) -> r[1] == r[5]);
+let f = \(a,y) -> if (isEmpty(a)) then y else a;
+map (\(r) -> [r[1], f(r[2], r[6]), f(r[3], r[7]), f(r[4], r[8])]);
\ No newline at end of file
diff --git a/pr4.cql b/pr4.cql
new file mode 100644
index 0000000..28e6b58
--- /dev/null
+++ b/pr4.cql
@@ -0,0 +1,6 @@
+.in
+A:2
+
+.out
+filter (\(r) -> not(isEmpty(r[2]) ) );
+#filter (\(r) -> notEmpty(r[2])  );
\ No newline at end of file
diff --git a/pr5.cql b/pr5.cql
new file mode 100644
index 0000000..f34636e
--- /dev/null
+++ b/pr5.cql
@@ -0,0 +1,5 @@
+.in
+A:1
+
+.out
+map{A}(\(r) -> [r[1],"0",r[1]] );
\ No newline at end of file
diff --git a/pr6.cql b/pr6.cql
new file mode 100644
index 0000000..3938ff9
--- /dev/null
+++ b/pr6.cql
@@ -0,0 +1,9 @@
+.in
+P:3,
+Q:3,
+R:1,
+S:1,
+T:4
+
+.out
+P x Q x R x S x T;
\ No newline at end of file
diff --git a/pr7.cql b/pr7.cql
new file mode 100644
index 0000000..e69de29
diff --git a/pr8.cql b/pr8.cql
new file mode 100644
index 0000000..e69de29
diff --git a/pr9.cql b/pr9.cql
new file mode 100644
index 0000000..e69de29
diff --git a/test.sh b/test.sh
new file mode 100755
index 0000000..ed78de8
--- /dev/null
+++ b/test.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+PROBLEM=$1
+INPUT=$2
+TESTCASES=~/dev/plc/testCases
+EXEC_DIR=~/dev/plc
+cd $TESTCASES/pr$PROBLEM/inputs/input$INPUT
+echo "Expected:"
+EXP=$(cat $TESTCASES/pr$PROBLEM/expected/exp$INPUT.txt)
+cat $TESTCASES/pr$PROBLEM/expected/exp$INPUT.txt
+echo "Got:"
+GOT=$($EXEC_DIR/csvql $EXEC_DIR/pr$PROBLEM.cql)
+$EXEC_DIR/csvql $EXEC_DIR/pr$PROBLEM.cql
+
+if [ "$EXP" = "$GOT" ];
+then
+    echo "Test passed"
+else
+    echo "Test failed"
+fi
\ No newline at end of file
diff --git a/testCases/pr1/.DS_Store b/testCases/pr1/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr1/expected/exp1.txt b/testCases/pr1/expected/exp1.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/testCases/pr1/expected/exp1.txt
@@ -0,0 +1 @@
+
diff --git a/testCases/pr1/expected/exp10.txt b/testCases/pr1/expected/exp10.txt
new file mode 100644
index 0000000..08a4252
--- /dev/null
+++ b/testCases/pr1/expected/exp10.txt
@@ -0,0 +1,4 @@
+lemon,lime,mandarin,pomelo
+lemon,lime,orange,grapefruit
+ugli,,mandarin,pomelo
+ugli,,orange,grapefruit
diff --git a/testCases/pr1/expected/exp11.txt b/testCases/pr1/expected/exp11.txt
new file mode 100644
index 0000000..cb591b8
--- /dev/null
+++ b/testCases/pr1/expected/exp11.txt
@@ -0,0 +1,4 @@
+lemon,lime,,pomelo
+lemon,lime,orange,grapefruit
+ugli,tangerine,,pomelo
+ugli,tangerine,orange,grapefruit
diff --git a/testCases/pr1/expected/exp12.txt b/testCases/pr1/expected/exp12.txt
new file mode 100644
index 0000000..94005cc
--- /dev/null
+++ b/testCases/pr1/expected/exp12.txt
@@ -0,0 +1,4 @@
+lemon,lime,mandarin,
+lemon,lime,orange,grapefruit
+ugli,tangerine,mandarin,
+ugli,tangerine,orange,grapefruit
diff --git a/testCases/pr1/expected/exp13.txt b/testCases/pr1/expected/exp13.txt
new file mode 100644
index 0000000..322f987
--- /dev/null
+++ b/testCases/pr1/expected/exp13.txt
@@ -0,0 +1,4 @@
+lemon,lime,mandarin,pomelo
+lemon,lime,orange,grapefruit
+ugli,tangerine,mandarin,pomelo
+ugli,tangerine,orange,grapefruit
diff --git a/testCases/pr1/expected/exp14.txt b/testCases/pr1/expected/exp14.txt
new file mode 100644
index 0000000..93e4f3e
--- /dev/null
+++ b/testCases/pr1/expected/exp14.txt
@@ -0,0 +1,4 @@
+lemon,lime,mandarin,pomelo
+lemon,lime,orange,pink grapefruit
+ugli,tangerine,mandarin,pomelo
+ugli,tangerine,orange,pink grapefruit
diff --git a/testCases/pr1/expected/exp15.txt b/testCases/pr1/expected/exp15.txt
new file mode 100644
index 0000000..2c2320e
--- /dev/null
+++ b/testCases/pr1/expected/exp15.txt
@@ -0,0 +1,130 @@
+1,2,a,b
+1,2,c,d
+1,2,e,f
+1,2,g,h
+1,2,i,j
+1,2,k,l
+1,2,m,n
+1,2,o,p
+1,2,q,r
+1,2,s,t
+1,2,u,v
+1,2,w,x
+1,2,y,z
+11,12,a,b
+11,12,c,d
+11,12,e,f
+11,12,g,h
+11,12,i,j
+11,12,k,l
+11,12,m,n
+11,12,o,p
+11,12,q,r
+11,12,s,t
+11,12,u,v
+11,12,w,x
+11,12,y,z
+13,14,a,b
+13,14,c,d
+13,14,e,f
+13,14,g,h
+13,14,i,j
+13,14,k,l
+13,14,m,n
+13,14,o,p
+13,14,q,r
+13,14,s,t
+13,14,u,v
+13,14,w,x
+13,14,y,z
+15,16,a,b
+15,16,c,d
+15,16,e,f
+15,16,g,h
+15,16,i,j
+15,16,k,l
+15,16,m,n
+15,16,o,p
+15,16,q,r
+15,16,s,t
+15,16,u,v
+15,16,w,x
+15,16,y,z
+17,18,a,b
+17,18,c,d
+17,18,e,f
+17,18,g,h
+17,18,i,j
+17,18,k,l
+17,18,m,n
+17,18,o,p
+17,18,q,r
+17,18,s,t
+17,18,u,v
+17,18,w,x
+17,18,y,z
+19,20,a,b
+19,20,c,d
+19,20,e,f
+19,20,g,h
+19,20,i,j
+19,20,k,l
+19,20,m,n
+19,20,o,p
+19,20,q,r
+19,20,s,t
+19,20,u,v
+19,20,w,x
+19,20,y,z
+3,4,a,b
+3,4,c,d
+3,4,e,f
+3,4,g,h
+3,4,i,j
+3,4,k,l
+3,4,m,n
+3,4,o,p
+3,4,q,r
+3,4,s,t
+3,4,u,v
+3,4,w,x
+3,4,y,z
+5,6,a,b
+5,6,c,d
+5,6,e,f
+5,6,g,h
+5,6,i,j
+5,6,k,l
+5,6,m,n
+5,6,o,p
+5,6,q,r
+5,6,s,t
+5,6,u,v
+5,6,w,x
+5,6,y,z
+7,8,a,b
+7,8,c,d
+7,8,e,f
+7,8,g,h
+7,8,i,j
+7,8,k,l
+7,8,m,n
+7,8,o,p
+7,8,q,r
+7,8,s,t
+7,8,u,v
+7,8,w,x
+7,8,y,z
+9,10,a,b
+9,10,c,d
+9,10,e,f
+9,10,g,h
+9,10,i,j
+9,10,k,l
+9,10,m,n
+9,10,o,p
+9,10,q,r
+9,10,s,t
+9,10,u,v
+9,10,w,x
+9,10,y,z
diff --git a/testCases/pr1/expected/exp2.txt b/testCases/pr1/expected/exp2.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/testCases/pr1/expected/exp2.txt
@@ -0,0 +1 @@
+
diff --git a/testCases/pr1/expected/exp3.txt b/testCases/pr1/expected/exp3.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/testCases/pr1/expected/exp3.txt
@@ -0,0 +1 @@
+
diff --git a/testCases/pr1/expected/exp4.txt b/testCases/pr1/expected/exp4.txt
new file mode 100644
index 0000000..d2d40eb
--- /dev/null
+++ b/testCases/pr1/expected/exp4.txt
@@ -0,0 +1 @@
+lemon,lime,orange,grapefruit
diff --git a/testCases/pr1/expected/exp5.txt b/testCases/pr1/expected/exp5.txt
new file mode 100644
index 0000000..a7df098
--- /dev/null
+++ b/testCases/pr1/expected/exp5.txt
@@ -0,0 +1,2 @@
+lemon,lime,orange,grapefruit
+ugli,tangerine,orange,grapefruit
diff --git a/testCases/pr1/expected/exp6.txt b/testCases/pr1/expected/exp6.txt
new file mode 100644
index 0000000..a7df098
--- /dev/null
+++ b/testCases/pr1/expected/exp6.txt
@@ -0,0 +1,2 @@
+lemon,lime,orange,grapefruit
+ugli,tangerine,orange,grapefruit
diff --git a/testCases/pr1/expected/exp7.txt b/testCases/pr1/expected/exp7.txt
new file mode 100644
index 0000000..1ee8c84
--- /dev/null
+++ b/testCases/pr1/expected/exp7.txt
@@ -0,0 +1,2 @@
+lemon,lime,mandarin,pomelo
+lemon,lime,orange,grapefruit
diff --git a/testCases/pr1/expected/exp8.txt b/testCases/pr1/expected/exp8.txt
new file mode 100644
index 0000000..322f987
--- /dev/null
+++ b/testCases/pr1/expected/exp8.txt
@@ -0,0 +1,4 @@
+lemon,lime,mandarin,pomelo
+lemon,lime,orange,grapefruit
+ugli,tangerine,mandarin,pomelo
+ugli,tangerine,orange,grapefruit
diff --git a/testCases/pr1/expected/exp9.txt b/testCases/pr1/expected/exp9.txt
new file mode 100644
index 0000000..a228e12
--- /dev/null
+++ b/testCases/pr1/expected/exp9.txt
@@ -0,0 +1,4 @@
+,tangerine,mandarin,pomelo
+,tangerine,orange,grapefruit
+lemon,lime,mandarin,pomelo
+lemon,lime,orange,grapefruit
diff --git a/testCases/pr1/inputs/.DS_Store b/testCases/pr1/inputs/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..351cf4a0952af6a4ac1127fc739c1499ab1f4665
GIT binary patch
literal 10244
zcmZQzU|@7AO)+F(P+(wS;9!8z0z3>@0Z1N%F(jFwA~qoN7#IW?7)lrnbJ7iilk;;6
zpmL+sXb6mkz-S1JhQMeDjE2DA3IRrlb2zvm^e8zR0;3@?8UpYT0F@7*4g!dFfVA-$
z8Xz=Ch=GxT0o(;(WME){X<`KT0~kPZAgv%8q!mPiv@$S)SYR{2S{WFjS{cFJ5Rg6r
zuu+WQt_g?_*3Q5PwwZx}5o|L910zH`10&RCMraR(5u%-e5o|jH10zH`*vwI4Gz3ON
z05t?aeRnp7Oolv$0)|o?{dW}k+<X_8q@4UD(7?g`t+%XpDI9iWU|>K~lR{8UK?cS+
z0Xwog7!0tCB%rCl;T8;4SY3mrilBS2jclNrVMvsF40H2|aE~ED_ZSfjA0wjNV?>mD
zj0n2Nn4o)%iE@uIQSLD&=pGY-?lB?CJtjoC$AqAJObNQjlqmO@66GFKEbc+hqu5dp
ziaZXtpsB%{l2OzUa0j+jgRCD{nn6=T&>h&)3$hv5QVWVa5#fO=rJ$HYAUv?85@h|j
z(g>Owg5g0ZeVAcMt;lwm5fL6{I8rK#IRwJPoPaybiExKG5$-T2;0_A{?yw-j9Tr5m
z!-9Z2ED5;7k_dNL65$R@Ebc&UIgIi~Ltr!nMnhmU1V%$(Gz5lX2rxq&tpFPTcV%F}
zHUAG$HA;?#z-R~z%Mf5>aS3*D0uRb#_aA7i9W<Vv0F?%f!GlKg8A0Ro5PcveprL*6
za6A)aQIQ5nIU@su0f+`+Mg|7(a6BUeWHf((Cj*fCp`-nO)G^%A{y%DX47>h604!UG
Ar2qf`

literal 0
HcmV?d00001

diff --git a/testCases/pr1/inputs/input1/A.csv b/testCases/pr1/inputs/input1/A.csv
new file mode 100644
index 0000000..e69de29
diff --git a/testCases/pr1/inputs/input1/B.csv b/testCases/pr1/inputs/input1/B.csv
new file mode 100644
index 0000000..e69de29
diff --git a/testCases/pr1/inputs/input10/.DS_Store b/testCases/pr1/inputs/input10/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr1/inputs/input10/A.csv b/testCases/pr1/inputs/input10/A.csv
new file mode 100644
index 0000000..ec32c30
--- /dev/null
+++ b/testCases/pr1/inputs/input10/A.csv
@@ -0,0 +1,2 @@
+ugli,
+lemon,lime
diff --git a/testCases/pr1/inputs/input10/B.csv b/testCases/pr1/inputs/input10/B.csv
new file mode 100644
index 0000000..2a20c9b
--- /dev/null
+++ b/testCases/pr1/inputs/input10/B.csv
@@ -0,0 +1,2 @@
+orange,grapefruit
+mandarin,pomelo
diff --git a/testCases/pr1/inputs/input11/.DS_Store b/testCases/pr1/inputs/input11/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr1/inputs/input11/A.csv b/testCases/pr1/inputs/input11/A.csv
new file mode 100644
index 0000000..6ffa9e9
--- /dev/null
+++ b/testCases/pr1/inputs/input11/A.csv
@@ -0,0 +1,2 @@
+ugli,tangerine
+lemon,lime
diff --git a/testCases/pr1/inputs/input11/B.csv b/testCases/pr1/inputs/input11/B.csv
new file mode 100644
index 0000000..1cdbc60
--- /dev/null
+++ b/testCases/pr1/inputs/input11/B.csv
@@ -0,0 +1,2 @@
+orange,grapefruit
+,pomelo
diff --git a/testCases/pr1/inputs/input12/.DS_Store b/testCases/pr1/inputs/input12/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr1/inputs/input12/A.csv b/testCases/pr1/inputs/input12/A.csv
new file mode 100644
index 0000000..6ffa9e9
--- /dev/null
+++ b/testCases/pr1/inputs/input12/A.csv
@@ -0,0 +1,2 @@
+ugli,tangerine
+lemon,lime
diff --git a/testCases/pr1/inputs/input12/B.csv b/testCases/pr1/inputs/input12/B.csv
new file mode 100644
index 0000000..4fd69c4
--- /dev/null
+++ b/testCases/pr1/inputs/input12/B.csv
@@ -0,0 +1,2 @@
+orange,grapefruit
+mandarin,
diff --git a/testCases/pr1/inputs/input13/.DS_Store b/testCases/pr1/inputs/input13/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr1/inputs/input13/A.csv b/testCases/pr1/inputs/input13/A.csv
new file mode 100644
index 0000000..10d7128
--- /dev/null
+++ b/testCases/pr1/inputs/input13/A.csv
@@ -0,0 +1,2 @@
+  ugli,  tangerine
+  lemon,  lime
diff --git a/testCases/pr1/inputs/input13/B.csv b/testCases/pr1/inputs/input13/B.csv
new file mode 100644
index 0000000..8e67f50
--- /dev/null
+++ b/testCases/pr1/inputs/input13/B.csv
@@ -0,0 +1,2 @@
+orange,  grapefruit
+mandarin,   pomelo
diff --git a/testCases/pr1/inputs/input14/.DS_Store b/testCases/pr1/inputs/input14/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr1/inputs/input14/A.csv b/testCases/pr1/inputs/input14/A.csv
new file mode 100644
index 0000000..6ffa9e9
--- /dev/null
+++ b/testCases/pr1/inputs/input14/A.csv
@@ -0,0 +1,2 @@
+ugli,tangerine
+lemon,lime
diff --git a/testCases/pr1/inputs/input14/B.csv b/testCases/pr1/inputs/input14/B.csv
new file mode 100644
index 0000000..a6ff585
--- /dev/null
+++ b/testCases/pr1/inputs/input14/B.csv
@@ -0,0 +1,2 @@
+orange,  pink grapefruit
+mandarin, pomelo
diff --git a/testCases/pr1/inputs/input15/.DS_Store b/testCases/pr1/inputs/input15/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr1/inputs/input15/A.csv b/testCases/pr1/inputs/input15/A.csv
new file mode 100644
index 0000000..2f7dba8
--- /dev/null
+++ b/testCases/pr1/inputs/input15/A.csv
@@ -0,0 +1,10 @@
+1,2
+3,4
+5,6
+7,8
+9,10
+11,12
+13,14
+15,16
+17,18
+19,20
diff --git a/testCases/pr1/inputs/input15/B.csv b/testCases/pr1/inputs/input15/B.csv
new file mode 100644
index 0000000..719cd0f
--- /dev/null
+++ b/testCases/pr1/inputs/input15/B.csv
@@ -0,0 +1,13 @@
+a,b
+c,d
+e,f
+g,h
+i,j
+k,l
+m,n
+o,p
+q,r
+s,t
+u,v
+w,x
+y,z
diff --git a/testCases/pr1/inputs/input2/A.csv b/testCases/pr1/inputs/input2/A.csv
new file mode 100644
index 0000000..d72f201
--- /dev/null
+++ b/testCases/pr1/inputs/input2/A.csv
@@ -0,0 +1 @@
+1,2
diff --git a/testCases/pr1/inputs/input2/B.csv b/testCases/pr1/inputs/input2/B.csv
new file mode 100644
index 0000000..e69de29
diff --git a/testCases/pr1/inputs/input3/A.csv b/testCases/pr1/inputs/input3/A.csv
new file mode 100644
index 0000000..e69de29
diff --git a/testCases/pr1/inputs/input3/B.csv b/testCases/pr1/inputs/input3/B.csv
new file mode 100644
index 0000000..d72f201
--- /dev/null
+++ b/testCases/pr1/inputs/input3/B.csv
@@ -0,0 +1 @@
+1,2
diff --git a/testCases/pr1/inputs/input4/A.csv b/testCases/pr1/inputs/input4/A.csv
new file mode 100644
index 0000000..cca5a16
--- /dev/null
+++ b/testCases/pr1/inputs/input4/A.csv
@@ -0,0 +1 @@
+lemon,lime
diff --git a/testCases/pr1/inputs/input4/B.csv b/testCases/pr1/inputs/input4/B.csv
new file mode 100644
index 0000000..7972e0c
--- /dev/null
+++ b/testCases/pr1/inputs/input4/B.csv
@@ -0,0 +1 @@
+orange,grapefruit
diff --git a/testCases/pr1/inputs/input5/A.csv b/testCases/pr1/inputs/input5/A.csv
new file mode 100644
index 0000000..961e880
--- /dev/null
+++ b/testCases/pr1/inputs/input5/A.csv
@@ -0,0 +1,2 @@
+lemon,lime
+ugli,tangerine
diff --git a/testCases/pr1/inputs/input5/B.csv b/testCases/pr1/inputs/input5/B.csv
new file mode 100644
index 0000000..7972e0c
--- /dev/null
+++ b/testCases/pr1/inputs/input5/B.csv
@@ -0,0 +1 @@
+orange,grapefruit
diff --git a/testCases/pr1/inputs/input6/A.csv b/testCases/pr1/inputs/input6/A.csv
new file mode 100644
index 0000000..6ffa9e9
--- /dev/null
+++ b/testCases/pr1/inputs/input6/A.csv
@@ -0,0 +1,2 @@
+ugli,tangerine
+lemon,lime
diff --git a/testCases/pr1/inputs/input6/B.csv b/testCases/pr1/inputs/input6/B.csv
new file mode 100644
index 0000000..7972e0c
--- /dev/null
+++ b/testCases/pr1/inputs/input6/B.csv
@@ -0,0 +1 @@
+orange,grapefruit
diff --git a/testCases/pr1/inputs/input7/.DS_Store b/testCases/pr1/inputs/input7/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr1/inputs/input7/A.csv b/testCases/pr1/inputs/input7/A.csv
new file mode 100644
index 0000000..cca5a16
--- /dev/null
+++ b/testCases/pr1/inputs/input7/A.csv
@@ -0,0 +1 @@
+lemon,lime
diff --git a/testCases/pr1/inputs/input7/B.csv b/testCases/pr1/inputs/input7/B.csv
new file mode 100644
index 0000000..2a20c9b
--- /dev/null
+++ b/testCases/pr1/inputs/input7/B.csv
@@ -0,0 +1,2 @@
+orange,grapefruit
+mandarin,pomelo
diff --git a/testCases/pr1/inputs/input8/.DS_Store b/testCases/pr1/inputs/input8/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr1/inputs/input8/A.csv b/testCases/pr1/inputs/input8/A.csv
new file mode 100644
index 0000000..6ffa9e9
--- /dev/null
+++ b/testCases/pr1/inputs/input8/A.csv
@@ -0,0 +1,2 @@
+ugli,tangerine
+lemon,lime
diff --git a/testCases/pr1/inputs/input8/B.csv b/testCases/pr1/inputs/input8/B.csv
new file mode 100644
index 0000000..2a20c9b
--- /dev/null
+++ b/testCases/pr1/inputs/input8/B.csv
@@ -0,0 +1,2 @@
+orange,grapefruit
+mandarin,pomelo
diff --git a/testCases/pr1/inputs/input9/.DS_Store b/testCases/pr1/inputs/input9/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr1/inputs/input9/A.csv b/testCases/pr1/inputs/input9/A.csv
new file mode 100644
index 0000000..94afb3c
--- /dev/null
+++ b/testCases/pr1/inputs/input9/A.csv
@@ -0,0 +1,2 @@
+,tangerine
+lemon,lime
diff --git a/testCases/pr1/inputs/input9/B.csv b/testCases/pr1/inputs/input9/B.csv
new file mode 100644
index 0000000..2a20c9b
--- /dev/null
+++ b/testCases/pr1/inputs/input9/B.csv
@@ -0,0 +1,2 @@
+orange,grapefruit
+mandarin,pomelo
diff --git a/testCases/pr10/inputs/input1/S.csv b/testCases/pr10/inputs/input1/S.csv
new file mode 100644
index 0000000..20dc646
--- /dev/null
+++ b/testCases/pr10/inputs/input1/S.csv
@@ -0,0 +1,3 @@
+A, A, B
+A, B, B
+A, B, C
\ No newline at end of file
diff --git a/testCases/pr10/inputs/input1/T.csv b/testCases/pr10/inputs/input1/T.csv
new file mode 100644
index 0000000..de3d460
--- /dev/null
+++ b/testCases/pr10/inputs/input1/T.csv
@@ -0,0 +1,4 @@
+A, A, B
+A, B, B
+A, B, C
+C, D,D
\ No newline at end of file
diff --git a/testCases/pr10/inputs/input2/S.csv b/testCases/pr10/inputs/input2/S.csv
new file mode 100644
index 0000000..aa6e153
--- /dev/null
+++ b/testCases/pr10/inputs/input2/S.csv
@@ -0,0 +1,3 @@
+A, B, B
+B, C,D
+,,
diff --git a/testCases/pr10/inputs/input2/T.csv b/testCases/pr10/inputs/input2/T.csv
new file mode 100644
index 0000000..66acb06
--- /dev/null
+++ b/testCases/pr10/inputs/input2/T.csv
@@ -0,0 +1,3 @@
+B, B, B
+B, C,D
+A, ,
diff --git a/testCases/pr2/.DS_Store b/testCases/pr2/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr2/expected/exp1.txt b/testCases/pr2/expected/exp1.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/testCases/pr2/expected/exp1.txt
@@ -0,0 +1 @@
+
diff --git a/testCases/pr2/expected/exp10.txt b/testCases/pr2/expected/exp10.txt
new file mode 100644
index 0000000..229b264
--- /dev/null
+++ b/testCases/pr2/expected/exp10.txt
@@ -0,0 +1,18 @@
+,
+,1
+,2
+1,
+1,1
+1,2
+2,
+2,1
+2,2
+3,
+3,1
+3,2
+4,
+4,1
+4,2
+5,
+5,1
+5,2
diff --git a/testCases/pr2/expected/exp2.txt b/testCases/pr2/expected/exp2.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/testCases/pr2/expected/exp2.txt
@@ -0,0 +1 @@
+
diff --git a/testCases/pr2/expected/exp3.txt b/testCases/pr2/expected/exp3.txt
new file mode 100644
index 0000000..dffb053
--- /dev/null
+++ b/testCases/pr2/expected/exp3.txt
@@ -0,0 +1 @@
+oof,yeah
diff --git a/testCases/pr2/expected/exp4.txt b/testCases/pr2/expected/exp4.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/testCases/pr2/expected/exp4.txt
@@ -0,0 +1 @@
+
diff --git a/testCases/pr2/expected/exp5.txt b/testCases/pr2/expected/exp5.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/testCases/pr2/expected/exp5.txt
@@ -0,0 +1 @@
+
diff --git a/testCases/pr2/expected/exp6.txt b/testCases/pr2/expected/exp6.txt
new file mode 100644
index 0000000..7e7b058
--- /dev/null
+++ b/testCases/pr2/expected/exp6.txt
@@ -0,0 +1 @@
+,yeah
diff --git a/testCases/pr2/expected/exp7.txt b/testCases/pr2/expected/exp7.txt
new file mode 100644
index 0000000..5f263f5
--- /dev/null
+++ b/testCases/pr2/expected/exp7.txt
@@ -0,0 +1 @@
+yeah,
diff --git a/testCases/pr2/expected/exp8.txt b/testCases/pr2/expected/exp8.txt
new file mode 100644
index 0000000..c63713e
--- /dev/null
+++ b/testCases/pr2/expected/exp8.txt
@@ -0,0 +1 @@
+yeah,yeah
diff --git a/testCases/pr2/expected/exp9.txt b/testCases/pr2/expected/exp9.txt
new file mode 100644
index 0000000..4427599
--- /dev/null
+++ b/testCases/pr2/expected/exp9.txt
@@ -0,0 +1,3 @@
+03,blah
+04,nope
+05,yeah
diff --git a/testCases/pr2/inputs/.DS_Store b/testCases/pr2/inputs/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..679d44897487c79b81c689aa618fbf488630d9c0
GIT binary patch
literal 8196
zcmZQzU|@7AO)+F(kYHe7;9!8z0^AH(0Z1N%F(jFwA{rp`7#IW?7)lrnbJ7iilk;;6
zpmL+sXb6mkz-S1JhQMeDjE2DA3IRrlb2xC+`w-btax?@+LtsRP0H}OWfVAxy9H4Xq
zga%15FfuTJy8w&~3@oq!Vg&aC7(j9$tsokt6-0xyGBAQzU^Bp485p5j8NuBUkUjyh
zQH%^=?F@`yn?d4W?F@`yn;94wA=()jp*Ax@dnk+$?F@_%?F@`y+rdVT5~Cq78Ukn`
z0P4H5F=R62F%&SA;^@Dl$miy}xFqG|CxHeIxI5QuJf(2hk%55$O-%|xH3b<M;{@!;
z?qD#$GLnF%0*6~LRAF@unkp>rLH3go7T2K2<8TX_8mulsQA5BT#su79OoTg(bMpzh
z!<c|OObEEcga~(-5aA9J0`4#+;0{wF++j+DJ4^|<!;FAC%!qJ@84>O<Bj65m0`4#;
z!X4&BxWk-)J1hve!-5ERSP<b33j*%2B;XE9BHUp~ggY#;xC5=I9p#ROz@Q2NW{7Jf
zK>dGL1_oT?{}5H9<Y)+thQP240Y(;=U>7HFryRTgKz(gce>wpw4eEn~y5o$XemO)R
wNC~KG5AKdLLM9c#su>v|J$Xh3NKc-TfdQm-AO`}F+uNh{KRA{~iIElp0GRqvX#fBK

literal 0
HcmV?d00001

diff --git a/testCases/pr2/inputs/input1/A.csv b/testCases/pr2/inputs/input1/A.csv
new file mode 100644
index 0000000..e69de29
diff --git a/testCases/pr2/inputs/input10/A.csv b/testCases/pr2/inputs/input10/A.csv
new file mode 100644
index 0000000..69d9e09
--- /dev/null
+++ b/testCases/pr2/inputs/input10/A.csv
@@ -0,0 +1,21 @@
+1,2,1
+1,2,2
+1,2,3
+1,1,1
+1,1,2
+1,1,3
+1,1,4
+1,1,5
+1,1,
+2,2,1
+2,2,2
+2,2,3
+2,2,4
+2,2,5
+2,2,
+,,1
+,,2
+,,3
+,,4
+,,5
+,,
diff --git a/testCases/pr2/inputs/input2/A.csv b/testCases/pr2/inputs/input2/A.csv
new file mode 100644
index 0000000..1157b19
--- /dev/null
+++ b/testCases/pr2/inputs/input2/A.csv
@@ -0,0 +1 @@
+yeah,nope,oof
diff --git a/testCases/pr2/inputs/input3/A.csv b/testCases/pr2/inputs/input3/A.csv
new file mode 100644
index 0000000..5d241c0
--- /dev/null
+++ b/testCases/pr2/inputs/input3/A.csv
@@ -0,0 +1 @@
+yeah,yeah,oof
diff --git a/testCases/pr2/inputs/input4/A.csv b/testCases/pr2/inputs/input4/A.csv
new file mode 100644
index 0000000..5c07200
--- /dev/null
+++ b/testCases/pr2/inputs/input4/A.csv
@@ -0,0 +1 @@
+,yeah,oof
diff --git a/testCases/pr2/inputs/input5/A.csv b/testCases/pr2/inputs/input5/A.csv
new file mode 100644
index 0000000..73c258e
--- /dev/null
+++ b/testCases/pr2/inputs/input5/A.csv
@@ -0,0 +1 @@
+yeah,,oof
diff --git a/testCases/pr2/inputs/input6/A.csv b/testCases/pr2/inputs/input6/A.csv
new file mode 100644
index 0000000..8e60242
--- /dev/null
+++ b/testCases/pr2/inputs/input6/A.csv
@@ -0,0 +1 @@
+yeah,yeah,
diff --git a/testCases/pr2/inputs/input7/A.csv b/testCases/pr2/inputs/input7/A.csv
new file mode 100644
index 0000000..68eacf1
--- /dev/null
+++ b/testCases/pr2/inputs/input7/A.csv
@@ -0,0 +1 @@
+,,yeah
diff --git a/testCases/pr2/inputs/input8/A.csv b/testCases/pr2/inputs/input8/A.csv
new file mode 100644
index 0000000..48c47f4
--- /dev/null
+++ b/testCases/pr2/inputs/input8/A.csv
@@ -0,0 +1,2 @@
+yeah,yeah,yeah
+nope,yeah,nope
diff --git a/testCases/pr2/inputs/input9/A.csv b/testCases/pr2/inputs/input9/A.csv
new file mode 100644
index 0000000..6dd62ab
--- /dev/null
+++ b/testCases/pr2/inputs/input9/A.csv
@@ -0,0 +1,5 @@
+yeah,yeah,05
+nope,nope,04
+blah,blah,03
+blah,nope,02
+blah,yeah,01
diff --git a/testCases/pr3/.DS_Store b/testCases/pr3/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr3/expected/exp1.txt b/testCases/pr3/expected/exp1.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/testCases/pr3/expected/exp1.txt
@@ -0,0 +1 @@
+
diff --git a/testCases/pr3/expected/exp10.txt b/testCases/pr3/expected/exp10.txt
new file mode 100644
index 0000000..8d98e36
--- /dev/null
+++ b/testCases/pr3/expected/exp10.txt
@@ -0,0 +1,18 @@
+k1,1,2,3
+k1,1,2,3
+k1,1,2,c
+k1,1,2,f
+k1,1,b,3
+k1,1,e,3
+k1,a,2,3
+k1,d,2,3
+k2,4,5,6
+k2,4,5,6
+k2,4,b,c
+k2,4,e,f
+k2,a,5,c
+k2,a,b,6
+k2,d,5,f
+k2,d,e,6
+k3,7,8,9
+k3,g,h,i
diff --git a/testCases/pr3/expected/exp2.txt b/testCases/pr3/expected/exp2.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/testCases/pr3/expected/exp2.txt
@@ -0,0 +1 @@
+
diff --git a/testCases/pr3/expected/exp3.txt b/testCases/pr3/expected/exp3.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/testCases/pr3/expected/exp3.txt
@@ -0,0 +1 @@
+
diff --git a/testCases/pr3/expected/exp4.txt b/testCases/pr3/expected/exp4.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/testCases/pr3/expected/exp4.txt
@@ -0,0 +1 @@
+
diff --git a/testCases/pr3/expected/exp5.txt b/testCases/pr3/expected/exp5.txt
new file mode 100644
index 0000000..54041bb
--- /dev/null
+++ b/testCases/pr3/expected/exp5.txt
@@ -0,0 +1 @@
+2,6,7,8
diff --git a/testCases/pr3/expected/exp6.txt b/testCases/pr3/expected/exp6.txt
new file mode 100644
index 0000000..0adb4e9
--- /dev/null
+++ b/testCases/pr3/expected/exp6.txt
@@ -0,0 +1 @@
+2,3,4,5
diff --git a/testCases/pr3/expected/exp7.txt b/testCases/pr3/expected/exp7.txt
new file mode 100644
index 0000000..4b13925
--- /dev/null
+++ b/testCases/pr3/expected/exp7.txt
@@ -0,0 +1 @@
+2,3,3,5
diff --git a/testCases/pr3/expected/exp8.txt b/testCases/pr3/expected/exp8.txt
new file mode 100644
index 0000000..990768e
--- /dev/null
+++ b/testCases/pr3/expected/exp8.txt
@@ -0,0 +1 @@
+2,,,
diff --git a/testCases/pr3/expected/exp9.txt b/testCases/pr3/expected/exp9.txt
new file mode 100644
index 0000000..4fb9341
--- /dev/null
+++ b/testCases/pr3/expected/exp9.txt
@@ -0,0 +1,3 @@
+key1,octane,fennec,breakout
+key3,breakout,scarab,zippy
+key3,peregrine,breakout,zippy
diff --git a/testCases/pr3/inputs/.DS_Store b/testCases/pr3/inputs/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr3/inputs/input1/P.csv b/testCases/pr3/inputs/input1/P.csv
new file mode 100644
index 0000000..e69de29
diff --git a/testCases/pr3/inputs/input1/Q.csv b/testCases/pr3/inputs/input1/Q.csv
new file mode 100644
index 0000000..e69de29
diff --git a/testCases/pr3/inputs/input10/P.csv b/testCases/pr3/inputs/input10/P.csv
new file mode 100644
index 0000000..a02355a
--- /dev/null
+++ b/testCases/pr3/inputs/input10/P.csv
@@ -0,0 +1,10 @@
+k1,1,2,3
+k1,,2,3
+k1,1,,3
+k1,1,2,
+k2,4,5,6
+k2,4,,
+k2,,5,
+k2,,,6
+k3,7,8,9
+k3,,,
diff --git a/testCases/pr3/inputs/input10/Q.csv b/testCases/pr3/inputs/input10/Q.csv
new file mode 100644
index 0000000..1de48a5
--- /dev/null
+++ b/testCases/pr3/inputs/input10/Q.csv
@@ -0,0 +1,5 @@
+k1,a,b,c
+k1,d,e,f
+k2,a,b,c
+k2,d,e,f
+k3,g,h,i
diff --git a/testCases/pr3/inputs/input2/P.csv b/testCases/pr3/inputs/input2/P.csv
new file mode 100644
index 0000000..89cadda
--- /dev/null
+++ b/testCases/pr3/inputs/input2/P.csv
@@ -0,0 +1 @@
+5,6,7,8
diff --git a/testCases/pr3/inputs/input2/Q.csv b/testCases/pr3/inputs/input2/Q.csv
new file mode 100644
index 0000000..e69de29
diff --git a/testCases/pr3/inputs/input3/P.csv b/testCases/pr3/inputs/input3/P.csv
new file mode 100644
index 0000000..e69de29
diff --git a/testCases/pr3/inputs/input3/Q.csv b/testCases/pr3/inputs/input3/Q.csv
new file mode 100644
index 0000000..89cadda
--- /dev/null
+++ b/testCases/pr3/inputs/input3/Q.csv
@@ -0,0 +1 @@
+5,6,7,8
diff --git a/testCases/pr3/inputs/input4/P.csv b/testCases/pr3/inputs/input4/P.csv
new file mode 100644
index 0000000..89cadda
--- /dev/null
+++ b/testCases/pr3/inputs/input4/P.csv
@@ -0,0 +1 @@
+5,6,7,8
diff --git a/testCases/pr3/inputs/input4/Q.csv b/testCases/pr3/inputs/input4/Q.csv
new file mode 100644
index 0000000..0adb4e9
--- /dev/null
+++ b/testCases/pr3/inputs/input4/Q.csv
@@ -0,0 +1 @@
+2,3,4,5
diff --git a/testCases/pr3/inputs/input5/P.csv b/testCases/pr3/inputs/input5/P.csv
new file mode 100644
index 0000000..54041bb
--- /dev/null
+++ b/testCases/pr3/inputs/input5/P.csv
@@ -0,0 +1 @@
+2,6,7,8
diff --git a/testCases/pr3/inputs/input5/Q.csv b/testCases/pr3/inputs/input5/Q.csv
new file mode 100644
index 0000000..0adb4e9
--- /dev/null
+++ b/testCases/pr3/inputs/input5/Q.csv
@@ -0,0 +1 @@
+2,3,4,5
diff --git a/testCases/pr3/inputs/input6/P.csv b/testCases/pr3/inputs/input6/P.csv
new file mode 100644
index 0000000..990768e
--- /dev/null
+++ b/testCases/pr3/inputs/input6/P.csv
@@ -0,0 +1 @@
+2,,,
diff --git a/testCases/pr3/inputs/input6/Q.csv b/testCases/pr3/inputs/input6/Q.csv
new file mode 100644
index 0000000..0adb4e9
--- /dev/null
+++ b/testCases/pr3/inputs/input6/Q.csv
@@ -0,0 +1 @@
+2,3,4,5
diff --git a/testCases/pr3/inputs/input7/P.csv b/testCases/pr3/inputs/input7/P.csv
new file mode 100644
index 0000000..90579df
--- /dev/null
+++ b/testCases/pr3/inputs/input7/P.csv
@@ -0,0 +1 @@
+2,,3,
diff --git a/testCases/pr3/inputs/input7/Q.csv b/testCases/pr3/inputs/input7/Q.csv
new file mode 100644
index 0000000..0adb4e9
--- /dev/null
+++ b/testCases/pr3/inputs/input7/Q.csv
@@ -0,0 +1 @@
+2,3,4,5
diff --git a/testCases/pr3/inputs/input8/P.csv b/testCases/pr3/inputs/input8/P.csv
new file mode 100644
index 0000000..990768e
--- /dev/null
+++ b/testCases/pr3/inputs/input8/P.csv
@@ -0,0 +1 @@
+2,,,
diff --git a/testCases/pr3/inputs/input8/Q.csv b/testCases/pr3/inputs/input8/Q.csv
new file mode 100644
index 0000000..990768e
--- /dev/null
+++ b/testCases/pr3/inputs/input8/Q.csv
@@ -0,0 +1 @@
+2,,,
diff --git a/testCases/pr3/inputs/input9/P.csv b/testCases/pr3/inputs/input9/P.csv
new file mode 100644
index 0000000..46354b0
--- /dev/null
+++ b/testCases/pr3/inputs/input9/P.csv
@@ -0,0 +1,3 @@
+key3,breakout,,
+key3,,breakout,
+key1,,,breakout
diff --git a/testCases/pr3/inputs/input9/Q.csv b/testCases/pr3/inputs/input9/Q.csv
new file mode 100644
index 0000000..17a6b9b
--- /dev/null
+++ b/testCases/pr3/inputs/input9/Q.csv
@@ -0,0 +1,3 @@
+key1,octane,fennec,grog
+key2,marauder,gizmo,dominus
+key3,peregrine,scarab,zippy
diff --git a/testCases/pr4/.DS_Store b/testCases/pr4/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr4/expected/.DS_Store b/testCases/pr4/expected/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr4/expected/exp1.txt b/testCases/pr4/expected/exp1.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/testCases/pr4/expected/exp1.txt
@@ -0,0 +1 @@
+
diff --git a/testCases/pr4/expected/exp2.txt b/testCases/pr4/expected/exp2.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/testCases/pr4/expected/exp2.txt
@@ -0,0 +1 @@
+
diff --git a/testCases/pr4/expected/exp3.txt b/testCases/pr4/expected/exp3.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/testCases/pr4/expected/exp3.txt
@@ -0,0 +1 @@
+
diff --git a/testCases/pr4/expected/exp4.txt b/testCases/pr4/expected/exp4.txt
new file mode 100644
index 0000000..5d12590
--- /dev/null
+++ b/testCases/pr4/expected/exp4.txt
@@ -0,0 +1 @@
+,purple
diff --git a/testCases/pr4/expected/exp5.txt b/testCases/pr4/expected/exp5.txt
new file mode 100644
index 0000000..0b28107
--- /dev/null
+++ b/testCases/pr4/expected/exp5.txt
@@ -0,0 +1 @@
+octane,crimson
diff --git a/testCases/pr4/expected/exp6.txt b/testCases/pr4/expected/exp6.txt
new file mode 100644
index 0000000..0b28107
--- /dev/null
+++ b/testCases/pr4/expected/exp6.txt
@@ -0,0 +1 @@
+octane,crimson
diff --git a/testCases/pr4/expected/exp7.txt b/testCases/pr4/expected/exp7.txt
new file mode 100644
index 0000000..e72e52e
--- /dev/null
+++ b/testCases/pr4/expected/exp7.txt
@@ -0,0 +1,3 @@
+dominus,black
+fennec,purple
+octane,crimson
diff --git a/testCases/pr4/expected/exp8.txt b/testCases/pr4/expected/exp8.txt
new file mode 100644
index 0000000..4af3862
--- /dev/null
+++ b/testCases/pr4/expected/exp8.txt
@@ -0,0 +1,11 @@
+animus,orange
+animus,saffron
+breakout,green
+dominus,black
+dominus,cobalt
+dominus,sky blue
+fennec,cobalt
+fennec,purple
+octane,burnt sienna
+octane,crimson
+octane,titanium white
diff --git a/testCases/pr4/inputs/.DS_Store b/testCases/pr4/inputs/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr4/inputs/input1/A.csv b/testCases/pr4/inputs/input1/A.csv
new file mode 100644
index 0000000..e69de29
diff --git a/testCases/pr4/inputs/input2/A.csv b/testCases/pr4/inputs/input2/A.csv
new file mode 100644
index 0000000..7edb2fa
--- /dev/null
+++ b/testCases/pr4/inputs/input2/A.csv
@@ -0,0 +1 @@
+,
diff --git a/testCases/pr4/inputs/input3/A.csv b/testCases/pr4/inputs/input3/A.csv
new file mode 100644
index 0000000..7d5a31a
--- /dev/null
+++ b/testCases/pr4/inputs/input3/A.csv
@@ -0,0 +1 @@
+octane,
diff --git a/testCases/pr4/inputs/input4/A.csv b/testCases/pr4/inputs/input4/A.csv
new file mode 100644
index 0000000..5d12590
--- /dev/null
+++ b/testCases/pr4/inputs/input4/A.csv
@@ -0,0 +1 @@
+,purple
diff --git a/testCases/pr4/inputs/input5/A.csv b/testCases/pr4/inputs/input5/A.csv
new file mode 100644
index 0000000..0b28107
--- /dev/null
+++ b/testCases/pr4/inputs/input5/A.csv
@@ -0,0 +1 @@
+octane,crimson
diff --git a/testCases/pr4/inputs/input6/A.csv b/testCases/pr4/inputs/input6/A.csv
new file mode 100644
index 0000000..b6f54ab
--- /dev/null
+++ b/testCases/pr4/inputs/input6/A.csv
@@ -0,0 +1,2 @@
+octane,crimson
+fennec,
diff --git a/testCases/pr4/inputs/input7/A.csv b/testCases/pr4/inputs/input7/A.csv
new file mode 100644
index 0000000..23926a4
--- /dev/null
+++ b/testCases/pr4/inputs/input7/A.csv
@@ -0,0 +1,3 @@
+octane,crimson
+fennec,purple
+dominus,black
diff --git a/testCases/pr4/inputs/input8/A.csv b/testCases/pr4/inputs/input8/A.csv
new file mode 100644
index 0000000..6bff415
--- /dev/null
+++ b/testCases/pr4/inputs/input8/A.csv
@@ -0,0 +1,15 @@
+octane,crimson
+fennec,purple
+dominus,black
+fennec,
+dominus,
+octane,burnt sienna
+octane,titanium white
+dominus,sky blue
+dominus,cobalt
+fennec,cobalt
+breakout,
+breakout,green
+animus,saffron
+animus,
+animus,orange
\ No newline at end of file
diff --git a/testCases/pr5/.DS_Store b/testCases/pr5/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr5/expected/exp1.txt b/testCases/pr5/expected/exp1.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/testCases/pr5/expected/exp1.txt
@@ -0,0 +1 @@
+
diff --git a/testCases/pr5/expected/exp2.txt b/testCases/pr5/expected/exp2.txt
new file mode 100644
index 0000000..4b561c8
--- /dev/null
+++ b/testCases/pr5/expected/exp2.txt
@@ -0,0 +1 @@
+,0,
diff --git a/testCases/pr5/expected/exp3.txt b/testCases/pr5/expected/exp3.txt
new file mode 100644
index 0000000..6dbe09b
--- /dev/null
+++ b/testCases/pr5/expected/exp3.txt
@@ -0,0 +1 @@
+banana,0,banana
diff --git a/testCases/pr5/expected/exp4.txt b/testCases/pr5/expected/exp4.txt
new file mode 100644
index 0000000..210f8ef
--- /dev/null
+++ b/testCases/pr5/expected/exp4.txt
@@ -0,0 +1,2 @@
+banana,0,banana
+banana,0,banana
diff --git a/testCases/pr5/expected/exp5.txt b/testCases/pr5/expected/exp5.txt
new file mode 100644
index 0000000..9865e3d
--- /dev/null
+++ b/testCases/pr5/expected/exp5.txt
@@ -0,0 +1,3 @@
+,0,
+banana,0,banana
+banana,0,banana
diff --git a/testCases/pr5/expected/exp6.txt b/testCases/pr5/expected/exp6.txt
new file mode 100644
index 0000000..e416502
--- /dev/null
+++ b/testCases/pr5/expected/exp6.txt
@@ -0,0 +1,6 @@
+apple,0,apple
+apple,0,apple
+apple,0,apple
+banana,0,banana
+banana,0,banana
+orange,0,orange
diff --git a/testCases/pr5/expected/exp7.txt b/testCases/pr5/expected/exp7.txt
new file mode 100644
index 0000000..9126a55
--- /dev/null
+++ b/testCases/pr5/expected/exp7.txt
@@ -0,0 +1,52 @@
+AA,0,AA
+AB,0,AB
+AC,0,AC
+AD,0,AD
+AE,0,AE
+AF,0,AF
+AG,0,AG
+AH,0,AH
+AI,0,AI
+AJ,0,AJ
+AK,0,AK
+AL,0,AL
+AM,0,AM
+AN,0,AN
+AO,0,AO
+AP,0,AP
+AQ,0,AQ
+AR,0,AR
+AS,0,AS
+AT,0,AT
+AU,0,AU
+AV,0,AV
+AW,0,AW
+AX,0,AX
+AY,0,AY
+AZ,0,AZ
+BA,0,BA
+BB,0,BB
+BC,0,BC
+BD,0,BD
+BE,0,BE
+BF,0,BF
+BG,0,BG
+BH,0,BH
+BI,0,BI
+BJ,0,BJ
+BK,0,BK
+BL,0,BL
+BM,0,BM
+BN,0,BN
+BO,0,BO
+BP,0,BP
+BQ,0,BQ
+BR,0,BR
+BS,0,BS
+BT,0,BT
+BU,0,BU
+BV,0,BV
+BW,0,BW
+BX,0,BX
+BY,0,BY
+BZ,0,BZ
diff --git a/testCases/pr5/inputs/.DS_Store b/testCases/pr5/inputs/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8z45|!R0Z1N%F(jFgL>QrFAPJ2!M?+vV1V%$(Gz3ON
zU^D~<VF)ln+{D2Rp-0Kl5Eu=C(GY-#0H}OW0QD6Z7#JL&bOVG2Nii@oFo3%Nj0_Ac
zFio(203!nfNGnJUNGpg2X=PvpvA|}4wK6b5wK9UcAq)(R;4TS>25V<v1ltVagS9g-
zf^BACV1#IAV1(Mt2<@RTf_gL{^C8+97{Ru~TsKOOhQMeDz(Rl-!Vmz}|E>%SxcdJP
zRior+2#kinunYl47MEZbCs3t{!+W4QHvuXKVuPw;Mo^s$(F3lEVT}ML$bg~*R5_@+
b2Uo?6kTwK}57Iu`5P${HC_Nei0}uiLNUI8I

literal 0
HcmV?d00001

diff --git a/testCases/pr5/inputs/input1/A.csv b/testCases/pr5/inputs/input1/A.csv
new file mode 100644
index 0000000..e69de29
diff --git a/testCases/pr5/inputs/input2/A.csv b/testCases/pr5/inputs/input2/A.csv
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/testCases/pr5/inputs/input2/A.csv
@@ -0,0 +1 @@
+
diff --git a/testCases/pr5/inputs/input3/A.csv b/testCases/pr5/inputs/input3/A.csv
new file mode 100644
index 0000000..637a09b
--- /dev/null
+++ b/testCases/pr5/inputs/input3/A.csv
@@ -0,0 +1 @@
+banana
diff --git a/testCases/pr5/inputs/input4/A.csv b/testCases/pr5/inputs/input4/A.csv
new file mode 100644
index 0000000..d1045c8
--- /dev/null
+++ b/testCases/pr5/inputs/input4/A.csv
@@ -0,0 +1,2 @@
+banana
+banana
diff --git a/testCases/pr5/inputs/input5/A.csv b/testCases/pr5/inputs/input5/A.csv
new file mode 100644
index 0000000..8b9e437
--- /dev/null
+++ b/testCases/pr5/inputs/input5/A.csv
@@ -0,0 +1,3 @@
+banana
+
+banana
diff --git a/testCases/pr5/inputs/input6/A.csv b/testCases/pr5/inputs/input6/A.csv
new file mode 100644
index 0000000..e21ebdf
--- /dev/null
+++ b/testCases/pr5/inputs/input6/A.csv
@@ -0,0 +1,6 @@
+banana
+banana
+apple
+apple
+apple
+orange
diff --git a/testCases/pr5/inputs/input7/A.csv b/testCases/pr5/inputs/input7/A.csv
new file mode 100644
index 0000000..716875e
--- /dev/null
+++ b/testCases/pr5/inputs/input7/A.csv
@@ -0,0 +1,52 @@
+AA
+AB
+AC
+AD
+AE
+AF
+AG
+AH
+AI
+AJ
+AK
+AL
+AM
+AN
+AO
+AP
+AQ
+AR
+AS
+AT
+AU
+AV
+AW
+AX
+AY
+AZ
+BA
+BB
+BC
+BD
+BE
+BF
+BG
+BH
+BI
+BJ
+BK
+BL
+BM
+BN
+BO
+BP
+BQ
+BR
+BS
+BT
+BU
+BV
+BW
+BX
+BY
+BZ
diff --git a/testCases/pr6/expected/exp1.txt b/testCases/pr6/expected/exp1.txt
new file mode 100644
index 0000000..8591cf3
--- /dev/null
+++ b/testCases/pr6/expected/exp1.txt
@@ -0,0 +1,6 @@
+1,2,3,1,2,3,10,20,1,2,3,4
+1,2,3,4,5,6,10,20,1,2,3,4
+4,5,6,1,2,3,10,20,1,2,3,4
+4,5,6,4,5,6,10,20,1,2,3,4
+7,8,9,1,2,3,10,20,1,2,3,4
+7,8,9,4,5,6,10,20,1,2,3,4
diff --git a/testCases/pr6/inputs/input1/P.csv b/testCases/pr6/inputs/input1/P.csv
new file mode 100644
index 0000000..53aa2da
--- /dev/null
+++ b/testCases/pr6/inputs/input1/P.csv
@@ -0,0 +1,3 @@
+1 , 2 , 3
+4 , 5 , 6
+7 , 8 , 9
\ No newline at end of file
diff --git a/testCases/pr6/inputs/input1/Q.csv b/testCases/pr6/inputs/input1/Q.csv
new file mode 100644
index 0000000..3bbbf7b
--- /dev/null
+++ b/testCases/pr6/inputs/input1/Q.csv
@@ -0,0 +1,2 @@
+1 , 2 , 3
+4 , 5 , 6
\ No newline at end of file
diff --git a/testCases/pr6/inputs/input1/R.csv b/testCases/pr6/inputs/input1/R.csv
new file mode 100644
index 0000000..cb5746e
--- /dev/null
+++ b/testCases/pr6/inputs/input1/R.csv
@@ -0,0 +1 @@
+10 
\ No newline at end of file
diff --git a/testCases/pr6/inputs/input1/S.csv b/testCases/pr6/inputs/input1/S.csv
new file mode 100644
index 0000000..2edeafb
--- /dev/null
+++ b/testCases/pr6/inputs/input1/S.csv
@@ -0,0 +1 @@
+20
\ No newline at end of file
diff --git a/testCases/pr6/inputs/input1/T.csv b/testCases/pr6/inputs/input1/T.csv
new file mode 100644
index 0000000..53b846b
--- /dev/null
+++ b/testCases/pr6/inputs/input1/T.csv
@@ -0,0 +1 @@
+1 , 2 , 3 , 4
\ No newline at end of file
diff --git a/testCases/pr7/inputs/input1/F.csv b/testCases/pr7/inputs/input1/F.csv
new file mode 100644
index 0000000..48a3f00
--- /dev/null
+++ b/testCases/pr7/inputs/input1/F.csv
@@ -0,0 +1,4 @@
+a,b, c
+d,e ,
+g,h, i
+j ,k, l
\ No newline at end of file
diff --git a/testCases/pr7/inputs/input1/G.csv b/testCases/pr7/inputs/input1/G.csv
new file mode 100644
index 0000000..faff72a
--- /dev/null
+++ b/testCases/pr7/inputs/input1/G.csv
@@ -0,0 +1,5 @@
+b,c ,d
+b,c ,e
+h, , i
+k,l ,
+k,l , l
\ No newline at end of file
diff --git a/testCases/pr8/expected/exp1.txt b/testCases/pr8/expected/exp1.txt
new file mode 100644
index 0000000..e69de29
diff --git a/testCases/pr8/inputs/input1/P.csv b/testCases/pr8/inputs/input1/P.csv
new file mode 100644
index 0000000..6db62f6
--- /dev/null
+++ b/testCases/pr8/inputs/input1/P.csv
@@ -0,0 +1,4 @@
+, 4 , 5 , 1
+, 2 , , 2
+2 , 1 , 7 , 3
+, 1 , 8 , 4
\ No newline at end of file
diff --git a/testCases/pr8/inputs/input1/Q.csv b/testCases/pr8/inputs/input1/Q.csv
new file mode 100644
index 0000000..11f80d7
--- /dev/null
+++ b/testCases/pr8/inputs/input1/Q.csv
@@ -0,0 +1,4 @@
+7 , 4 , 6 , 1
+3 , 5 , 8 , 2
+1 , , , 2
+3 , 2 , , 4
\ No newline at end of file
diff --git a/testCases/pr8/inputs/input2/P.csv b/testCases/pr8/inputs/input2/P.csv
new file mode 100644
index 0000000..11e3558
--- /dev/null
+++ b/testCases/pr8/inputs/input2/P.csv
@@ -0,0 +1,2 @@
+Alice , L , , LC
+Bob , ,CC,CD
\ No newline at end of file
diff --git a/testCases/pr8/inputs/input2/Q.csv b/testCases/pr8/inputs/input2/Q.csv
new file mode 100644
index 0000000..e29fc58
--- /dev/null
+++ b/testCases/pr8/inputs/input2/Q.csv
@@ -0,0 +1,2 @@
+Bob , C, ,CD
+Alice , ,AAW, LC
\ No newline at end of file
diff --git a/testCases/pr9/inputs/input1/R.csv b/testCases/pr9/inputs/input1/R.csv
new file mode 100644
index 0000000..30bd015
--- /dev/null
+++ b/testCases/pr9/inputs/input1/R.csv
@@ -0,0 +1,5 @@
+Southampton , Romsey
+Romsey , Salisbury
+Salisbury , Warminster
+Warminster , Westbury
+Westbury , Westbury
\ No newline at end of file
-- 
GitLab