| Index: experimental/c_salt/variant_test.cc
|
| diff --git a/experimental/c_salt/variant_test.cc b/experimental/c_salt/variant_test.cc
|
| deleted file mode 100644
|
| index 1d8db438c8f8ea30505d0aacdef5ae8d85b3b828..0000000000000000000000000000000000000000
|
| --- a/experimental/c_salt/variant_test.cc
|
| +++ /dev/null
|
| @@ -1,130 +0,0 @@
|
| -// Copyright 2010 The Ginsu Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can
|
| -// be found in the LICENSE file.
|
| -
|
| -#include <cmath>
|
| -#include <iostream>
|
| -#include <limits>
|
| -#include <string>
|
| -
|
| -#include "c_salt/variant.h"
|
| -#include "gmock/gmock.h"
|
| -#include "gtest/gtest.h"
|
| -
|
| -using c_salt::Variant;
|
| -
|
| -namespace {
|
| -const char* kTestBoolTrueString = "true";
|
| -const double kTestDoubleValue = 3.141592653589793;
|
| -const char* kTestDoubleAsString = "3.1415926535897";
|
| -const int32_t kTestIntValue = 42;
|
| -const char* kTestIntAsString = "42";
|
| -const char* kTestString = "this is a test string";
|
| -// |kTestTruncatedIntValue| is the integer equivalent to
|
| -// floor(kTestDoubleValue).
|
| -const int32_t kTestTruncatedIntValue = 3;
|
| -} // namespace
|
| -
|
| -class VariantTest : public ::testing::Test {
|
| - protected:
|
| - virtual void SetUp() {}
|
| -};
|
| -
|
| -// Create a Variant from string. Tests all the typed return values.
|
| -TEST_F(VariantTest, CreateFromStr) {
|
| - Variant str_var(kTestString);
|
| - EXPECT_EQ(Variant::kStringVariantType, str_var.variant_type());
|
| - EXPECT_EQ(kTestString, str_var.StringValue());
|
| - // BoolValue() should return |true| because the test string begins with a
|
| - // 't'.
|
| - EXPECT_TRUE(str_var.BoolValue());
|
| - EXPECT_EQ(0, str_var.Int32Value());
|
| - EXPECT_EQ(0.0, str_var.DoubleValue());
|
| -}
|
| -
|
| -// Create a Variant from an int32. Tests all the typed return values.
|
| -TEST_F(VariantTest, CreateFromInt) {
|
| - Variant int_var(kTestIntValue);
|
| - EXPECT_EQ(Variant::kInt32VariantType, int_var.variant_type());
|
| - EXPECT_EQ(kTestIntAsString, int_var.StringValue());
|
| - EXPECT_TRUE(int_var.BoolValue());
|
| - EXPECT_EQ(kTestIntValue, int_var.Int32Value());
|
| - EXPECT_TRUE(std::fabs(int_var.DoubleValue() - kTestIntValue) <=
|
| - std::numeric_limits<double>::epsilon());
|
| - // TODO(dspringer): Add this test when ObjectValue() is implemented.
|
| - // EXPECT_EQ(NULL, int_var.ObjectValue());
|
| -}
|
| -
|
| -// Create a Variant from a double. Tests all the typed return values.
|
| -TEST_F(VariantTest, CreateFromDouble) {
|
| - Variant dbl_var(kTestDoubleValue);
|
| - EXPECT_EQ(Variant::kDoubleVariantType, dbl_var.variant_type());
|
| - EXPECT_EQ(0, strncmp(dbl_var.StringValue().c_str(),
|
| - kTestDoubleAsString,
|
| - strlen(kTestDoubleAsString)));
|
| - EXPECT_TRUE(dbl_var.BoolValue());
|
| - EXPECT_EQ(kTestTruncatedIntValue, dbl_var.Int32Value());
|
| - EXPECT_TRUE(std::fabs(dbl_var.DoubleValue() - kTestDoubleValue) <=
|
| - std::numeric_limits<double>::epsilon());
|
| -}
|
| -
|
| -// Create a Variant from an bool. Tests all the typed return values.
|
| -TEST_F(VariantTest, CreateFromBoolNPVariant) {
|
| - Variant bool_var(true);
|
| - EXPECT_EQ(Variant::kBoolVariantType, bool_var.variant_type());
|
| - EXPECT_EQ("true", bool_var.StringValue());
|
| - EXPECT_TRUE(bool_var.BoolValue());
|
| - EXPECT_EQ(1, bool_var.Int32Value());
|
| - EXPECT_TRUE(std::fabs(bool_var.DoubleValue() - 1) <=
|
| - std::numeric_limits<double>::epsilon());
|
| -}
|
| -
|
| -// Make sure well-known string values convert correctly to bool types, and
|
| -// bool types convert to the known string values.
|
| -TEST_F(VariantTest, TypeConvertStringToBool) {
|
| - Variant bool_var(true);
|
| - EXPECT_EQ(Variant::kBoolVariantType, bool_var.variant_type());
|
| - // Convert bool to string and back.
|
| - Variant str_from_bool(bool_var.StringValue());
|
| - EXPECT_EQ(0, strncmp(str_from_bool.StringValue().c_str(),
|
| - kTestBoolTrueString,
|
| - strlen(kTestBoolTrueString)));
|
| - Variant bool_from_str(str_from_bool.BoolValue());
|
| - EXPECT_TRUE(bool_from_str.BoolValue());
|
| - // Step 2: Convert certain well-known strings to bools.
|
| - Variant str_true("true");
|
| - EXPECT_TRUE(str_true.BoolValue());
|
| - Variant str_yes("Yes");
|
| - EXPECT_TRUE(str_yes.BoolValue());
|
| - Variant str_1("1");
|
| - EXPECT_TRUE(str_1.BoolValue());
|
| - Variant str_0("0");
|
| - EXPECT_FALSE(str_0.BoolValue());
|
| - Variant str_false("hello?");
|
| - EXPECT_FALSE(str_false.BoolValue());
|
| -}
|
| -
|
| -// Make sure the conversion from a double type to string works both ways.
|
| -TEST_F(VariantTest, TypeConverStringToDouble) {
|
| - Variant dbl_var(kTestDoubleValue);
|
| - EXPECT_EQ(Variant::kDoubleVariantType, dbl_var.variant_type());
|
| - // Convert double to string and back.
|
| - Variant str_from_dbl(dbl_var.StringValue());
|
| - EXPECT_EQ(0, strncmp(str_from_dbl.StringValue().c_str(),
|
| - kTestDoubleAsString,
|
| - strlen(kTestDoubleAsString)));
|
| - Variant dbl_from_str(str_from_dbl.DoubleValue());
|
| - EXPECT_TRUE(std::fabs(dbl_from_str.DoubleValue() - kTestDoubleValue) <=
|
| - std::numeric_limits<double>::epsilon());
|
| -}
|
| -
|
| -// Make sure the coinversion from an int type to string works both ways.
|
| -TEST_F(VariantTest, TypeConvertIntToString) {
|
| - Variant int_var(kTestIntValue);
|
| - EXPECT_EQ(Variant::kInt32VariantType, int_var.variant_type());
|
| - // Convert int to string and back.
|
| - Variant str_from_int(int_var.StringValue());
|
| - EXPECT_EQ(kTestIntAsString, str_from_int.StringValue());
|
| - Variant int_from_str(str_from_int.Int32Value());
|
| - EXPECT_EQ(kTestIntValue, int_from_str.Int32Value());
|
| -}
|
|
|