aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/contrib/proto
diff options
context:
space:
mode:
authorGravatar A. Unique TensorFlower <gardener@tensorflow.org>2018-04-19 17:27:04 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-04-19 17:32:13 -0700
commit13a7e9820a800cf3877e5a44b9f654f79808a2d4 (patch)
tree35fff452847e2422e20a00685374a022fabe4ecb /tensorflow/contrib/proto
parentc18a80967e55350affafbf2ff562056d4bddf234 (diff)
Update DecodeProtoOp so that it returns explicitly specified default values for missing fields.
PiperOrigin-RevId: 193600735
Diffstat (limited to 'tensorflow/contrib/proto')
-rw-r--r--tensorflow/contrib/proto/python/kernel_tests/defaut_values.TestCase.pbtxt94
-rw-r--r--tensorflow/contrib/proto/python/kernel_tests/promote_unsigned.TestCase.pbtxt10
-rw-r--r--tensorflow/contrib/proto/python/kernel_tests/test_example.proto33
3 files changed, 136 insertions, 1 deletions
diff --git a/tensorflow/contrib/proto/python/kernel_tests/defaut_values.TestCase.pbtxt b/tensorflow/contrib/proto/python/kernel_tests/defaut_values.TestCase.pbtxt
new file mode 100644
index 0000000000..4e31681907
--- /dev/null
+++ b/tensorflow/contrib/proto/python/kernel_tests/defaut_values.TestCase.pbtxt
@@ -0,0 +1,94 @@
+primitive {
+ # No fields specified, so we get all defaults
+}
+shape: 1
+sizes: 0
+field {
+ name: "double_default"
+ dtype: DT_DOUBLE
+ expected { double_value: 1.0 }
+}
+sizes: 0
+field {
+ name: "float_default"
+ dtype: DT_DOUBLE # Try casting the float field to double.
+ expected { double_value: 2.0 }
+}
+sizes: 0
+field {
+ name: "int64_default"
+ dtype: DT_INT64
+ expected { int64_value: 3 }
+}
+sizes: 0
+field {
+ name: "uint64_default"
+ dtype: DT_INT64
+ expected { int64_value: 4 }
+}
+sizes: 0
+field {
+ name: "int32_default"
+ dtype: DT_INT32
+ expected { int32_value: 5 }
+}
+sizes: 0
+field {
+ name: "fixed64_default"
+ dtype: DT_INT64
+ expected { int64_value: 6 }
+}
+sizes: 0
+field {
+ name: "fixed32_default"
+ dtype: DT_INT32
+ expected { int32_value: 7 }
+}
+sizes: 0
+field {
+ name: "bool_default"
+ dtype: DT_BOOL
+ expected { bool_value: true }
+}
+sizes: 0
+field {
+ name: "string_default"
+ dtype: DT_STRING
+ expected { string_value: "a" }
+}
+sizes: 0
+field {
+ name: "bytes_default"
+ dtype: DT_STRING
+ expected { string_value: "a longer default string" }
+}
+sizes: 0
+field {
+ name: "uint32_default"
+ dtype: DT_INT32
+ expected { int32_value: -1 }
+}
+sizes: 0
+field {
+ name: "sfixed32_default"
+ dtype: DT_INT32
+ expected { int32_value: 10 }
+}
+sizes: 0
+field {
+ name: "sfixed64_default"
+ dtype: DT_INT64
+ expected { int64_value: 11 }
+}
+sizes: 0
+field {
+ name: "sint32_default"
+ dtype: DT_INT32
+ expected { int32_value: 12 }
+}
+sizes: 0
+field {
+ name: "sint64_default"
+ dtype: DT_INT64
+ expected { int64_value: 13 }
+}
diff --git a/tensorflow/contrib/proto/python/kernel_tests/promote_unsigned.TestCase.pbtxt b/tensorflow/contrib/proto/python/kernel_tests/promote_unsigned.TestCase.pbtxt
index db7555bf2d..bc07efc8f3 100644
--- a/tensorflow/contrib/proto/python/kernel_tests/promote_unsigned.TestCase.pbtxt
+++ b/tensorflow/contrib/proto/python/kernel_tests/promote_unsigned.TestCase.pbtxt
@@ -4,7 +4,6 @@ primitive {
}
shape: 1
sizes: 1
-sizes: 1
field {
name: "fixed32_value"
dtype: DT_INT64
@@ -12,6 +11,7 @@ field {
int64_value: 4294967295
}
}
+sizes: 1
field {
name: "uint32_value"
dtype: DT_INT64
@@ -19,3 +19,11 @@ field {
int64_value: 4294967295
}
}
+sizes: 0
+field {
+ name: "uint32_default"
+ dtype: DT_INT64
+ expected {
+ int64_value: 4294967295 # Comes from an explicitly-specified default
+ }
+}
diff --git a/tensorflow/contrib/proto/python/kernel_tests/test_example.proto b/tensorflow/contrib/proto/python/kernel_tests/test_example.proto
index dc495034ff..a2c88e372b 100644
--- a/tensorflow/contrib/proto/python/kernel_tests/test_example.proto
+++ b/tensorflow/contrib/proto/python/kernel_tests/test_example.proto
@@ -72,6 +72,23 @@ message RepeatedPrimitiveValue {
repeated sint32 sint32_value = 17;
repeated sint64 sint64_value = 18;
repeated PrimitiveValue message_value = 19;
+
+ // Optional fields with explicitly-specified defaults.
+ optional double double_default = 20 [default = 1.0];
+ optional float float_default = 21 [default = 2.0];
+ optional int64 int64_default = 22 [default = 3];
+ optional uint64 uint64_default = 23 [default = 4];
+ optional int32 int32_default = 24 [default = 5];
+ optional fixed64 fixed64_default = 25 [default = 6];
+ optional fixed32 fixed32_default = 26 [default = 7];
+ optional bool bool_default = 27 [default = true];
+ optional string string_default = 28 [default = "a"];
+ optional bytes bytes_default = 29 [default = "a longer default string"];
+ optional uint32 uint32_default = 30 [default = 4294967295];
+ optional sfixed32 sfixed32_default = 31 [default = 10];
+ optional sfixed64 sfixed64_default = 32 [default = 11];
+ optional sint32 sint32_default = 33 [default = 12];
+ optional sint64 sint64_default = 34 [default = 13];
}
// A PackedPrimitiveValue looks exactly the same as a RepeatedPrimitiveValue
@@ -97,6 +114,22 @@ message PackedPrimitiveValue {
repeated sint32 sint32_value = 17 [packed = true];
repeated sint64 sint64_value = 18 [packed = true];
repeated PrimitiveValue message_value = 19;
+
+ optional double double_default = 20 [default = 1.0];
+ optional float float_default = 21 [default = 2.0];
+ optional int64 int64_default = 22 [default = 3];
+ optional uint64 uint64_default = 23 [default = 4];
+ optional int32 int32_default = 24 [default = 5];
+ optional fixed64 fixed64_default = 25 [default = 6];
+ optional fixed32 fixed32_default = 26 [default = 7];
+ optional bool bool_default = 27 [default = true];
+ optional string string_default = 28 [default = "a"];
+ optional bytes bytes_default = 29 [default = "a longer default string"];
+ optional uint32 uint32_default = 30 [default = 4294967295];
+ optional sfixed32 sfixed32_default = 31 [default = 10];
+ optional sfixed64 sfixed64_default = 32 [default = 11];
+ optional sint32 sint32_default = 33 [default = 12];
+ optional sint64 sint64_default = 34 [default = 13];
}
message EnumValue {