1 /* 2 * Copyright (C) 2019 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #include <android/hardware/neuralnetworks/1.3/types.h> 18 #include "ControlFlow.h" 19 #include "TestHarness.h" 20 21 namespace android::hardware::neuralnetworks::V1_3 { 22 23 static_assert(static_cast<uint64_t>(LoopTimeoutDurationNs::DEFAULT) == 24 nn::operation_while::kTimeoutNsDefault); 25 static_assert(static_cast<uint64_t>(LoopTimeoutDurationNs::MAXIMUM) == 26 nn::operation_while::kTimeoutNsMaximum); 27 28 // Make sure that the HIDL enums are compatible with the values defined in 29 // frameworks/ml/nn/tools/test_generator/test_harness/include/TestHarness.h. 30 using namespace test_helper; 31 #define CHECK_TEST_ENUM(EnumType, enumValue) \ 32 static_assert(static_cast<EnumType>(Test##EnumType::enumValue) == EnumType::enumValue) 33 34 CHECK_TEST_ENUM(OperandType, FLOAT32); 35 CHECK_TEST_ENUM(OperandType, INT32); 36 CHECK_TEST_ENUM(OperandType, UINT32); 37 CHECK_TEST_ENUM(OperandType, TENSOR_FLOAT32); 38 CHECK_TEST_ENUM(OperandType, TENSOR_INT32); 39 CHECK_TEST_ENUM(OperandType, TENSOR_QUANT8_ASYMM); 40 CHECK_TEST_ENUM(OperandType, BOOL); 41 CHECK_TEST_ENUM(OperandType, TENSOR_QUANT16_SYMM); 42 CHECK_TEST_ENUM(OperandType, TENSOR_FLOAT16); 43 CHECK_TEST_ENUM(OperandType, TENSOR_BOOL8); 44 CHECK_TEST_ENUM(OperandType, FLOAT16); 45 CHECK_TEST_ENUM(OperandType, TENSOR_QUANT8_SYMM_PER_CHANNEL); 46 CHECK_TEST_ENUM(OperandType, TENSOR_QUANT16_ASYMM); 47 CHECK_TEST_ENUM(OperandType, TENSOR_QUANT8_SYMM); 48 CHECK_TEST_ENUM(OperandType, TENSOR_QUANT8_ASYMM_SIGNED); 49 50 CHECK_TEST_ENUM(OperationType, ADD); 51 CHECK_TEST_ENUM(OperationType, AVERAGE_POOL_2D); 52 CHECK_TEST_ENUM(OperationType, CONCATENATION); 53 CHECK_TEST_ENUM(OperationType, CONV_2D); 54 CHECK_TEST_ENUM(OperationType, DEPTHWISE_CONV_2D); 55 CHECK_TEST_ENUM(OperationType, DEPTH_TO_SPACE); 56 CHECK_TEST_ENUM(OperationType, DEQUANTIZE); 57 CHECK_TEST_ENUM(OperationType, EMBEDDING_LOOKUP); 58 CHECK_TEST_ENUM(OperationType, FLOOR); 59 CHECK_TEST_ENUM(OperationType, FULLY_CONNECTED); 60 CHECK_TEST_ENUM(OperationType, HASHTABLE_LOOKUP); 61 CHECK_TEST_ENUM(OperationType, L2_NORMALIZATION); 62 CHECK_TEST_ENUM(OperationType, L2_POOL_2D); 63 CHECK_TEST_ENUM(OperationType, LOCAL_RESPONSE_NORMALIZATION); 64 CHECK_TEST_ENUM(OperationType, LOGISTIC); 65 CHECK_TEST_ENUM(OperationType, LSH_PROJECTION); 66 CHECK_TEST_ENUM(OperationType, LSTM); 67 CHECK_TEST_ENUM(OperationType, MAX_POOL_2D); 68 CHECK_TEST_ENUM(OperationType, MUL); 69 CHECK_TEST_ENUM(OperationType, RELU); 70 CHECK_TEST_ENUM(OperationType, RELU1); 71 CHECK_TEST_ENUM(OperationType, RELU6); 72 CHECK_TEST_ENUM(OperationType, RESHAPE); 73 CHECK_TEST_ENUM(OperationType, RESIZE_BILINEAR); 74 CHECK_TEST_ENUM(OperationType, RNN); 75 CHECK_TEST_ENUM(OperationType, SOFTMAX); 76 CHECK_TEST_ENUM(OperationType, SPACE_TO_DEPTH); 77 CHECK_TEST_ENUM(OperationType, SVDF); 78 CHECK_TEST_ENUM(OperationType, TANH); 79 CHECK_TEST_ENUM(OperationType, BATCH_TO_SPACE_ND); 80 CHECK_TEST_ENUM(OperationType, DIV); 81 CHECK_TEST_ENUM(OperationType, MEAN); 82 CHECK_TEST_ENUM(OperationType, PAD); 83 CHECK_TEST_ENUM(OperationType, SPACE_TO_BATCH_ND); 84 CHECK_TEST_ENUM(OperationType, SQUEEZE); 85 CHECK_TEST_ENUM(OperationType, STRIDED_SLICE); 86 CHECK_TEST_ENUM(OperationType, SUB); 87 CHECK_TEST_ENUM(OperationType, TRANSPOSE); 88 CHECK_TEST_ENUM(OperationType, ABS); 89 CHECK_TEST_ENUM(OperationType, ARGMAX); 90 CHECK_TEST_ENUM(OperationType, ARGMIN); 91 CHECK_TEST_ENUM(OperationType, AXIS_ALIGNED_BBOX_TRANSFORM); 92 CHECK_TEST_ENUM(OperationType, BIDIRECTIONAL_SEQUENCE_LSTM); 93 CHECK_TEST_ENUM(OperationType, BIDIRECTIONAL_SEQUENCE_RNN); 94 CHECK_TEST_ENUM(OperationType, BOX_WITH_NMS_LIMIT); 95 CHECK_TEST_ENUM(OperationType, CAST); 96 CHECK_TEST_ENUM(OperationType, CHANNEL_SHUFFLE); 97 CHECK_TEST_ENUM(OperationType, DETECTION_POSTPROCESSING); 98 CHECK_TEST_ENUM(OperationType, EQUAL); 99 CHECK_TEST_ENUM(OperationType, EXP); 100 CHECK_TEST_ENUM(OperationType, EXPAND_DIMS); 101 CHECK_TEST_ENUM(OperationType, GATHER); 102 CHECK_TEST_ENUM(OperationType, GENERATE_PROPOSALS); 103 CHECK_TEST_ENUM(OperationType, GREATER); 104 CHECK_TEST_ENUM(OperationType, GREATER_EQUAL); 105 CHECK_TEST_ENUM(OperationType, GROUPED_CONV_2D); 106 CHECK_TEST_ENUM(OperationType, HEATMAP_MAX_KEYPOINT); 107 CHECK_TEST_ENUM(OperationType, INSTANCE_NORMALIZATION); 108 CHECK_TEST_ENUM(OperationType, LESS); 109 CHECK_TEST_ENUM(OperationType, LESS_EQUAL); 110 CHECK_TEST_ENUM(OperationType, LOG); 111 CHECK_TEST_ENUM(OperationType, LOGICAL_AND); 112 CHECK_TEST_ENUM(OperationType, LOGICAL_NOT); 113 CHECK_TEST_ENUM(OperationType, LOGICAL_OR); 114 CHECK_TEST_ENUM(OperationType, LOG_SOFTMAX); 115 CHECK_TEST_ENUM(OperationType, MAXIMUM); 116 CHECK_TEST_ENUM(OperationType, MINIMUM); 117 CHECK_TEST_ENUM(OperationType, NEG); 118 CHECK_TEST_ENUM(OperationType, NOT_EQUAL); 119 CHECK_TEST_ENUM(OperationType, PAD_V2); 120 CHECK_TEST_ENUM(OperationType, POW); 121 CHECK_TEST_ENUM(OperationType, PRELU); 122 CHECK_TEST_ENUM(OperationType, QUANTIZE); 123 CHECK_TEST_ENUM(OperationType, QUANTIZED_16BIT_LSTM); 124 CHECK_TEST_ENUM(OperationType, RANDOM_MULTINOMIAL); 125 CHECK_TEST_ENUM(OperationType, REDUCE_ALL); 126 CHECK_TEST_ENUM(OperationType, REDUCE_ANY); 127 CHECK_TEST_ENUM(OperationType, REDUCE_MAX); 128 CHECK_TEST_ENUM(OperationType, REDUCE_MIN); 129 CHECK_TEST_ENUM(OperationType, REDUCE_PROD); 130 CHECK_TEST_ENUM(OperationType, REDUCE_SUM); 131 CHECK_TEST_ENUM(OperationType, ROI_ALIGN); 132 CHECK_TEST_ENUM(OperationType, ROI_POOLING); 133 CHECK_TEST_ENUM(OperationType, RSQRT); 134 CHECK_TEST_ENUM(OperationType, SELECT); 135 CHECK_TEST_ENUM(OperationType, SIN); 136 CHECK_TEST_ENUM(OperationType, SLICE); 137 CHECK_TEST_ENUM(OperationType, SPLIT); 138 CHECK_TEST_ENUM(OperationType, SQRT); 139 CHECK_TEST_ENUM(OperationType, TILE); 140 CHECK_TEST_ENUM(OperationType, TOPK_V2); 141 CHECK_TEST_ENUM(OperationType, TRANSPOSE_CONV_2D); 142 CHECK_TEST_ENUM(OperationType, UNIDIRECTIONAL_SEQUENCE_LSTM); 143 CHECK_TEST_ENUM(OperationType, UNIDIRECTIONAL_SEQUENCE_RNN); 144 CHECK_TEST_ENUM(OperationType, RESIZE_NEAREST_NEIGHBOR); 145 146 #undef CHECK_TEST_ENUM 147 148 } // namespace android::hardware::neuralnetworks::V1_3 149