Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require "test/unit"
- require_relative "hash_set.rb"
- class HashSetTest < Test::Unit::TestCase
- def test_initial_size_3
- set = HashSet.new(3)
- assert set.empty?
- set << 1
- assert set.include?(1)
- assert_equal [1], set.to_a
- set << 2 << 3 << 4 << 5 << 1 << 3
- assert_equal [1, 2, 3, 4, 5], set.to_a.sort
- =begin set.delete(3)
- assert_equal [1, 2, 4, 5], set.to_a.sort
- set.delete(4).delete(3).delete(2)
- assert_equal [1, 5], set.to_a.sort
- set << 2
- assert_equal [1, 2, 5], set.to_a.sort
- set.delete(2).delete(1).delete(5)
- assert set.empty?
- =end
- end
- =begin
- def test_initial_size_5
- set = HashSet.new(5)
- assert set.empty?
- set << 1
- assert set.include?(1)
- assert_equal [1], set.to_a
- set << 2 << 3 << 4 << 5 << 1 << 3 << 6 << 7 << 8
- assert_equal [1, 2, 3, 4, 5, 6, 7, 8], set.to_a.sort
- set.delete(3)
- assert_equal [1, 2, 4, 5, 6, 7, 8], set.to_a.sort
- set.delete(4).delete(3).delete(2)
- assert_equal [1, 5, 6, 7, 8], set.to_a.sort
- set << 2
- assert_equal [1, 2, 5, 6, 7, 8], set.to_a.sort
- set.delete(2).delete(1).delete(5).delete(6).delete(7).delete(8)
- assert set.empty?
- end
- def test_initial_size_11
- set = HashSet.new(11)
- assert set.empty?
- set << 1
- assert set.include?(1)
- assert_equal [1], set.to_a
- set << 2 << 3 << 4 << 5 << 1 << 3 << 6 << 7 << 8
- assert_equal [1, 2, 3, 4, 5, 6, 7, 8], set.to_a.sort
- set.delete(3)
- assert_equal [1, 2, 4, 5, 6, 7, 8], set.to_a.sort
- set.delete(4).delete(3).delete(2)
- assert_equal [1, 5, 6, 7, 8], set.to_a.sort
- set << 2
- assert_equal [1, 2, 5, 6, 7, 8], set.to_a.sort
- set.delete(2).delete(1).delete(5).delete(6).delete(7).delete(8)
- assert set.empty?
- end
- def test_initial_size_101
- set = HashSet.new(101)
- assert set.empty?
- set << 1
- assert set.include?(1)
- assert_equal [1], set.to_a
- set << 2 << 3 << 4 << 5 << 1 << 3 << 6 << 7 << 8
- assert_equal [1, 2, 3, 4, 5, 6, 7, 8], set.to_a.sort
- set.delete(3)
- assert_equal [1, 2, 4, 5, 6, 7, 8], set.to_a.sort
- set.delete(4).delete(3).delete(2)
- assert_equal [1, 5, 6, 7, 8], set.to_a.sort
- set << 2
- assert_equal [1, 2, 5, 6, 7, 8], set.to_a.sort
- set.delete(2).delete(1).delete(5).delete(6).delete(7).delete(8)
- assert set.empty?
- end
- def test_random
- [3, 7, 11, 97, 997, 9973].each do |initial_size|
- set = HashSet.new(initial_size)
- referential = []
- 100000.times do
- x = rand(2000) - 1000
- if rand(2) == 0
- set << x
- referential << x
- else
- set.delete(x)
- referential.delete(x)
- end
- end
- assert_equal referential.sort.uniq, set.to_a.sort
- end
- end
- =end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement