| 16 | using namespace openstudio::measure; |
| 17 | |
| 18 | TEST_F(MeasureFixture, OSArgument_Clone) { |
| 19 | |
| 20 | std::vector<std::string> choices; |
| 21 | choices.push_back("On"); |
| 22 | choices.push_back("Off"); |
| 23 | |
| 24 | OSArgument boolArgument = OSArgument::makeBoolArgument("bool"); |
| 25 | OSArgument doubleArgument = OSArgument::makeDoubleArgument("double"); |
| 26 | OSArgument integerArgument = OSArgument::makeIntegerArgument("integer"); |
| 27 | OSArgument stringArgument = OSArgument::makeStringArgument("string"); |
| 28 | OSArgument choiceArgument = OSArgument::makeChoiceArgument("choice", choices); |
| 29 | |
| 30 | EXPECT_FALSE(boolArgument.hasValue()); |
| 31 | EXPECT_FALSE(doubleArgument.hasValue()); |
| 32 | EXPECT_FALSE(integerArgument.hasValue()); |
| 33 | EXPECT_FALSE(stringArgument.hasValue()); |
| 34 | EXPECT_FALSE(choiceArgument.hasValue()); |
| 35 | |
| 36 | EXPECT_TRUE(boolArgument.setValue(true)); |
| 37 | EXPECT_TRUE(doubleArgument.setValue(1.0)); |
| 38 | EXPECT_TRUE(doubleArgument.setValue((int)1)); // can also set double arg using int |
| 39 | EXPECT_TRUE(integerArgument.setValue((int)1)); |
| 40 | EXPECT_TRUE(stringArgument.setValue(std::string("value"))); |
| 41 | EXPECT_TRUE(choiceArgument.setValue(std::string("On"))); |
| 42 | |
| 43 | ASSERT_TRUE(boolArgument.hasValue()); |
| 44 | ASSERT_TRUE(doubleArgument.hasValue()); |
| 45 | ASSERT_TRUE(integerArgument.hasValue()); |
| 46 | ASSERT_TRUE(stringArgument.hasValue()); |
| 47 | ASSERT_TRUE(choiceArgument.hasValue()); |
| 48 | |
| 49 | EXPECT_EQ(true, boolArgument.valueAsBool()); |
| 50 | EXPECT_EQ(1.0, doubleArgument.valueAsDouble()); |
| 51 | EXPECT_EQ(1, integerArgument.valueAsInteger()); |
| 52 | EXPECT_EQ("value", stringArgument.valueAsString()); |
| 53 | EXPECT_EQ("On", choiceArgument.valueAsString()); |
| 54 | |
| 55 | OSArgument boolArgument2 = boolArgument.clone(); |
| 56 | OSArgument doubleArgument2 = doubleArgument.clone(); |
| 57 | OSArgument integerArgument2 = integerArgument.clone(); |
| 58 | OSArgument stringArgument2 = stringArgument.clone(); |
| 59 | OSArgument choiceArgument2 = choiceArgument.clone(); |
| 60 | |
| 61 | ASSERT_TRUE(boolArgument2.hasValue()); |
| 62 | ASSERT_TRUE(doubleArgument2.hasValue()); |
| 63 | ASSERT_TRUE(integerArgument2.hasValue()); |
| 64 | ASSERT_TRUE(stringArgument2.hasValue()); |
| 65 | ASSERT_TRUE(choiceArgument2.hasValue()); |
| 66 | |
| 67 | EXPECT_EQ(true, boolArgument2.valueAsBool()); |
| 68 | EXPECT_EQ(1.0, doubleArgument2.valueAsDouble()); |
| 69 | EXPECT_EQ(1, integerArgument2.valueAsInteger()); |
| 70 | EXPECT_EQ("value", stringArgument2.valueAsString()); |
| 71 | EXPECT_EQ("On", choiceArgument2.valueAsString()); |
| 72 | |
| 73 | std::vector<OSArgument> argumentVector; |
| 74 | argumentVector.push_back(boolArgument); |
| 75 | argumentVector.push_back(doubleArgument); |
nothing calls this directly
no test coverage detected