Esempio n. 1
0
static void testMapGetOrAdd()
{
	HashMap<Uptr, Uptr> map;

	errorUnless(!map.get(0));
	errorUnless(map.getOrAdd(0, 1) == 1);
	errorUnless(*map.get(0) == 1);
	errorUnless(map.getOrAdd(0, 3) == 1);
	errorUnless(*map.get(0) == 1);
	errorUnless((map.getOrAdd(0, 5) += 7) == 8);
	errorUnless(*map.get(0) == 8);
}
Esempio n. 2
0
static void testMapEmplace()
{
	HashMap<Uptr, EmplacedValue> map;

	EmplacedValue& a = map.getOrAdd(0, "a", "b");
	errorUnless(a.a == "a");
	errorUnless(a.b == "b");
	
	errorUnless(map.add(1, "c", "d"));
	const EmplacedValue& b = *map.get(1);
	errorUnless(b.a == "c");
	errorUnless(b.b == "d");
	
	EmplacedValue& c = map.set(2, "e", "f");
	errorUnless(c.a == "e");
	errorUnless(c.b == "f");
	
	EmplacedValue& d = map.getOrAdd(2, "g", "h");
	errorUnless(d.a == "e");
	errorUnless(d.b == "f");
}