blob: 1a40721f7b911d23e70ae34e939751b760bdc61c [file] [log] [blame]
Colin Crossb098d212019-10-10 22:58:36 +00001/*
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
Colin Cross552c7a62019-10-10 22:58:41 +000017#include <android/hardware/neuralnetworks/1.3/types.h>
Slava Shklyaev8230f8c2020-08-20 11:55:52 +010018#include "ControlFlow.h"
Colin Crossb098d212019-10-10 22:58:36 +000019#include "TestHarness.h"
20
Colin Cross552c7a62019-10-10 22:58:41 +000021namespace android::hardware::neuralnetworks::V1_3 {
Colin Crossb098d212019-10-10 22:58:36 +000022
Slava Shklyaev8230f8c2020-08-20 11:55:52 +010023static_assert(static_cast<uint64_t>(LoopTimeoutDurationNs::DEFAULT) ==
24 nn::operation_while::kTimeoutNsDefault);
25static_assert(static_cast<uint64_t>(LoopTimeoutDurationNs::MAXIMUM) ==
26 nn::operation_while::kTimeoutNsMaximum);
27
Colin Crossb098d212019-10-10 22:58:36 +000028// 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.
30using namespace test_helper;
31#define CHECK_TEST_ENUM(EnumType, enumValue) \
32 static_assert(static_cast<EnumType>(Test##EnumType::enumValue) == EnumType::enumValue)
33
34CHECK_TEST_ENUM(OperandType, FLOAT32);
35CHECK_TEST_ENUM(OperandType, INT32);
36CHECK_TEST_ENUM(OperandType, UINT32);
37CHECK_TEST_ENUM(OperandType, TENSOR_FLOAT32);
38CHECK_TEST_ENUM(OperandType, TENSOR_INT32);
39CHECK_TEST_ENUM(OperandType, TENSOR_QUANT8_ASYMM);
40CHECK_TEST_ENUM(OperandType, BOOL);
41CHECK_TEST_ENUM(OperandType, TENSOR_QUANT16_SYMM);
42CHECK_TEST_ENUM(OperandType, TENSOR_FLOAT16);
43CHECK_TEST_ENUM(OperandType, TENSOR_BOOL8);
44CHECK_TEST_ENUM(OperandType, FLOAT16);
45CHECK_TEST_ENUM(OperandType, TENSOR_QUANT8_SYMM_PER_CHANNEL);
46CHECK_TEST_ENUM(OperandType, TENSOR_QUANT16_ASYMM);
47CHECK_TEST_ENUM(OperandType, TENSOR_QUANT8_SYMM);
Colin Cross552c7a62019-10-10 22:58:41 +000048CHECK_TEST_ENUM(OperandType, TENSOR_QUANT8_ASYMM_SIGNED);
Colin Crossb098d212019-10-10 22:58:36 +000049
50CHECK_TEST_ENUM(OperationType, ADD);
51CHECK_TEST_ENUM(OperationType, AVERAGE_POOL_2D);
52CHECK_TEST_ENUM(OperationType, CONCATENATION);
53CHECK_TEST_ENUM(OperationType, CONV_2D);
54CHECK_TEST_ENUM(OperationType, DEPTHWISE_CONV_2D);
55CHECK_TEST_ENUM(OperationType, DEPTH_TO_SPACE);
56CHECK_TEST_ENUM(OperationType, DEQUANTIZE);
57CHECK_TEST_ENUM(OperationType, EMBEDDING_LOOKUP);
58CHECK_TEST_ENUM(OperationType, FLOOR);
59CHECK_TEST_ENUM(OperationType, FULLY_CONNECTED);
60CHECK_TEST_ENUM(OperationType, HASHTABLE_LOOKUP);
61CHECK_TEST_ENUM(OperationType, L2_NORMALIZATION);
62CHECK_TEST_ENUM(OperationType, L2_POOL_2D);
63CHECK_TEST_ENUM(OperationType, LOCAL_RESPONSE_NORMALIZATION);
64CHECK_TEST_ENUM(OperationType, LOGISTIC);
65CHECK_TEST_ENUM(OperationType, LSH_PROJECTION);
66CHECK_TEST_ENUM(OperationType, LSTM);
67CHECK_TEST_ENUM(OperationType, MAX_POOL_2D);
68CHECK_TEST_ENUM(OperationType, MUL);
69CHECK_TEST_ENUM(OperationType, RELU);
70CHECK_TEST_ENUM(OperationType, RELU1);
71CHECK_TEST_ENUM(OperationType, RELU6);
72CHECK_TEST_ENUM(OperationType, RESHAPE);
73CHECK_TEST_ENUM(OperationType, RESIZE_BILINEAR);
74CHECK_TEST_ENUM(OperationType, RNN);
75CHECK_TEST_ENUM(OperationType, SOFTMAX);
76CHECK_TEST_ENUM(OperationType, SPACE_TO_DEPTH);
77CHECK_TEST_ENUM(OperationType, SVDF);
78CHECK_TEST_ENUM(OperationType, TANH);
79CHECK_TEST_ENUM(OperationType, BATCH_TO_SPACE_ND);
80CHECK_TEST_ENUM(OperationType, DIV);
81CHECK_TEST_ENUM(OperationType, MEAN);
82CHECK_TEST_ENUM(OperationType, PAD);
83CHECK_TEST_ENUM(OperationType, SPACE_TO_BATCH_ND);
84CHECK_TEST_ENUM(OperationType, SQUEEZE);
85CHECK_TEST_ENUM(OperationType, STRIDED_SLICE);
86CHECK_TEST_ENUM(OperationType, SUB);
87CHECK_TEST_ENUM(OperationType, TRANSPOSE);
88CHECK_TEST_ENUM(OperationType, ABS);
89CHECK_TEST_ENUM(OperationType, ARGMAX);
90CHECK_TEST_ENUM(OperationType, ARGMIN);
91CHECK_TEST_ENUM(OperationType, AXIS_ALIGNED_BBOX_TRANSFORM);
92CHECK_TEST_ENUM(OperationType, BIDIRECTIONAL_SEQUENCE_LSTM);
93CHECK_TEST_ENUM(OperationType, BIDIRECTIONAL_SEQUENCE_RNN);
94CHECK_TEST_ENUM(OperationType, BOX_WITH_NMS_LIMIT);
95CHECK_TEST_ENUM(OperationType, CAST);
96CHECK_TEST_ENUM(OperationType, CHANNEL_SHUFFLE);
97CHECK_TEST_ENUM(OperationType, DETECTION_POSTPROCESSING);
98CHECK_TEST_ENUM(OperationType, EQUAL);
99CHECK_TEST_ENUM(OperationType, EXP);
100CHECK_TEST_ENUM(OperationType, EXPAND_DIMS);
101CHECK_TEST_ENUM(OperationType, GATHER);
102CHECK_TEST_ENUM(OperationType, GENERATE_PROPOSALS);
103CHECK_TEST_ENUM(OperationType, GREATER);
104CHECK_TEST_ENUM(OperationType, GREATER_EQUAL);
105CHECK_TEST_ENUM(OperationType, GROUPED_CONV_2D);
106CHECK_TEST_ENUM(OperationType, HEATMAP_MAX_KEYPOINT);
107CHECK_TEST_ENUM(OperationType, INSTANCE_NORMALIZATION);
108CHECK_TEST_ENUM(OperationType, LESS);
109CHECK_TEST_ENUM(OperationType, LESS_EQUAL);
110CHECK_TEST_ENUM(OperationType, LOG);
111CHECK_TEST_ENUM(OperationType, LOGICAL_AND);
112CHECK_TEST_ENUM(OperationType, LOGICAL_NOT);
113CHECK_TEST_ENUM(OperationType, LOGICAL_OR);
114CHECK_TEST_ENUM(OperationType, LOG_SOFTMAX);
115CHECK_TEST_ENUM(OperationType, MAXIMUM);
116CHECK_TEST_ENUM(OperationType, MINIMUM);
117CHECK_TEST_ENUM(OperationType, NEG);
118CHECK_TEST_ENUM(OperationType, NOT_EQUAL);
119CHECK_TEST_ENUM(OperationType, PAD_V2);
120CHECK_TEST_ENUM(OperationType, POW);
121CHECK_TEST_ENUM(OperationType, PRELU);
122CHECK_TEST_ENUM(OperationType, QUANTIZE);
123CHECK_TEST_ENUM(OperationType, QUANTIZED_16BIT_LSTM);
124CHECK_TEST_ENUM(OperationType, RANDOM_MULTINOMIAL);
125CHECK_TEST_ENUM(OperationType, REDUCE_ALL);
126CHECK_TEST_ENUM(OperationType, REDUCE_ANY);
127CHECK_TEST_ENUM(OperationType, REDUCE_MAX);
128CHECK_TEST_ENUM(OperationType, REDUCE_MIN);
129CHECK_TEST_ENUM(OperationType, REDUCE_PROD);
130CHECK_TEST_ENUM(OperationType, REDUCE_SUM);
131CHECK_TEST_ENUM(OperationType, ROI_ALIGN);
132CHECK_TEST_ENUM(OperationType, ROI_POOLING);
133CHECK_TEST_ENUM(OperationType, RSQRT);
134CHECK_TEST_ENUM(OperationType, SELECT);
135CHECK_TEST_ENUM(OperationType, SIN);
136CHECK_TEST_ENUM(OperationType, SLICE);
137CHECK_TEST_ENUM(OperationType, SPLIT);
138CHECK_TEST_ENUM(OperationType, SQRT);
139CHECK_TEST_ENUM(OperationType, TILE);
140CHECK_TEST_ENUM(OperationType, TOPK_V2);
141CHECK_TEST_ENUM(OperationType, TRANSPOSE_CONV_2D);
142CHECK_TEST_ENUM(OperationType, UNIDIRECTIONAL_SEQUENCE_LSTM);
143CHECK_TEST_ENUM(OperationType, UNIDIRECTIONAL_SEQUENCE_RNN);
144CHECK_TEST_ENUM(OperationType, RESIZE_NEAREST_NEIGHBOR);
145
146#undef CHECK_TEST_ENUM
147
Colin Cross552c7a62019-10-10 22:58:41 +0000148} // namespace android::hardware::neuralnetworks::V1_3