Advertisement
hsvec

ruby unittest

Mar 18th, 2013
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.78 KB | None | 0 0
  1. require "test/unit"
  2.  
  3. require_relative "hash_set.rb"
  4.  
  5. class HashSetTest < Test::Unit::TestCase
  6.  
  7.   def test_initial_size_3
  8.     set = HashSet.new(3)
  9.     assert set.empty?
  10.     set << 1
  11.     assert set.include?(1)
  12.     assert_equal [1], set.to_a
  13.     set << 2 << 3 << 4 << 5 << 1 << 3
  14.     assert_equal [1, 2, 3, 4, 5], set.to_a.sort
  15. =begin    set.delete(3)
  16.     assert_equal [1, 2, 4, 5], set.to_a.sort
  17.     set.delete(4).delete(3).delete(2)
  18.     assert_equal [1, 5], set.to_a.sort
  19.     set << 2
  20.     assert_equal [1, 2, 5], set.to_a.sort
  21.     set.delete(2).delete(1).delete(5)
  22.     assert set.empty?
  23. =end
  24.   end
  25. =begin
  26.   def test_initial_size_5
  27.     set = HashSet.new(5)
  28.     assert set.empty?
  29.     set << 1
  30.     assert set.include?(1)
  31.     assert_equal [1], set.to_a
  32.     set << 2 << 3 << 4 << 5 << 1 << 3 << 6 << 7 << 8
  33.     assert_equal [1, 2, 3, 4, 5, 6, 7, 8], set.to_a.sort
  34.     set.delete(3)
  35.     assert_equal [1, 2, 4, 5, 6, 7, 8], set.to_a.sort
  36.     set.delete(4).delete(3).delete(2)
  37.     assert_equal [1, 5, 6, 7, 8], set.to_a.sort
  38.     set << 2
  39.     assert_equal [1, 2, 5, 6, 7, 8], set.to_a.sort
  40.     set.delete(2).delete(1).delete(5).delete(6).delete(7).delete(8)
  41.     assert set.empty?
  42.   end
  43.  
  44.   def test_initial_size_11
  45.     set = HashSet.new(11)
  46.     assert set.empty?
  47.     set << 1
  48.     assert set.include?(1)
  49.     assert_equal [1], set.to_a
  50.     set << 2 << 3 << 4 << 5 << 1 << 3 << 6 << 7 << 8
  51.     assert_equal [1, 2, 3, 4, 5, 6, 7, 8], set.to_a.sort
  52.     set.delete(3)
  53.     assert_equal [1, 2, 4, 5, 6, 7, 8], set.to_a.sort
  54.     set.delete(4).delete(3).delete(2)
  55.     assert_equal [1, 5, 6, 7, 8], set.to_a.sort
  56.     set << 2
  57.     assert_equal [1, 2, 5, 6, 7, 8], set.to_a.sort
  58.     set.delete(2).delete(1).delete(5).delete(6).delete(7).delete(8)
  59.     assert set.empty?
  60.   end
  61.  
  62.   def test_initial_size_101
  63.     set = HashSet.new(101)
  64.     assert set.empty?
  65.     set << 1
  66.     assert set.include?(1)
  67.     assert_equal [1], set.to_a
  68.     set << 2 << 3 << 4 << 5 << 1 << 3 << 6 << 7 << 8
  69.     assert_equal [1, 2, 3, 4, 5, 6, 7, 8], set.to_a.sort
  70.     set.delete(3)
  71.     assert_equal [1, 2, 4, 5, 6, 7, 8], set.to_a.sort
  72.     set.delete(4).delete(3).delete(2)
  73.     assert_equal [1, 5, 6, 7, 8], set.to_a.sort
  74.     set << 2
  75.     assert_equal [1, 2, 5, 6, 7, 8], set.to_a.sort
  76.     set.delete(2).delete(1).delete(5).delete(6).delete(7).delete(8)
  77.     assert set.empty?
  78.   end
  79.  
  80.   def test_random
  81.     [3, 7, 11, 97, 997, 9973].each do |initial_size|
  82.       set = HashSet.new(initial_size)
  83.       referential = []
  84.       100000.times do
  85.         x = rand(2000) - 1000
  86.         if rand(2) == 0
  87.           set << x
  88.           referential << x
  89.         else
  90.           set.delete(x)
  91.           referential.delete(x)
  92.         end
  93.       end
  94.       assert_equal referential.sort.uniq, set.to_a.sort
  95.     end
  96.   end
  97. =end
  98. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement