diff options
author | Frederick Cheung <frederick.cheung@gmail.com> | 2008-12-11 15:19:03 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2008-12-15 15:34:29 +0100 |
commit | 4dcd8f01afe5800baa67bbdf72832afb0d627755 (patch) | |
tree | 7f0a67dea09240b8fd1bb4ba6f338971345fd850 /activesupport/test/ordered_hash_test.rb | |
parent | 49306ccacf01e36d444771d42321965616e226f0 (diff) | |
download | rails-4dcd8f01afe5800baa67bbdf72832afb0d627755.tar.gz rails-4dcd8f01afe5800baa67bbdf72832afb0d627755.tar.bz2 rails-4dcd8f01afe5800baa67bbdf72832afb0d627755.zip |
Make delete_if/reject faster and fix other mutators
[#1559 state:committed]
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
Diffstat (limited to 'activesupport/test/ordered_hash_test.rb')
-rw-r--r-- | activesupport/test/ordered_hash_test.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/activesupport/test/ordered_hash_test.rb b/activesupport/test/ordered_hash_test.rb index ca5fce6267..0e2aa4543d 100644 --- a/activesupport/test/ordered_hash_test.rb +++ b/activesupport/test/ordered_hash_test.rb @@ -36,9 +36,11 @@ class OrderedHashTest < Test::Unit::TestCase @ordered_hash[key] = value assert_equal @keys.length + 1, @ordered_hash.length + assert_equal @ordered_hash.keys.length, @ordered_hash.length assert_equal value, @ordered_hash.delete(key) assert_equal @keys.length, @ordered_hash.length + assert_equal @ordered_hash.keys.length, @ordered_hash.length assert_nil @ordered_hash.delete(bad_key) end @@ -84,6 +86,17 @@ class OrderedHashTest < Test::Unit::TestCase @ordered_hash.each_with_index { |pair, index| assert_equal [@keys[index], @values[index]], pair} end + def test_each_pair + values = [] + keys = [] + @ordered_hash.each_pair do |key, value| + keys << key + values << value + end + assert_equal @values, values + assert_equal @keys, keys + end + def test_delete_if (copy = @ordered_hash.dup).delete('pink') assert_equal copy, @ordered_hash.delete_if { |k, _| k == 'pink' } @@ -103,4 +116,28 @@ class OrderedHashTest < Test::Unit::TestCase assert_equal copy, @ordered_hash assert !new_ordered_hash.keys.include?('pink') end + + def test_clear + @ordered_hash.clear + assert_equal [], @ordered_hash.keys + end + + def test_merge + other_hash = ActiveSupport::OrderedHash.new + other_hash['purple'] = '800080' + other_hash['violet'] = 'ee82ee' + merged = @ordered_hash.merge other_hash + assert_equal merged.length, @ordered_hash.length + other_hash.length + assert_equal @keys + ['purple', 'violet'], merged.keys + + @ordered_hash.merge! other_hash + assert_equal @ordered_hash, merged + assert_equal @ordered_hash.keys, merged.keys + end + + def test_shift + pair = @ordered_hash.shift + assert_equal [@keys.first, @values.first], pair + assert !@ordered_hash.keys.include?(pair.first) + end end
\ No newline at end of file |