diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/containers.cc | 64 |
1 files changed, 50 insertions, 14 deletions
diff --git a/test/containers.cc b/test/containers.cc index 646624aa..d8107bdf 100644 --- a/test/containers.cc +++ b/test/containers.cc @@ -6,41 +6,76 @@ using namespace lout::container::typed; void testHashSet () { + puts ("--- testHashSet ---"); + HashSet<String> h(true); h.put (new String ("one")); h.put (new String ("two")); h.put (new String ("three")); - Iterator<String> it = h.iterator (); - while (it.hasNext ()) { - String *o = it.getNext (); - printf ("%s\n", o->chars()); - } + puts (h.toString()); } void testHashTable () { + puts ("--- testHashTable ---"); + HashTable<String, Integer> h(true, true); h.put (new String ("one"), new Integer (1)); h.put (new String ("two"), new Integer (2)); h.put (new String ("three"), new Integer (3)); - for (Iterator<String> it = h.iterator (); it.hasNext (); ) { - String *k = it.getNext (); - Integer *v = h.get (k); - printf ("%s -> %d\n", k->chars(), v->getValue()); - } + puts (h.toString()); h.put (new String ("one"), new Integer (4)); h.put (new String ("two"), new Integer (5)); h.put (new String ("three"), new Integer (6)); + + puts (h.toString()); +} + +void testVector () +{ + puts ("--- testVector ---"); + + Vector<String> v (true, 1); + + v.put (new String ("one")); + v.put (new String ("two")); + v.put (new String ("three")); + puts (v.toString()); + + v.sort (); + puts (v.toString()); + + v.insertSorted (new String ("five")); + puts (v.toString()); + + v.insertSorted (new String ("six")); + puts (v.toString()); + + v.insertSorted (new String ("four")); + puts (v.toString()); + + for (int b = 0; b < 2; b++) { + bool mustExist = b; + printf ("mustExist = %s\n", mustExist ? "true" : "false"); - for (Iterator<String> it = h.iterator (); it.hasNext (); ) { - String *k = it.getNext (); - Integer *v = h.get (k); - printf ("%s -> %d\n", k->chars(), v->getValue()); + String k ("alpha"); + printf (" '%s' -> %d\n", k.chars(), v.bsearch (&k, mustExist)); + + for (Iterator<String> it = v.iterator(); it.hasNext(); ) { + String *k1 = it.getNext(); + printf (" '%s' -> %d\n", k1->chars(), v.bsearch (k1, mustExist)); + + char buf[64]; + strcpy (buf, k1->chars()); + strcat (buf, "-var"); + String k2 (buf); + printf (" '%s' -> %d\n", k2.chars(), v.bsearch (&k2, mustExist)); + } } } @@ -48,6 +83,7 @@ int main (int argc, char *argv[]) { testHashSet (); testHashTable (); + testVector (); return 0; } |