1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2017 Arm Ltd. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker // 5*89c4ff92SAndroid Build Coastguard Worker 6*89c4ff92SAndroid Build Coastguard Worker #include <PrototxtConversions.hpp> 7*89c4ff92SAndroid Build Coastguard Worker #include "armnn/Tensor.hpp" 8*89c4ff92SAndroid Build Coastguard Worker 9*89c4ff92SAndroid Build Coastguard Worker #include <doctest/doctest.h> 10*89c4ff92SAndroid Build Coastguard Worker 11*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("PrototxtConversions") 12*89c4ff92SAndroid Build Coastguard Worker { 13*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("ConvertInt32ToOctalStringTest") 14*89c4ff92SAndroid Build Coastguard Worker { 15*89c4ff92SAndroid Build Coastguard Worker using armnnUtils::ConvertInt32ToOctalString; 16*89c4ff92SAndroid Build Coastguard Worker 17*89c4ff92SAndroid Build Coastguard Worker std::string octalString = ConvertInt32ToOctalString(1); 18*89c4ff92SAndroid Build Coastguard Worker CHECK(octalString.compare("\\\\001\\\\000\\\\000\\\\000")); 19*89c4ff92SAndroid Build Coastguard Worker 20*89c4ff92SAndroid Build Coastguard Worker octalString = ConvertInt32ToOctalString(256); 21*89c4ff92SAndroid Build Coastguard Worker CHECK(octalString.compare("\\\\000\\\\100\\\\000\\\\000")); 22*89c4ff92SAndroid Build Coastguard Worker 23*89c4ff92SAndroid Build Coastguard Worker octalString = ConvertInt32ToOctalString(65536); 24*89c4ff92SAndroid Build Coastguard Worker CHECK(octalString.compare("\\\\000\\\\000\\\\100\\\\000")); 25*89c4ff92SAndroid Build Coastguard Worker 26*89c4ff92SAndroid Build Coastguard Worker octalString = ConvertInt32ToOctalString(16777216); 27*89c4ff92SAndroid Build Coastguard Worker CHECK(octalString.compare("\\\\000\\\\000\\\\000\\\\100")); 28*89c4ff92SAndroid Build Coastguard Worker 29*89c4ff92SAndroid Build Coastguard Worker octalString = ConvertInt32ToOctalString(-1); 30*89c4ff92SAndroid Build Coastguard Worker CHECK(octalString.compare("\\\\377\\\\377\\\\377\\\\377")); 31*89c4ff92SAndroid Build Coastguard Worker 32*89c4ff92SAndroid Build Coastguard Worker octalString = ConvertInt32ToOctalString(-256); 33*89c4ff92SAndroid Build Coastguard Worker CHECK(octalString.compare("\\\\000\\\\377\\\\377\\\\377")); 34*89c4ff92SAndroid Build Coastguard Worker 35*89c4ff92SAndroid Build Coastguard Worker octalString = ConvertInt32ToOctalString(-65536); 36*89c4ff92SAndroid Build Coastguard Worker CHECK(octalString.compare("\\\\000\\\\000\\\\377\\\\377")); 37*89c4ff92SAndroid Build Coastguard Worker 38*89c4ff92SAndroid Build Coastguard Worker octalString = ConvertInt32ToOctalString(-16777216); 39*89c4ff92SAndroid Build Coastguard Worker CHECK(octalString.compare("\\\\000\\\\000\\\\000\\\\377")); 40*89c4ff92SAndroid Build Coastguard Worker } 41*89c4ff92SAndroid Build Coastguard Worker 42*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("ConvertTensorShapeToStringTest") 43*89c4ff92SAndroid Build Coastguard Worker { 44*89c4ff92SAndroid Build Coastguard Worker using armnnUtils::ConvertTensorShapeToString; 45*89c4ff92SAndroid Build Coastguard Worker using armnn::TensorShape; 46*89c4ff92SAndroid Build Coastguard Worker 47*89c4ff92SAndroid Build Coastguard Worker auto createAndConvert = [](std::initializer_list<unsigned int> dims) -> std::string __anon4f4d5e920102(std::initializer_list<unsigned int> dims) 48*89c4ff92SAndroid Build Coastguard Worker { 49*89c4ff92SAndroid Build Coastguard Worker auto shape = TensorShape{dims}; 50*89c4ff92SAndroid Build Coastguard Worker return ConvertTensorShapeToString(shape); 51*89c4ff92SAndroid Build Coastguard Worker }; 52*89c4ff92SAndroid Build Coastguard Worker 53*89c4ff92SAndroid Build Coastguard Worker auto output_string = createAndConvert({5}); 54*89c4ff92SAndroid Build Coastguard Worker CHECK(output_string.compare( 55*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 56*89c4ff92SAndroid Build Coastguard Worker "size: 5\n" 57*89c4ff92SAndroid Build Coastguard Worker "}")); 58*89c4ff92SAndroid Build Coastguard Worker 59*89c4ff92SAndroid Build Coastguard Worker output_string = createAndConvert({4, 5}); 60*89c4ff92SAndroid Build Coastguard Worker CHECK(output_string.compare( 61*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 62*89c4ff92SAndroid Build Coastguard Worker "size: 4\n" 63*89c4ff92SAndroid Build Coastguard Worker "}\n" 64*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 65*89c4ff92SAndroid Build Coastguard Worker "size: 5\n" 66*89c4ff92SAndroid Build Coastguard Worker "}" 67*89c4ff92SAndroid Build Coastguard Worker )); 68*89c4ff92SAndroid Build Coastguard Worker 69*89c4ff92SAndroid Build Coastguard Worker output_string = createAndConvert({3, 4, 5}); 70*89c4ff92SAndroid Build Coastguard Worker CHECK(output_string.compare( 71*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 72*89c4ff92SAndroid Build Coastguard Worker "size: 3\n" 73*89c4ff92SAndroid Build Coastguard Worker "}\n" 74*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 75*89c4ff92SAndroid Build Coastguard Worker "size: 4\n" 76*89c4ff92SAndroid Build Coastguard Worker "}\n" 77*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 78*89c4ff92SAndroid Build Coastguard Worker "size: 5\n" 79*89c4ff92SAndroid Build Coastguard Worker "}" 80*89c4ff92SAndroid Build Coastguard Worker )); 81*89c4ff92SAndroid Build Coastguard Worker 82*89c4ff92SAndroid Build Coastguard Worker output_string = createAndConvert({2, 3, 4, 5}); 83*89c4ff92SAndroid Build Coastguard Worker CHECK(output_string.compare( 84*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 85*89c4ff92SAndroid Build Coastguard Worker "size: 2\n" 86*89c4ff92SAndroid Build Coastguard Worker "}\n" 87*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 88*89c4ff92SAndroid Build Coastguard Worker "size: 3\n" 89*89c4ff92SAndroid Build Coastguard Worker "}\n" 90*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 91*89c4ff92SAndroid Build Coastguard Worker "size: 4\n" 92*89c4ff92SAndroid Build Coastguard Worker "}\n" 93*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 94*89c4ff92SAndroid Build Coastguard Worker "size: 5\n" 95*89c4ff92SAndroid Build Coastguard Worker "}" 96*89c4ff92SAndroid Build Coastguard Worker )); 97*89c4ff92SAndroid Build Coastguard Worker 98*89c4ff92SAndroid Build Coastguard Worker output_string = createAndConvert({1, 2, 3, 4, 5}); 99*89c4ff92SAndroid Build Coastguard Worker CHECK(output_string.compare( 100*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 101*89c4ff92SAndroid Build Coastguard Worker "size: 1\n" 102*89c4ff92SAndroid Build Coastguard Worker "}\n" 103*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 104*89c4ff92SAndroid Build Coastguard Worker "size: 2\n" 105*89c4ff92SAndroid Build Coastguard Worker "}\n" 106*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 107*89c4ff92SAndroid Build Coastguard Worker "size: 3\n" 108*89c4ff92SAndroid Build Coastguard Worker "}\n" 109*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 110*89c4ff92SAndroid Build Coastguard Worker "size: 4\n" 111*89c4ff92SAndroid Build Coastguard Worker "}\n" 112*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 113*89c4ff92SAndroid Build Coastguard Worker "size: 5\n" 114*89c4ff92SAndroid Build Coastguard Worker "}" 115*89c4ff92SAndroid Build Coastguard Worker )); 116*89c4ff92SAndroid Build Coastguard Worker 117*89c4ff92SAndroid Build Coastguard Worker output_string = createAndConvert({0xffffffff, 0xffffffff}); 118*89c4ff92SAndroid Build Coastguard Worker CHECK(output_string.compare( 119*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 120*89c4ff92SAndroid Build Coastguard Worker "size: 4294967295\n" 121*89c4ff92SAndroid Build Coastguard Worker "}\n" 122*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 123*89c4ff92SAndroid Build Coastguard Worker "size: 4294967295\n" 124*89c4ff92SAndroid Build Coastguard Worker "}" 125*89c4ff92SAndroid Build Coastguard Worker )); 126*89c4ff92SAndroid Build Coastguard Worker 127*89c4ff92SAndroid Build Coastguard Worker output_string = createAndConvert({1, 0}); 128*89c4ff92SAndroid Build Coastguard Worker CHECK(output_string.compare( 129*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 130*89c4ff92SAndroid Build Coastguard Worker "size: 1\n" 131*89c4ff92SAndroid Build Coastguard Worker "}\n" 132*89c4ff92SAndroid Build Coastguard Worker "dim {\n" 133*89c4ff92SAndroid Build Coastguard Worker "size: 0\n" 134*89c4ff92SAndroid Build Coastguard Worker "}" 135*89c4ff92SAndroid Build Coastguard Worker )); 136*89c4ff92SAndroid Build Coastguard Worker } 137*89c4ff92SAndroid Build Coastguard Worker 138*89c4ff92SAndroid Build Coastguard Worker } 139