blob: cd42198b66ffa9e97c0d4e6a57872482ab4879be [file] [log] [blame]
TatWai Chong6a46b252024-01-12 13:13:22 -08001# Copyright (c) 2020-2024, ARM Limited.
Jeremy Johnson015c3552022-02-23 12:15:03 +00002# SPDX-License-Identifier: Apache-2.0
3import json
4
5# Used by basic_test_generator to create test description
6
7
8def write_test_json(
9 filename,
10 tf_model_filename=None,
11 tf_result_npy_filename=None,
12 tf_result_name=None,
13 tflite_model_filename=None,
14 tflite_result_npy_filename=None,
15 tflite_result_name=None,
16 ifm_name=None,
17 ifm_file=None,
18 ifm_shape=None,
TatWai Chong6a46b252024-01-12 13:13:22 -080019 ifm_dynamic=False,
Jeremy Johnson015c3552022-02-23 12:15:03 +000020 framework_exclusions=None,
21 quantized=False,
Eric Kunze97b00272023-07-20 10:52:56 -070022 test_name=None,
Jerry Ged5b15122024-03-26 20:51:48 +000023 num_variables=None,
Jeremy Johnson015c3552022-02-23 12:15:03 +000024):
25
26 test_desc = dict()
27
Eric Kunze97b00272023-07-20 10:52:56 -070028 if test_name:
29 test_desc["name"] = test_name
30
Jeremy Johnson015c3552022-02-23 12:15:03 +000031 if tf_model_filename:
32 test_desc["tf_model_filename"] = tf_model_filename
33
34 if tf_result_npy_filename:
35 test_desc["tf_result_npy_filename"] = tf_result_npy_filename
36
37 if tf_result_name:
38 test_desc["tf_result_name"] = tf_result_name
39
40 if tflite_model_filename:
41 test_desc["tflite_model_filename"] = tflite_model_filename
42
43 if tflite_result_npy_filename:
44 test_desc["tflite_result_npy_filename"] = tflite_result_npy_filename
45
46 if tflite_result_name:
47 test_desc["tflite_result_name"] = tflite_result_name
48
49 if ifm_file:
50 if not isinstance(ifm_file, list):
51 ifm_file = [ifm_file]
52 test_desc["ifm_file"] = ifm_file
53
54 # Make sure these arguments are wrapped as lists
55 if ifm_name:
56 if not isinstance(ifm_name, list):
57 ifm_name = [ifm_name]
58 test_desc["ifm_name"] = ifm_name
59
60 if ifm_shape:
61 if not isinstance(ifm_shape, list):
62 ifm_shape = [ifm_shape]
63 test_desc["ifm_shape"] = ifm_shape
64
TatWai Chong6a46b252024-01-12 13:13:22 -080065 if ifm_dynamic:
66 test_desc["ifm_dynamic"] = True
67
Jeremy Johnson015c3552022-02-23 12:15:03 +000068 # Some tests cannot be used with specific frameworks.
69 # This list indicates which tests should be excluded from a given framework.
70 if framework_exclusions:
71 if not isinstance(framework_exclusions, list):
72 framework_exclusions = [framework_exclusions]
73 test_desc["framework_exclusions"] = framework_exclusions
74
75 if quantized:
76 test_desc["quantized"] = 1
77
Jerry Ged5b15122024-03-26 20:51:48 +000078 if num_variables:
79 test_desc["num_variables"] = num_variables
80
Jeremy Johnson015c3552022-02-23 12:15:03 +000081 with open(filename, "w") as f:
82 json.dump(test_desc, f, indent=" ")