diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-02-27 04:52:21 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-02-27 04:52:21 +0000 |
commit | 3fc04d9361549d5bb15f869c22d7ce9591a0ac8c (patch) | |
tree | b160a4f2ed1605c1a4ef62d6c568ff807fda24c5 /ext/gdbm/testgdbm.rb | |
parent | 2fcd221fecabe3e6acaa21c54ae6d1ccbe8c0204 (diff) |
* ext/dbm/dbm.c (fdbm_select): 1.7 behavior.
* ext/gdbm/gdbm.c (fgdbm_select): ditto.
* ext/sdbm/sdbm.c (fsdbm_select): ditto.
* ext/dbm/dbm.c (fdbm_delete): adopt Hash#delete behavior.
* ext/sdbm/sdbm.c (fsdbm_delete): ditto.
* ext/gdbm/gdbm.c: need not to dup key to the block.
* ext/sdbm/sdbm.c : replace RuntimeError with SDBMError.
* eval.c (rb_f_missing): NoMethod error messages for true, false,
nil must respond visibility like for other objects.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/gdbm/testgdbm.rb')
-rw-r--r-- | ext/gdbm/testgdbm.rb | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/ext/gdbm/testgdbm.rb b/ext/gdbm/testgdbm.rb index 06f598cdaf..524d3f8ca3 100644 --- a/ext/gdbm/testgdbm.rb +++ b/ext/gdbm/testgdbm.rb @@ -279,6 +279,25 @@ class TestGDBM < RUNIT::TestCase assert_equals(values.reverse, @gdbm.indexes(*keys.reverse)) end + def test_select + keys = %w(foo bar baz) + values = %w(FOO BAR BAZ) + @gdbm[keys[0]], @gdbm[keys[1]], @gdbm[keys[2]] = values + assert_equals(values.reverse, @gdbm.select(*keys.reverse)) + end + + def test_select_with_block + keys = %w(foo bar baz) + values = %w(FOO BAR BAZ) + @gdbm[keys[0]], @gdbm[keys[1]], @gdbm[keys[2]] = values + ret = @gdbm.select {|k,v| + assert_equals(k.upcase, v) + k != "bar" + } + assert_equals([['baz', 'BAZ'], ['foo', 'FOO']], + ret.sort) + end + def test_length num = 10 assert_equals(0, @gdbm.size) @@ -411,7 +430,7 @@ class TestGDBM < RUNIT::TestCase @gdbm[keys[0]], @gdbm[keys[1]], @gdbm[keys[2]] = values - assert_equals(@gdbm, @gdbm.delete(key)) + assert_equals('BAR', @gdbm.delete(key)) assert_nil(@gdbm[key]) assert_equals(2, @gdbm.size) @@ -428,12 +447,13 @@ class TestGDBM < RUNIT::TestCase def test_delete_with_block key = 'no called block' @gdbm[key] = 'foo' - assert_equals(@gdbm, @gdbm.delete(key) {|k| k.replace 'called block'}) + assert_equals('foo', @gdbm.delete(key) {|k| k.replace 'called block'}) assert_equals('no called block', key) assert_equals(0, @gdbm.size) key = 'no called block' - assert_nil(@gdbm.delete(key) {|k| k.replace 'called block'}) + assert_equals(:blockval, + @gdbm.delete(key) {|k| k.replace 'called block'; :blockval}) assert_equals('called block', key) assert_equals(0, @gdbm.size) end |