IVGCVSW-6075 Add ParseExpandDims to TfliteParser

* Add ExpandDims tests in tfliteparser
* Add support for negative axis to squeeze

Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Signed-off-by: Finn Williams <Finn.Williams@arm.com>
Change-Id: I604c9b4ac6514895e9e3d4d85c2937e797d288e0
diff --git a/src/armnnTfLiteParser/test/Squeeze.cpp b/src/armnnTfLiteParser/test/Squeeze.cpp
index da870fd..6f533ba 100644
--- a/src/armnnTfLiteParser/test/Squeeze.cpp
+++ b/src/armnnTfLiteParser/test/Squeeze.cpp
@@ -128,14 +128,44 @@
 }
 
 
-struct SqueezeFixtureWithNegativeSqueezeDims : SqueezeFixture
+struct SqueezeFixtureWithNegativeSqueezeDims1 : SqueezeFixture
 {
-    SqueezeFixtureWithNegativeSqueezeDims() : SqueezeFixture("[ 1, 2, 2, 1 ]",
-                                                             "[ 1, 2, 2, 1 ]",
-                                                             "[ -2 , 2 ]") {}
+    SqueezeFixtureWithNegativeSqueezeDims1() : SqueezeFixture("[ 1, 2, 2, 1 ]",
+                                                             "[ 2, 2, 1 ]",
+                                                             "[ -1 ]") {}
 };
 
-TEST_CASE_FIXTURE(SqueezeFixtureWithNegativeSqueezeDims, "ParseSqueezeNegativeSqueezeDims")
+TEST_CASE_FIXTURE(SqueezeFixtureWithNegativeSqueezeDims1, "ParseSqueezeNegativeSqueezeDims1")
+{
+    SetupSingleInputSingleOutput("inputTensor", "outputTensor");
+    RunTest<3, armnn::DataType::QAsymmU8>(0, { 1, 2, 3, 4 }, { 1, 2, 3, 4 });
+            CHECK((m_Parser->GetNetworkOutputBindingInfo(0, "outputTensor").second.GetShape()
+                   == armnn::TensorShape({ 2, 2, 1 })));
+}
+
+struct SqueezeFixtureWithNegativeSqueezeDims2 : SqueezeFixture
+{
+    SqueezeFixtureWithNegativeSqueezeDims2() : SqueezeFixture("[ 1, 2, 2, 1 ]",
+                                                              "[ 1, 2, 2 ]",
+                                                              "[ -1 ]") {}
+};
+
+TEST_CASE_FIXTURE(SqueezeFixtureWithNegativeSqueezeDims2, "ParseSqueezeNegativeSqueezeDims2")
+{
+    SetupSingleInputSingleOutput("inputTensor", "outputTensor");
+    RunTest<3, armnn::DataType::QAsymmU8>(0, { 1, 2, 3, 4 }, { 1, 2, 3, 4 });
+            CHECK((m_Parser->GetNetworkOutputBindingInfo(0, "outputTensor").second.GetShape()
+                   == armnn::TensorShape({ 1, 2, 2 })));
+}
+
+struct SqueezeFixtureWithNegativeSqueezeDimsInvalid : SqueezeFixture
+{
+    SqueezeFixtureWithNegativeSqueezeDimsInvalid() : SqueezeFixture("[ 1, 2, 2, 1 ]",
+                                                                    "[ 1, 2, 2, 1 ]",
+                                                                    "[ -2 , 2 ]") {}
+};
+
+TEST_CASE_FIXTURE(SqueezeFixtureWithNegativeSqueezeDimsInvalid, "ParseSqueezeNegativeSqueezeDimsInvalid")
 {
     CHECK_THROWS_AS((SetupSingleInputSingleOutput("inputTensor", "outputTensor")), armnn::ParseException);
 }