diff options
author | 2017-07-21 06:06:40 -0700 | |
---|---|---|
committer | 2017-07-21 06:10:28 -0700 | |
commit | 83faa857765a4c9846447866ee99aeecfafb9b59 (patch) | |
tree | 4bae94213b9a1baa12fd536903a942c28fd41614 /tensorflow/core/framework/variant_test.cc | |
parent | 9c7972ec559dd63f3b792a09fadd93f2fbf31a34 (diff) |
Automated g4 rollback of changelist 162668355
PiperOrigin-RevId: 162733043
Diffstat (limited to 'tensorflow/core/framework/variant_test.cc')
-rw-r--r-- | tensorflow/core/framework/variant_test.cc | 249 |
1 files changed, 0 insertions, 249 deletions
diff --git a/tensorflow/core/framework/variant_test.cc b/tensorflow/core/framework/variant_test.cc deleted file mode 100644 index c7ffdd28f4..0000000000 --- a/tensorflow/core/framework/variant_test.cc +++ /dev/null @@ -1,249 +0,0 @@ -/* Copyright 2015 The TensorFlow Authors. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -==============================================================================*/ - -#include <vector> - -#include "tensorflow/core/framework/variant.h" -#include "tensorflow/core/framework/variant_encode_decode.h" - -#include "tensorflow/core/framework/tensor.h" -#include "tensorflow/core/lib/core/coding.h" -#include "tensorflow/core/platform/test.h" - -namespace tensorflow { - -namespace { - -template <typename T> -struct Wrapper { - T value; - string TypeName() const { return "POD"; } -}; - -using Int = Wrapper<int>; -using Float = Wrapper<float>; - -} // end namespace - -TEST(VariantTest, Basic) { - Variant x; - EXPECT_EQ(x.get<void>(), nullptr); - - x = Int{42}; - - EXPECT_NE(x.get<void>(), nullptr); - EXPECT_NE(x.get<Int>(), nullptr); - EXPECT_EQ(x.get<Int>()->value, 42); - EXPECT_EQ(x.TypeName(), "POD"); -} - -TEST(VariantTest, ConstGet) { - Variant x; - EXPECT_EQ(x.get<void>(), nullptr); - - x = Int{42}; - - const Variant y = x; - - EXPECT_NE(y.get<void>(), nullptr); - EXPECT_NE(y.get<Int>(), nullptr); - EXPECT_EQ(y.get<Int>()->value, 42); -} - -TEST(VariantTest, Clear) { - Variant x; - EXPECT_EQ(x.get<void>(), nullptr); - - x = Int{42}; - - EXPECT_NE(x.get<void>(), nullptr); - EXPECT_NE(x.get<Int>(), nullptr); - EXPECT_EQ(x.get<Int>()->value, 42); - - x.clear(); - EXPECT_EQ(x.get<void>(), nullptr); -} - -TEST(VariantTest, Tensor) { - Variant x; - Tensor t(DT_FLOAT, {}); - t.flat<float>()(0) = 42.0f; - x = t; - - EXPECT_NE(x.get<Tensor>(), nullptr); - EXPECT_EQ(x.get<Tensor>()->flat<float>()(0), 42.0f); - x.get<Tensor>()->flat<float>()(0) += 1.0f; - EXPECT_EQ(x.get<Tensor>()->flat<float>()(0), 43.0f); - EXPECT_EQ(x.TypeName(), "tensorflow::Tensor"); -} - -TEST(VariantTest, TensorProto) { - Variant x; - TensorProto t; - t.set_dtype(DT_FLOAT); - t.mutable_tensor_shape()->set_unknown_rank(true); - x = t; - - EXPECT_EQ(x.TypeName(), "tensorflow.TensorProto"); - EXPECT_NE(x.get<TensorProto>(), nullptr); - EXPECT_EQ(x.get<TensorProto>()->dtype(), DT_FLOAT); - EXPECT_EQ(x.get<TensorProto>()->tensor_shape().unknown_rank(), true); -} - -TEST(VariantTest, CopyValue) { - Variant x, y; - x = Int{10}; - y = x; - - EXPECT_EQ(x.get<Int>()->value, 10); - EXPECT_EQ(x.get<Int>()->value, y.get<Int>()->value); -} - -TEST(VariantTest, MoveValue) { - Variant x; - x = []() -> Variant { - Variant y; - y = Int{10}; - return y; - }(); - EXPECT_EQ(x.get<Int>()->value, 10); -} - -TEST(VariantTest, TypeMismatch) { - Variant x; - x = Int{10}; - EXPECT_EQ(x.get<float>(), nullptr); - EXPECT_EQ(x.get<int>(), nullptr); - EXPECT_NE(x.get<Int>(), nullptr); -} - -struct TensorList { - void Encode(VariantTensorData* data) const { data->tensors = vec; } - - bool Decode(const VariantTensorData& data) { - vec = data.tensors; - return true; - } - - string TypeName() const { return "TensorList"; } - - std::vector<Tensor> vec; -}; - -TEST(VariantTest, TensorListTest) { - Variant x; - - TensorList vec; - for (int i = 0; i < 4; ++i) { - Tensor elem(DT_INT32, {1}); - elem.flat<int>()(0) = i; - vec.vec.push_back(elem); - } - - for (int i = 0; i < 4; ++i) { - Tensor elem(DT_FLOAT, {1}); - elem.flat<float>()(0) = 2 * i; - vec.vec.push_back(elem); - } - - x = vec; - - EXPECT_EQ(x.TypeName(), "TensorList"); - const TensorList& stored_vec = *x.get<TensorList>(); - for (int i = 0; i < 4; ++i) { - EXPECT_EQ(stored_vec.vec[i].flat<int>()(0), i); - } - for (int i = 0; i < 4; ++i) { - EXPECT_EQ(stored_vec.vec[i + 4].flat<float>()(0), 2 * i); - } - - VariantTensorData serialized; - x.Encode(&serialized); - - Variant y = TensorList(); - y.Decode(serialized); - - const TensorList& decoded_vec = *x.get<TensorList>(); - for (int i = 0; i < 4; ++i) { - EXPECT_EQ(decoded_vec.vec[i].flat<int>()(0), i); - } - for (int i = 0; i < 4; ++i) { - EXPECT_EQ(decoded_vec.vec[i + 4].flat<float>()(0), 2 * i); - } -} - -TEST(VariantTest, VariantArray) { - Variant x[2]; - x[0] = Int{2}; - x[1] = Float{2.0f}; - - EXPECT_EQ(x[0].get<Int>()->value, 2); - EXPECT_EQ(x[1].get<Float>()->value, 2.0f); -} - -TEST(VariantTest, PodUpdate) { - struct Pod { - int x; - float y; - - string TypeName() const { return "POD"; } - }; - - Variant x = Pod{10, 20.f}; - EXPECT_NE(x.get<Pod>(), nullptr); - EXPECT_EQ(x.TypeName(), "POD"); - - x.get<Pod>()->x += x.get<Pod>()->y; - EXPECT_EQ(x.get<Pod>()->x, 30); -} - -TEST(VariantTest, EncodeDecodePod) { - struct Pod { - int x; - float y; - - string TypeName() const { return "POD"; } - }; - - Variant x; - Pod p{10, 20.0f}; - x = p; - - VariantTensorData serialized; - x.Encode(&serialized); - - Variant y; - y = Pod(); - y.Decode(serialized); - - EXPECT_EQ(p.x, y.get<Pod>()->x); - EXPECT_EQ(p.y, y.get<Pod>()->y); -} - -TEST(VariantTest, EncodeDecodeTensor) { - Variant x; - Tensor t(DT_INT32, {}); - t.flat<int>()(0) = 42; - x = t; - - VariantTensorData serialized; - x.Encode(&serialized); - - Variant y = Tensor(); - y.Decode(serialized); - EXPECT_EQ(x.get<Tensor>()->flat<int>()(0), y.get<Tensor>()->flat<int>()(0)); -} - -} // end namespace tensorflow |