[lang-ref] ( set_dict_elem ) ( cpp )

TEST(DictInit, SetDictElem) {
	// d[k] = v
	map<string, int> d = {};

	d["A"] = 5;
	EXPECT_EQ(d.at("A"), 5);
	EXPECT_EQ(d.size(), 1);

	d["A"] = 8;
	EXPECT_EQ(d.at("A"), 8); // overwritten
	EXPECT_EQ(d.size(), 1);
}
TEST(DictInit, SetDictElemAlternative1) {
	// d.emplace(k, v)
	map<string, int> d = {};

	d.emplace("A", 5);
	EXPECT_EQ(d.at("A"), 5);
	EXPECT_EQ(d.size(), 1);

	d.emplace("A", 8);
	EXPECT_EQ(d.at("A"), 5); // not overwritten
	EXPECT_EQ(d.size(), 1);
}
TEST(DictInit, SetDictElemAlternative2) {
	// d.insert(make_pair(k, v))
	map<string, int> d = {};

	d.insert(make_pair("A", 5));
	EXPECT_EQ(d.at("A"), 5);
	EXPECT_EQ(d.size(), 1);

	d.insert(make_pair("A", 8));
	EXPECT_EQ(d.at("A"), 5); // not overwritten
	EXPECT_EQ(d.size(), 1);
}