@@ -1467,4 +1467,72 @@ TEST(OpVersionTest, VersioningSqrtTest) {
14671467 fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteInt16 );
14681468 EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 2 );
14691469}
1470+
1471+ TEST (OpVersionTest, VersioningCastTest) {
1472+ OpSignature fake_op_sig = {};
1473+ fake_op_sig.op = BuiltinOperator_CAST;
1474+ fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteInt2 );
1475+ fake_op_sig.outputs = CreateOpSignatureTensorSpecs (kTfLiteInt32 );
1476+ EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 8 );
1477+
1478+ fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteInt32 );
1479+ fake_op_sig.outputs = CreateOpSignatureTensorSpecs (kTfLiteInt2 );
1480+ EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 8 );
1481+
1482+ fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteBFloat16 );
1483+ fake_op_sig.outputs = CreateOpSignatureTensorSpecs (kTfLiteInt32 );
1484+ EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 7 );
1485+
1486+ fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteInt32 );
1487+ fake_op_sig.outputs = CreateOpSignatureTensorSpecs (kTfLiteBFloat16 );
1488+ EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 7 );
1489+
1490+ fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteInt4 );
1491+ fake_op_sig.outputs = CreateOpSignatureTensorSpecs (kTfLiteFloat32 );
1492+ EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 6 );
1493+
1494+ fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteFloat64 );
1495+ fake_op_sig.outputs = CreateOpSignatureTensorSpecs (kTfLiteInt32 );
1496+ EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 5 );
1497+
1498+ fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteInt32 );
1499+ fake_op_sig.outputs = CreateOpSignatureTensorSpecs (kTfLiteFloat64 );
1500+ EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 5 );
1501+
1502+ fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteFloat16 );
1503+ fake_op_sig.outputs = CreateOpSignatureTensorSpecs (kTfLiteInt32 );
1504+ EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 5 );
1505+
1506+ fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteInt32 );
1507+ fake_op_sig.outputs = CreateOpSignatureTensorSpecs (kTfLiteFloat16 );
1508+ EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 5 );
1509+
1510+ fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteUInt16 );
1511+ fake_op_sig.outputs = CreateOpSignatureTensorSpecs (kTfLiteInt32 );
1512+ EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 4 );
1513+
1514+ fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteInt32 );
1515+ fake_op_sig.outputs = CreateOpSignatureTensorSpecs (kTfLiteUInt16 );
1516+ EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 4 );
1517+
1518+ fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteInt8 );
1519+ fake_op_sig.outputs = CreateOpSignatureTensorSpecs (kTfLiteInt32 );
1520+ EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 3 );
1521+
1522+ fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteInt32 );
1523+ fake_op_sig.outputs = CreateOpSignatureTensorSpecs (kTfLiteInt8 );
1524+ EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 3 );
1525+
1526+ fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteUInt32 );
1527+ fake_op_sig.outputs = CreateOpSignatureTensorSpecs (kTfLiteInt32 );
1528+ EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 2 );
1529+
1530+ fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteInt32 );
1531+ fake_op_sig.outputs = CreateOpSignatureTensorSpecs (kTfLiteUInt32 );
1532+ EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 2 );
1533+
1534+ fake_op_sig.inputs = CreateOpSignatureTensorSpecs (kTfLiteInt32 );
1535+ fake_op_sig.outputs = CreateOpSignatureTensorSpecs (kTfLiteInt32 );
1536+ EXPECT_EQ (GetBuiltinOperatorVersion (fake_op_sig), 1 );
1537+ }
14701538} // namespace tflite
0 commit comments