IVGCVSW-4013 Test that the quantizer fails gracefully
authorSadik Armagan <sadik.armagan@arm.com>
Wed, 23 Oct 2019 10:22:39 +0000 (11:22 +0100)
committerSadik Armagan <sadik.armagan@arm.com>
Wed, 23 Oct 2019 10:22:39 +0000 (11:22 +0100)
* Added Quantizer test for StandIn Layer

Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: I48bb9cadb48e20ee8e5b3dcf9e2f9fdb3b68351d

src/armnn/test/QuantizerTest.cpp

index e7feef5..90fd5e9 100644 (file)
@@ -1179,6 +1179,37 @@ BOOST_AUTO_TEST_CASE(QuantizeSoftmax)
     VisitLayersTopologically(quantizedNetworkQSymm16.get(), validatorQSymm16);
 }
 
+BOOST_AUTO_TEST_CASE(QuantizeStandIn)
+{
+    const TensorShape tensorShape{ 1U };
+    const TensorInfo tensorInfo(tensorShape, DataType::Float32);
+
+    INetworkPtr network = INetwork::Create();
+
+    StandInDescriptor descriptor;
+    descriptor.m_NumInputs = 1;
+    descriptor.m_NumOutputs = 1;
+
+    IConnectableLayer* inputLayer     = network->AddInputLayer(0);
+    IConnectableLayer* standInLayer   = network->AddStandInLayer(descriptor);
+    IConnectableLayer* outputLayer    = network->AddOutputLayer(0);
+
+    inputLayer->GetOutputSlot(0).Connect(standInLayer->GetInputSlot(0));
+    standInLayer->GetOutputSlot(0).Connect(outputLayer->GetInputSlot(0));
+
+    inputLayer->GetOutputSlot(0).SetTensorInfo(tensorInfo);
+    standInLayer->GetOutputSlot(0).SetTensorInfo(tensorInfo);
+
+    // test QAsymm8 quantization
+    BOOST_CHECK_THROW(INetworkQuantizer::Create(network.get())->ExportNetwork(),
+                      armnn::UnimplementedException);
+
+    // test QuantisedSymm16 quantization
+    const QuantizerOptions options(DataType::QuantisedSymm16);
+    BOOST_CHECK_THROW(INetworkQuantizer::Create(network.get(), options)->ExportNetwork(),
+                      armnn::UnimplementedException);
+}
+
 IConnectableLayer* CreateStartOfLeakyReluNetwork(INetwork* network, const TensorInfo& info)
 {
     ActivationDescriptor activationDescriptor;