Add framework tests for TFL.Relu0To1Op

Signed-off-by: Jerry Ge <jerry.ge@arm.com>
Change-Id: I6fa14e9dbe7c0cd21156a5779d68fd473af322f2
diff --git a/verif/frameworks/test_builder.py b/verif/frameworks/test_builder.py
index c7ba9a9..6302865 100644
--- a/verif/frameworks/test_builder.py
+++ b/verif/frameworks/test_builder.py
@@ -86,6 +86,16 @@
             # alternatively, we can use clip_by_value
             return tf.math.minimum(1.0, tf.math.maximum(-1.0, a))
 
+    class Relu0To1:
+        def __init__(self, name):
+            self.result_name = name
+
+        def eval(self, a):
+            # TF doesn't have relu_0_to_1 operator,
+            # use min and max as a workaround
+            # alternatively, we can use clip_by_value
+            return tf.math.minimum(1.0, tf.math.maximum(0.0, a))
+
     class Relu6:
         def __init__(self, name):
             self.result_name = name
diff --git a/verif/frameworks/tosa_verif_framework_generator.py b/verif/frameworks/tosa_verif_framework_generator.py
index 68c7d5a..9794478 100755
--- a/verif/frameworks/tosa_verif_framework_generator.py
+++ b/verif/frameworks/tosa_verif_framework_generator.py
@@ -120,6 +120,14 @@
             "tflite": list(TYPE_F + [QuantType.ALL_U8, QuantType.ALL_I8]),
         },
     },
+    "relu0To1": {
+        "operands": (1, 0),
+        "build_fcn": (TBuilder.Relu0To1, TGen.tgBasic, ArgGen.agNone),
+        "types": {
+            "tf": [],
+            "tflite": list(TYPE_F + [QuantType.ALL_U8, QuantType.ALL_I8]),
+        },
+    },
     "relu6": {
         "operands": (1, 0),
         "build_fcn": (TBuilder.Relu6, TGen.tgBasic, ArgGen.agNone),