IVGCVSW-7879 Change REVERSE_V2 from LayerWithParameters with 1 input, to Layer with 2 inputs

  * Changing ReverseV2 to use two inputs
  * This is required by the backends
  * The ReverseV2Descriptor was removed
  * Tests updated
  * Added a Run<> templatefor inputs with different data types

Signed-off-by: Tracy Narine <tracy.narine@arm.com>
Change-Id: I22f947de829b4b3da6bda3a74f4ffdef4052cc25
diff --git a/src/armnnSerializer/test/SerializerTests.cpp b/src/armnnSerializer/test/SerializerTests.cpp
index 49971d2..163e5c8 100644
--- a/src/armnnSerializer/test/SerializerTests.cpp
+++ b/src/armnnSerializer/test/SerializerTests.cpp
@@ -2457,26 +2457,27 @@
 {
     const std::string layerName("reverseV2");
     const armnn::TensorInfo inputInfo  = armnn::TensorInfo({2, 3, 4}, armnn::DataType::Float32);
+    const armnn::TensorInfo axisInfo   = armnn::TensorInfo({3}, armnn::DataType::Signed32, 0.0f, 0, true);
     const armnn::TensorInfo outputInfo = armnn::TensorInfo({2, 3, 4}, armnn::DataType::Float32);
 
-    armnn::ReverseV2Descriptor desc;
-    desc.m_Axis = {1, 0, 2};
-
     armnn::INetworkPtr network = armnn::INetwork::Create();
     armnn::IConnectableLayer* const inputLayer = network->AddInputLayer(0);
-    armnn::IConnectableLayer* const reverseV2Layer = network->AddReverseV2Layer(desc, layerName.c_str());
+    armnn::IConnectableLayer* const axisLayer = network->AddInputLayer(1);
+    armnn::IConnectableLayer* const reverseV2Layer = network->AddReverseV2Layer(layerName.c_str());
     armnn::IConnectableLayer* const outputLayer = network->AddOutputLayer(0);
 
     inputLayer->GetOutputSlot(0).Connect(reverseV2Layer->GetInputSlot(0));
+    axisLayer->GetOutputSlot(0).Connect(reverseV2Layer->GetInputSlot(1));
     reverseV2Layer->GetOutputSlot(0).Connect(outputLayer->GetInputSlot(0));
 
     inputLayer->GetOutputSlot(0).SetTensorInfo(inputInfo);
+    axisLayer->GetOutputSlot(0).SetTensorInfo(axisInfo);
     reverseV2Layer->GetOutputSlot(0).SetTensorInfo(outputInfo);
 
     armnn::INetworkPtr deserializedNetwork = DeserializeNetwork(SerializeNetwork(*network));
     CHECK(deserializedNetwork);
 
-    LayerVerifierBaseWithDescriptor<armnn::ReverseV2Descriptor> verifier(layerName, {inputInfo}, {outputInfo}, desc);
+    LayerVerifierBase verifier(layerName, {inputInfo, axisInfo}, {outputInfo});
     deserializedNetwork->ExecuteStrategy(verifier);
 }