From 15aeef74da9aebc99d7aaea19eec21956ab2b4e8 Mon Sep 17 00:00:00 2001
From: "A. Unique TensorFlower" <gardener@tensorflow.org>
Date: Mon, 13 Apr 2020 17:34:49 -0700
Subject: [PATCH] Fixing bug in cast_op test: A case study in the danger of
 default arguments.

PiperOrigin-RevId: 306345213
Change-Id: I2dfdaf0565774f22766b5b0f1633ce3c99d416e4
---
 tensorflow/core/kernels/cast_op_test.cc | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/tensorflow/core/kernels/cast_op_test.cc b/tensorflow/core/kernels/cast_op_test.cc
index 97d843432bc..c8da7c55ae8 100644
--- a/tensorflow/core/kernels/cast_op_test.cc
+++ b/tensorflow/core/kernels/cast_op_test.cc
@@ -41,7 +41,7 @@ static Graph* Cast(int num) {
 
 class CastOpTest : public OpsTestBase {
  protected:
-  void MakeOp(DataType src, DataType dst, bool trunc = false) {
+  void MakeOp(DataType src, DataType dst, bool trunc) {
     if (trunc) {
       TF_EXPECT_OK(NodeDefBuilder("cast_op", "Cast")
                        .Input(FakeInput(src))
@@ -61,10 +61,10 @@ class CastOpTest : public OpsTestBase {
   }
 
   template <typename INPUT, typename OUTPUT>
-  void CheckCast(bool trunc = false) {
+  void CheckCast(bool trunc) {
     DataType in_type = DataTypeToEnum<INPUT>::v();
     DataType out_type = DataTypeToEnum<OUTPUT>::v();
-    MakeOp(in_type, out_type);
+    MakeOp(in_type, out_type, trunc);
     AddInputFromArray<INPUT>(TensorShape({1, 2, 2, 1}),
                              {INPUT(1), INPUT(2), INPUT(3), INPUT(4)});
     TF_ASSERT_OK(RunOpKernel());
@@ -75,9 +75,11 @@ class CastOpTest : public OpsTestBase {
   }
 };
 
-#define TEST_CAST(in, out)                                              \
-  TEST_F(CastOpTest, TestCast##_##in##_##out) { CheckCast<in, out>(); } \
-  TEST_F(CastOpTest, TestCast2##_##in##_##out) { CheckCast<in, out>(true); }
+#define TEST_CAST(in, out)                                                   \
+  TEST_F(CastOpTest, TestCast##_##in##_##out) { CheckCast<in, out>(false); } \
+  TEST_F(CastOpTest, TestCastTruncate_##_##in##_##out) {                     \
+    CheckCast<in, out>(true);                                                \
+  }
 
 #define TEST_ALL_CASTS_FROM(in) \
   TEST_CAST(in, uint8);         \