diff options
author | Maciej Piechotka <uzytkownik2@gmail.com> | 2011-08-17 21:42:56 +0100 |
---|---|---|
committer | Maciej Piechotka <uzytkownik2@gmail.com> | 2011-08-17 21:42:56 +0100 |
commit | 663d02a6f84048290b94569ab08bf97d15ce4ce1 (patch) | |
tree | f6c9c0bf01ffaf8c2528d1d4c7940761f6b1d3a0 /tests | |
parent | e6fc195b449f1462bd6eea962799b814ad2c519b (diff) | |
download | libgee-663d02a6f84048290b94569ab08bf97d15ce4ce1.tar.gz |
Add filter tests
Diffstat (limited to 'tests')
-rw-r--r-- | tests/testcollection.vala | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/testcollection.vala b/tests/testcollection.vala index 246b94b..fa5304d 100644 --- a/tests/testcollection.vala +++ b/tests/testcollection.vala @@ -49,6 +49,7 @@ public abstract class CollectionTests : Gee.TestCase { add_test ("[Collection] foreach", test_foreach); add_test ("[Collection] map", test_map); add_test ("[Collection] scan", test_scan); + add_test ("[Collection] filter", test_filter); } protected Collection<string> test_collection; @@ -863,5 +864,41 @@ public abstract class CollectionTests : Gee.TestCase { assert (two); assert (three); } + + public void test_filter () { + assert (test_collection.add ("one")); + assert (test_collection.add ("two")); + assert (test_collection.add ("three")); + + bool one = false; + bool two = false; + bool three = false; + + var iter = test_collection.iterator().filter ((str) => { + if (str == "one") { + assert (!one); + one = true; + } else if (str == "two") { + assert (!two); + two = true; + } else if (str == "three") { + assert (!three); + three = true; + } else { + assert_not_reached (); + } + return str != "two"; + }); + + assert (!iter.valid); + + int j = 0; + while (iter.next ()) + j++; + assert (j == 2); + assert (one); + assert (two); + assert (three); + } } |