aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/test
diff options
context:
space:
mode:
authorKevin May <kevin.may@arm.com>2020-09-08 15:50:18 +0100
committerKevin May <kevin.may@arm.com>2020-09-11 08:24:25 +0000
commitc9a82a24359d8d401ca499fbadd4e3b331a53564 (patch)
tree7f0c2477d51014881408acfa4eb289573c2288d0 /src/armnn/test
parent045f6be924240a560293a3a7a0ecae49bcf0d1fa (diff)
downloadarmnn-c9a82a24359d8d401ca499fbadd4e3b331a53564.tar.gz
IVGCVSW-5245 Add Quantization operator=() function
* Add unit tests to check if Quantization info copied correctly Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: I7bb7bde5d97e82c57252c6d5131fbe21ad3096d2
Diffstat (limited to 'src/armnn/test')
-rw-r--r--src/armnn/test/TensorTest.cpp63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/armnn/test/TensorTest.cpp b/src/armnn/test/TensorTest.cpp
index ed3925539b..a0b68acdd2 100644
--- a/src/armnn/test/TensorTest.cpp
+++ b/src/armnn/test/TensorTest.cpp
@@ -99,6 +99,69 @@ BOOST_FIXTURE_TEST_CASE(TensorInfoAssignmentOperator, TensorInfoFixture)
BOOST_TEST(copy == m_TensorInfo);
}
+BOOST_AUTO_TEST_CASE(CopyNoQuantizationTensorInfo)
+{
+ TensorInfo infoA;
+ infoA.SetShape({ 5, 6, 7, 8 });
+ infoA.SetDataType(DataType::QAsymmU8);
+
+ TensorInfo infoB;
+ infoB.SetShape({ 5, 6, 7, 8 });
+ infoB.SetDataType(DataType::QAsymmU8);
+ infoB.SetQuantizationScale(10.0f);
+ infoB.SetQuantizationOffset(5);
+ infoB.SetQuantizationDim(Optional<unsigned int>(1));
+
+ BOOST_TEST((infoA.GetShape() == TensorShape({ 5, 6, 7, 8 })));
+ BOOST_TEST((infoA.GetDataType() == DataType::QAsymmU8));
+ BOOST_TEST(infoA.GetQuantizationScale() == 1);
+ BOOST_TEST(infoA.GetQuantizationOffset() == 0);
+ BOOST_CHECK(!infoA.GetQuantizationDim().has_value());
+
+ BOOST_TEST(infoA != infoB);
+ infoA = infoB;
+ BOOST_TEST(infoA == infoB);
+
+ BOOST_TEST((infoA.GetShape() == TensorShape({ 5, 6, 7, 8 })));
+ BOOST_TEST((infoA.GetDataType() == DataType::QAsymmU8));
+ BOOST_TEST(infoA.GetQuantizationScale() == 10.0f);
+ BOOST_TEST(infoA.GetQuantizationOffset() == 5);
+ BOOST_CHECK(infoA.GetQuantizationDim().value() == 1);
+}
+
+BOOST_AUTO_TEST_CASE(CopyDifferentQuantizationTensorInfo)
+{
+ TensorInfo infoA;
+ infoA.SetShape({ 5, 6, 7, 8 });
+ infoA.SetDataType(DataType::QAsymmU8);
+ infoA.SetQuantizationScale(10.0f);
+ infoA.SetQuantizationOffset(5);
+ infoA.SetQuantizationDim(Optional<unsigned int>(1));
+
+ TensorInfo infoB;
+ infoB.SetShape({ 5, 6, 7, 8 });
+ infoB.SetDataType(DataType::QAsymmU8);
+ infoB.SetQuantizationScale(11.0f);
+ infoB.SetQuantizationOffset(6);
+ infoB.SetQuantizationDim(Optional<unsigned int>(2));
+
+ BOOST_TEST((infoA.GetShape() == TensorShape({ 5, 6, 7, 8 })));
+ BOOST_TEST((infoA.GetDataType() == DataType::QAsymmU8));
+ BOOST_TEST(infoA.GetQuantizationScale() == 10.0f);
+ BOOST_TEST(infoA.GetQuantizationOffset() == 5);
+ BOOST_CHECK(infoA.GetQuantizationDim().value() == 1);
+
+ BOOST_TEST(infoA != infoB);
+ infoA = infoB;
+ BOOST_TEST(infoA == infoB);
+
+ BOOST_TEST((infoA.GetShape() == TensorShape({ 5, 6, 7, 8 })));
+ BOOST_TEST((infoA.GetDataType() == DataType::QAsymmU8));
+ BOOST_TEST(infoA.GetQuantizationScale() == 11.0f);
+ BOOST_TEST(infoA.GetQuantizationOffset() == 6);
+ BOOST_CHECK(infoA.GetQuantizationDim().value() == 2);
+}
+
void CheckTensor(const ConstTensor& t)
{
t.GetInfo();