[ref model] Change PadOp's padding to Shape

Changed to use pad input of PadOp for testing.
The pad input is now a tensor of tosa.shape type.

moved padding error checking from checkTensorAttributes to eval
modified pad's PadOutputShapeMismatch test generation to avoid
generating output shapes with dimensions <= 0

Signed-off-by: Tai Ly <tai.ly@arm.com>
Change-Id: I437c86d9a012903458a648667f6693db67b97d76
diff --git a/verif/generator/tosa_test_gen.py b/verif/generator/tosa_test_gen.py
index a347b13..081aff6 100644
--- a/verif/generator/tosa_test_gen.py
+++ b/verif/generator/tosa_test_gen.py
@@ -1487,21 +1487,21 @@
         error_name=None,
         qinfo=None,
     ):
-        assert len(inputs) == 1
+        assert len(inputs) == 2
         a = inputs[0]
+        pad_input = inputs[1]
         padding = args_dict["pad"]
         pad_const_int = args_dict["pad_const_int"]
         pad_const_float = args_dict["pad_const_fp"]
 
         result_tensor = OutputShaper.padOp(self.ser, self.rng, a, padding, error_name)
 
+        # write empty padding into PadAttribute to ensure inputs[1] is used
         attr = ts.TosaSerializerAttribute()
-        attr.PadAttribute(
-            self.ser.builder, padding.flatten(), pad_const_int, pad_const_float
-        )
+        attr.PadAttribute(self.ser.builder, [], pad_const_int, pad_const_float)
 
         # Invalidate Input/Output list for error if checks.
-        input_list = [a.name]
+        input_list = [a.name, pad_input.name]
         output_list = [result_tensor.name]
         pCount, cCount = op["operands"]
         num_operands = pCount + cCount
@@ -4275,11 +4275,11 @@
         },
         "pad": {
             "op": Op.PAD,
-            "operands": (1, 0),
+            "operands": (2, 0),
             "build_fcn": (
                 build_pad,
                 TosaTensorGen.tgBasic,
-                TosaTensorValuesGen.tvgLazyGenDefault,
+                TosaTensorValuesGen.tvgPad,
                 TosaArgGen.agPad,
             ),
             "types": TYPE_FIB,
@@ -5305,7 +5305,7 @@
 
         if error_name == ErrorIf.PadOutputShapeMismatch:
             bad_dim = rng.choice(range(len(output_shape)))
-            output_shape[bad_dim] -= rng.choice([1, 2])
+            output_shape[bad_dim] += rng.choice([1, 2])
         elif error_name == ErrorIf.RankMismatch:
             output_shape = gtu.get_rank_mismatch_shape(rng, output_shape)