void ClDataGpu<T>::labelMap(const vector<int32_t>& map) { GpuMatrix<int32_t> d_map(map); labelMapGpu(d_z_.data(),d_map.data(),this->N_); };
/*---------------------------------------------------------------------- | TestHashMap +---------------------------------------------------------------------*/ static int TestHashMap() { NPT_HashMap<NPT_String,A> a_map; A* a = NULL; CHECK(a_map.GetEntryCount() == 0); CHECK(a_map.HasKey("hello") == false); CHECK(!a_map.HasValue(A(1,2))); CHECK(NPT_FAILED(a_map.Get("bla", a))); CHECK(a == NULL); a_map.Put("hello", A(1,2)); CHECK(a_map.GetEntryCount() == 1); CHECK(NPT_SUCCEEDED(a_map.Get("hello", a))); CHECK(*a == A(1,2)); CHECK(a_map.HasKey("hello")); CHECK(a_map.HasValue(A(1,2))); CHECK(a_map["hello"] == A(1,2)); CHECK(a_map["bla"] == A()); CHECK(a_map.GetEntryCount() == 2); a_map["bla"] = A(3,4); CHECK(a_map["bla"] == A(3,4)); CHECK(a_map.GetEntryCount() == 2); NPT_HashMap<NPT_String,A> b_map; b_map["hello"] = A(1,2); b_map["bla"] = A(3,4); CHECK(a_map == b_map); NPT_HashMap<NPT_String,A> c_map = a_map; CHECK(c_map["hello"] == a_map["hello"]); CHECK(c_map["bla"] == a_map["bla"]); CHECK(NPT_SUCCEEDED(a_map.Put("bla", A(5,6)))); CHECK(NPT_SUCCEEDED(a_map.Get("bla", a))); CHECK(*a == A(5,6)); CHECK(NPT_FAILED(a_map.Get("youyou", a))); b_map.Clear(); CHECK(b_map.GetEntryCount() == 0); a_map["youyou"] = A(6,7); CHECK(NPT_FAILED(a_map.Erase("coucou"))); CHECK(NPT_SUCCEEDED(a_map.Erase("bla"))); CHECK(!a_map.HasKey("bla")); CHECK(!(a_map == c_map)); CHECK(c_map != a_map); c_map = a_map; NPT_HashMap<NPT_String,A> d_map(c_map); CHECK(d_map == c_map); NPT_HashMap<int,int> i_map; i_map[5] = 6; i_map[6] = 7; i_map[9] = 0; CHECK(i_map[0] == 0 || i_map[0] != 0); // unknown value (will cause a valgrind warning) CHECK(i_map.GetEntryCount() == 4); NPT_HashMap<NPT_String,A> a1_map; NPT_HashMap<NPT_String,A> a2_map; a1_map["hello"] = A(1,2); a1_map["bla"] = A(2,3); a1_map["youyou"]= A(3,4); a2_map["bla"] = A(2,3); a2_map["youyou"]= A(3,4); a2_map["hello"] = A(1,2); CHECK(a1_map == a2_map); a1_map["foo"] = A(0,0); CHECK(a1_map != a2_map); a2_map["foo"] = A(0,0); CHECK(a1_map == a2_map); a2_map["foo"] = A(7,8); CHECK(a1_map != a2_map); a2_map["foo"] = A(0,0); a1_map["bir"] = A(0,0); a2_map["bar"] = A(0,0); CHECK(a1_map.GetEntryCount() == a2_map.GetEntryCount()); CHECK(a1_map != a2_map); CHECK(!(a1_map == a2_map)); NPT_HashMap<NPT_String, NPT_String> smap; for (unsigned int i=0; i<24; i++) { NPT_String s = NPT_String::Format("blabla%d", i); smap[s] = "1234"; CHECK(smap[s] == "1234"); } for (unsigned int i=0; i<24; i++) { NPT_String s = NPT_String::Format("blabla%d", i); CHECK(smap[s] == "1234"); } for (unsigned int i=0; i<24; i++) { NPT_String s = NPT_String::Format("blabla%d", i); CHECK(NPT_SUCCEEDED(smap.Erase(s))); CHECK(!smap.HasKey(s)); } CHECK(smap.GetEntryCount() == 0); Hasher hasher; NPT_HashMap<NPT_String, int, Hasher> zmap(hasher); for (unsigned int i=0; i<1024; i++) { NPT_String s = NPT_String::Format("blabla%d", i); zmap[s] = 1234; CHECK(zmap[s] == 1234); } for (unsigned int i=0; i<1024; i++) { NPT_String s = NPT_String::Format("blabla%d", i); CHECK(zmap[s] == 1234); } for (unsigned int i=0; i<1024; i++) { NPT_String s = NPT_String::Format("blabla%d", i); CHECK(NPT_SUCCEEDED(zmap.Erase(s))); CHECK(!zmap.HasKey(s)); } CHECK(zmap.GetEntryCount() == 0); NPT_HashMap<NPT_String, int> imap; for (int i=0; i<1024; i++) { NPT_String s = NPT_String::Format("blabla%d", i); imap[s] = i; CHECK(imap[s] == i); } unsigned int zz = 1024; for (NPT_HashMap<NPT_String, int>::Iterator it = imap.GetEntries(); it; ++it) { CHECK(imap.HasKey((*it).GetKey())); CHECK(imap.HasValue((*it).GetValue())); --zz; } CHECK(zz==0); NPT_HashMap<NPT_String, NPT_String*> p_map; p_map["1"] = new NPT_String("hello"); p_map["2"] = new NPT_String("good bye"); p_map.Apply(NPT_MapEntryValueDeleter<NPT_HashMap<NPT_String, NPT_String*>::Entry>()); return 0; }
/*---------------------------------------------------------------------- | main +---------------------------------------------------------------------*/ int main(int /*argc*/, char** /*argv*/) { NPT_Map<NPT_String,A> a_map; A* a = NULL; CHECK(a_map.GetEntryCount() == 0); CHECK(a_map.HasKey("hello") == false); CHECK(!a_map.HasValue(A(1,2))); CHECK(NPT_FAILED(a_map.Get("bla", a))); CHECK(a == NULL); a_map.Put("hello", A(1,2)); CHECK(a_map.GetEntryCount() == 1); CHECK(NPT_SUCCEEDED(a_map.Get("hello", a))); CHECK(*a == A(1,2)); CHECK(a_map.HasKey("hello")); CHECK(a_map.HasValue(A(1,2))); CHECK(a_map["hello"] == A(1,2)); CHECK(a_map["bla"] == A()); CHECK(a_map.GetEntryCount() == 2); a_map["bla"] = A(3,4); CHECK(a_map["bla"] == A(3,4)); CHECK(a_map.GetEntryCount() == 2); NPT_Map<NPT_String,A> b_map; b_map["hello"] = A(1,2); b_map["bla"] = A(3,4); CHECK(a_map == b_map); NPT_Map<NPT_String,A> c_map = a_map; CHECK(c_map["hello"] == a_map["hello"]); CHECK(c_map["bla"] == a_map["bla"]); CHECK(NPT_SUCCEEDED(a_map.Put("bla", A(5,6)))); CHECK(NPT_SUCCEEDED(a_map.Get("bla", a))); CHECK(*a == A(5,6)); CHECK(NPT_FAILED(a_map.Get("youyou", a))); b_map.Clear(); CHECK(b_map.GetEntryCount() == 0); a_map["youyou"] = A(6,7); CHECK(NPT_FAILED(a_map.Erase("coucou"))); CHECK(NPT_SUCCEEDED(a_map.Erase("bla"))); CHECK(!a_map.HasKey("bla")); CHECK(!(a_map == c_map)); CHECK(c_map != a_map); c_map = a_map; NPT_Map<NPT_String,A> d_map(c_map); CHECK(d_map == c_map); NPT_Map<int,int> i_map; i_map[5] = 6; i_map[6] = 7; i_map[9] = 0; CHECK(i_map[0] == 0 || i_map[0] != 0); // unknown value (will cause a valgrind warning) CHECK(i_map.GetEntryCount() == 4); NPT_Map<NPT_String,A> a1_map; NPT_Map<NPT_String,A> a2_map; a1_map["hello"] = A(1,2); a1_map["bla"] = A(2,3); a1_map["youyou"]= A(3,4); a2_map["bla"] = A(2,3); a2_map["youyou"]= A(3,4); a2_map["hello"] = A(1,2); CHECK(a1_map == a2_map); a1_map["foo"] = A(0,0); CHECK(a1_map != a2_map); a2_map["foo"] = A(0,0); CHECK(a1_map == a2_map); a2_map["foo"] = A(7,8); CHECK(a1_map != a2_map); a2_map["foo"] = A(0,0); a1_map["bir"] = A(0,0); a2_map["bar"] = A(0,0); CHECK(a1_map.GetEntryCount() == a2_map.GetEntryCount()); CHECK(a1_map != a2_map); CHECK(!(a1_map == a2_map)); return 0; }
/*---------------------------------------------------------------------- | TestMap +---------------------------------------------------------------------*/ static int TestMap() { NPT_Map<NPT_String,A> a_map; A* a = NULL; CHECK(a_map.GetEntryCount() == 0); CHECK(a_map.HasKey("hello") == false); CHECK(!a_map.HasValue(A(1,2))); CHECK(NPT_FAILED(a_map.Get("bla", a))); CHECK(a == NULL); a_map.Put("hello", A(1,2)); CHECK(a_map.GetEntryCount() == 1); CHECK(NPT_SUCCEEDED(a_map.Get("hello", a))); CHECK(*a == A(1,2)); CHECK(a_map.HasKey("hello")); CHECK(a_map.HasValue(A(1,2))); CHECK(a_map["hello"] == A(1,2)); CHECK(a_map["bla"] == A()); CHECK(a_map.GetEntryCount() == 2); a_map["bla"] = A(3,4); CHECK(a_map["bla"] == A(3,4)); CHECK(a_map.GetEntryCount() == 2); NPT_Map<NPT_String,A> b_map; b_map["hello"] = A(1,2); b_map["bla"] = A(3,4); CHECK(a_map == b_map); NPT_Map<NPT_String,A> c_map = a_map; CHECK(c_map["hello"] == a_map["hello"]); CHECK(c_map["bla"] == a_map["bla"]); CHECK(NPT_SUCCEEDED(a_map.Put("bla", A(5,6)))); CHECK(NPT_SUCCEEDED(a_map.Get("bla", a))); CHECK(*a == A(5,6)); CHECK(NPT_FAILED(a_map.Get("youyou", a))); b_map.Clear(); CHECK(b_map.GetEntryCount() == 0); a_map["youyou"] = A(6,7); CHECK(NPT_FAILED(a_map.Erase("coucou"))); CHECK(NPT_SUCCEEDED(a_map.Erase("bla"))); CHECK(!a_map.HasKey("bla")); CHECK(!(a_map == c_map)); CHECK(c_map != a_map); c_map = a_map; NPT_Map<NPT_String,A> d_map(c_map); CHECK(d_map == c_map); NPT_Map<int,int> i_map; i_map[5] = 6; i_map[6] = 7; i_map[9] = 0; CHECK(i_map[0] == 0 || i_map[0] != 0); // unknown value (will cause a valgrind warning) CHECK(i_map.GetEntryCount() == 4); NPT_Map<NPT_String,A> a1_map; NPT_Map<NPT_String,A> a2_map; a1_map["hello"] = A(1,2); a1_map["bla"] = A(2,3); a1_map["youyou"]= A(3,4); a2_map["bla"] = A(2,3); a2_map["youyou"]= A(3,4); a2_map["hello"] = A(1,2); CHECK(a1_map == a2_map); a1_map["foo"] = A(0,0); CHECK(a1_map != a2_map); a2_map["foo"] = A(0,0); CHECK(a1_map == a2_map); a2_map["foo"] = A(7,8); CHECK(a1_map != a2_map); a2_map["foo"] = A(0,0); a1_map["bir"] = A(0,0); a2_map["bar"] = A(0,0); CHECK(a1_map.GetEntryCount() == a2_map.GetEntryCount()); CHECK(a1_map != a2_map); CHECK(!(a1_map == a2_map)); NPT_Map<NPT_String, NPT_String*> p_map; p_map["1"] = new NPT_String("hello"); p_map["2"] = new NPT_String("good bye"); p_map.GetEntries().Apply(NPT_MapEntryValueDeleter<NPT_Map<NPT_String, NPT_String*>::Entry>()); return 0; }