void revert_feature(const common::sfv_t& fv, fv_converter::datum& data) { for (size_t i = 0; i < fv.size(); ++i) { std::pair<std::string, double> num_value; std::pair<std::string, std::string> string_value; if (revert_num_value(fv[i], num_value)) { data.num_values_.push_back(num_value); } else if (revert_string_value(fv[i], string_value)) { data.string_values_.push_back(string_value); } } }
TEST(revert_num_value, error) { std::pair<std::string, float> value; ASSERT_FALSE(revert_num_value(std::make_pair("age", 1), value)); ASSERT_FALSE(revert_num_value(std::make_pair("age@log", 1), value)); ASSERT_FALSE(revert_num_value(std::make_pair("age@str$hoge", 1), value)); }
TEST(revert_num_value, num) { std::pair<std::string, float> value; ASSERT_TRUE(revert_num_value(std::make_pair("age@num", 25.f), value)); EXPECT_EQ("age", value.first); EXPECT_EQ(25.f, value.second); }
TEST(revert_num_value, str) { std::pair<std::string, double> value; ASSERT_TRUE(revert_num_value(std::make_pair("age@str$25", 1), value)); EXPECT_EQ("age", value.first); EXPECT_EQ(25, value.second); }