MCPcopy Create free account
hub / github.com/BYVoid/OpenCC / TEST_F

Function TEST_F

data/config/ConfigDictValidationTest.cpp:88–125  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

86};
87
88TEST_F(ConfigDictValidationTest, ConvertExpectedOutputs) {
89 const std::string json = ReadFile(testcasesPath_);
90 rapidjson::Document doc;
91 doc.Parse<rapidjson::kParseCommentsFlag |
92 rapidjson::kParseTrailingCommasFlag>(json.c_str());
93 ASSERT_FALSE(doc.HasParseError());
94 ASSERT_TRUE(doc.IsObject());
95 ASSERT_TRUE(doc.HasMember("cases"));
96 const auto& cases = doc["cases"];
97 ASSERT_TRUE(cases.IsArray());
98
99 size_t checkedCases = 0;
100 for (auto& testcase : cases.GetArray()) {
101 ASSERT_TRUE(testcase.IsObject());
102 ASSERT_TRUE(testcase.HasMember("input"));
103 ASSERT_TRUE(testcase["input"].IsString());
104 const std::string input = testcase["input"].GetString();
105 const std::string id =
106 testcase.HasMember("id") && testcase["id"].IsString()
107 ? testcase["id"].GetString()
108 : "(unknown id)";
109 ASSERT_TRUE(testcase.HasMember("expected"));
110 const auto& expectedObj = testcase["expected"];
111 ASSERT_TRUE(expectedObj.IsObject());
112 if (!expectedObj.HasMember(configName_.c_str())) {
113 continue;
114 }
115 const auto& expectedValue = expectedObj[configName_.c_str()];
116 ASSERT_TRUE(expectedValue.IsString())
117 << "config=" << configName_ << " case=" << id;
118 const std::string expected = expectedValue.GetString();
119 SimpleConverter& converter = GetConverter(configName_);
120 EXPECT_EQ(expected, converter.Convert(input))
121 << "config=" << configName_ << " case=" << id;
122 ++checkedCases;
123 }
124 EXPECT_GT(checkedCases, 0) << "No testcases found for config=" << configName_;
125}
126
127} // namespace
128} // namespace opencc

Callers

nothing calls this directly

Calls 5

HasMemberMethod · 0.80
GetStringMethod · 0.80
ReadFileFunction · 0.70
HasParseErrorMethod · 0.45
ConvertMethod · 0.45

Tested by

no test coverage detected