blob: a3e749bd5b7443b51ac9e999c402b3deb33a79a2 [file] [log] [blame]
Sadik Armagan937565b2021-04-21 14:03:28 +01001//
Teresa Charlinad1b3d72023-03-14 12:10:28 +00002// Copyright © 2021, 2023 Arm Ltd and Contributors. All rights reserved.
Sadik Armagan937565b2021-04-21 14:03:28 +01003// SPDX-License-Identifier: MIT
4//
5
6#include "CastTestHelper.hpp"
7
8#include <armnn_delegate.hpp>
9
10#include <flatbuffers/flatbuffers.h>
Sadik Armagan937565b2021-04-21 14:03:28 +010011
12#include <doctest/doctest.h>
13
14namespace armnnDelegate
15{
16
17void CastUint8ToFp32Test(std::vector<armnn::BackendId>& backends)
18{
19 std::vector<int32_t> inputShape {1, 3, 2, 3};
20
21 std::vector<uint8_t> inputValues { 1, 3, 1, 3, 1, 3, 1, 3, 1,
22 3, 1, 3, 1, 2, 1, 3, 1, 3 };
23
24 std::vector<float> expectedOutputValues { 1.0f, 3.0f, 1.0f, 3.0f, 1.0f, 3.0f, 1.0f, 3.0f, 1.0f,
25 3.0f, 1.0f, 3.0f, 1.0f, 2.0f, 1.0f, 3.0f, 1.0f, 3.0f };
26
27 CastTest<uint8_t, float>(::tflite::TensorType_UINT8,
28 ::tflite::TensorType_FLOAT32,
Sadik Armagan937565b2021-04-21 14:03:28 +010029 inputShape,
30 inputValues,
Colm Donelaneff204a2023-11-28 15:46:09 +000031 expectedOutputValues,
32 1.0f,
33 0,
34 backends);
Sadik Armagan937565b2021-04-21 14:03:28 +010035}
36
37void CastInt32ToFp32Test(std::vector<armnn::BackendId>& backends)
38{
39 std::vector<int32_t> inputShape {1, 3, 2, 3};
40
41 std::vector<int32_t> inputValues { -1, -3, -1, -3, -1, -3, -1, -3, 1,
42 3, 1, 3, 1, 2, 1, 3, 1, 3 };
43
44 std::vector<float> expectedOutputValues { -1.0f, -3.0f, -1.0f, -3.0f, -1.0f, -3.0f, -1.0f, -3.0f, 1.0f,
45 3.0f, 1.0f, 3.0f, 1.0f, 2.0f, 1.0f, 3.0f, 1.0f, 3.0f };
46
47 CastTest<int32_t, float>(::tflite::TensorType_INT32,
48 ::tflite::TensorType_FLOAT32,
Sadik Armagan937565b2021-04-21 14:03:28 +010049 inputShape,
50 inputValues,
Colm Donelaneff204a2023-11-28 15:46:09 +000051 expectedOutputValues,
52 1.0f,
53 0,
54 backends);
Sadik Armagan937565b2021-04-21 14:03:28 +010055}
56
57// CAST Test Suite
Colm Donelaneff204a2023-11-28 15:46:09 +000058TEST_SUITE("CASTTests")
Sadik Armagan937565b2021-04-21 14:03:28 +010059{
60
61TEST_CASE ("CAST_UINT8_TO_FP32_CpuRef_Test")
62{
Colm Donelaneff204a2023-11-28 15:46:09 +000063 // This only works on CpuRef.
Sadik Armagan937565b2021-04-21 14:03:28 +010064 std::vector<armnn::BackendId> backends = {armnn::Compute::CpuRef};
65 CastUint8ToFp32Test(backends);
66}
67
Colm Donelaneff204a2023-11-28 15:46:09 +000068TEST_CASE ("CAST_INT32_TO_FP32_Test")
Sadik Armagan937565b2021-04-21 14:03:28 +010069{
Colm Donelaneff204a2023-11-28 15:46:09 +000070 std::vector<armnn::BackendId> backends = {};
Sadik Armagan937565b2021-04-21 14:03:28 +010071 CastInt32ToFp32Test(backends);
72}
73
74}
75// End of CAST Test Suite
76
77} // namespace armnnDelegate