class NatSetTest

Public Instance Methods

test_complement() click to toggle source
# File lib/natset.rb, line 314
def test_complement
  assert_equal(NatSet.empty, ~NatSet.universal)
  assert_equal(NatSet.universal, ~NatSet.empty)
  assert_equal(NatSet._new(1, 2), ~NatSet._new(0, 1, 2))
  assert_equal(NatSet._new(0, 1, 2), ~NatSet._new(1, 2))
end
test_each_range() click to toggle source
# File lib/natset.rb, line 402
def test_each_range
  rs = []; NatSet.new() .each_range {|r| rs << r}; assert_equal([], rs)
  rs = []; NatSet.new(0).each_range {|r| rs << r}; assert_equal([0..0], rs)
  rs = []; NatSet.new(1).each_range {|r| rs << r}; assert_equal([1..1], rs)
  rs = []; NatSet.new(1..3).each_range {|r| rs << r}; assert_equal([1..3], rs)
  rs = []; NatSet.new(1...3).each_range {|r| rs << r}; assert_equal([1..2], rs)
  rs = []; NatSet.new(1..-1).each_range {|r| rs << r}; assert_equal([1..-1], rs)
end
test_empty() click to toggle source
# File lib/natset.rb, line 296
def test_empty
  assert(NatSet.empty.empty?)
end
test_intersect() click to toggle source
# File lib/natset.rb, line 329
def test_intersect
  assert_equal(NatSet.empty, NatSet.empty & NatSet.empty)
  assert_equal(NatSet.empty, NatSet.empty & NatSet.universal)
  assert_equal(NatSet.empty, NatSet.universal & NatSet.empty)
  assert_equal(NatSet.universal, NatSet.universal & NatSet.universal)
  assert_equal(NatSet.new(0), NatSet.new(0, 2) & NatSet.new(0, 1))
end
test_max() click to toggle source
# File lib/natset.rb, line 396
def test_max
  assert_equal(nil, NatSet.new().max)
  assert_equal(10, NatSet.new(1..10).max)
  assert_equal(nil, NatSet.new(1..-1).max)
end
test_min() click to toggle source
# File lib/natset.rb, line 391
def test_min
  assert_equal(nil, NatSet.new().min)
  assert_equal(1, NatSet.new(1..10).min)
end
test_new() click to toggle source
# File lib/natset.rb, line 345
def test_new
  assert_equal([1, 2], NatSet.new(1).es)
  assert_equal([1, 3], NatSet.new(1, 2).es)
  assert_equal([1, 4], NatSet.new(1, 2, 3).es)
  assert_equal([1, 4], NatSet.new(1, 3, 2).es)
  assert_equal([10, 21], NatSet.new(10..20).es)
  assert_equal([10, 20], NatSet.new(10...20).es)
  assert_equal([1, 2, 3, 4, 5, 6], NatSet.new(1, 3, 5).es)
  assert_equal([1, 16], NatSet.new(5..15, 1..10).es)
  assert_equal([1, 16], NatSet.new(11..15, 1..10).es)
  assert_raises(ArgumentError) {NatSet.new("a")}
  assert_raises(ArgumentError) {NatSet.new("a".."b")}
  assert_raises(ArgumentError) {NatSet.new(-1)}
  assert_raises(ArgumentError) {NatSet.new(-1..3)}
end
test_open() click to toggle source
# File lib/natset.rb, line 304
def test_open
  assert(!NatSet.empty.open?)
  assert(NatSet.universal.open?)
end
test_singleton() click to toggle source
# File lib/natset.rb, line 309
def test_singleton
  assert_equal(1, NatSet._new(1, 2).singleton?)
  assert_equal(nil, NatSet._new(1, 3).singleton?)
end
test_split() click to toggle source
# File lib/natset.rb, line 361
def test_split
  u = NatSet.universal
  assert_equal([[NatSet.universal]], u.split())
  assert_equal([[NatSet.universal]], u.split(NatSet.empty))
  assert_equal([[NatSet.universal, u]], u.split(u))

  n = NatSet.new(10..20)
  assert_equal([[NatSet.new(0..9, 21..-1)],
                [NatSet.new(10..20), n]],
               u.split(n))

  ns = [NatSet.new(10..20), NatSet.new(10..20)]
  assert_equal([[NatSet.new(0..9, 21..-1)],
                [NatSet.new(10..20), *ns]],
               u.split(*ns))

  ns = [NatSet.new(1..30), NatSet.new(5..40)]
  assert_equal([[NatSet.new(0, 41..-1)],
                [NatSet.new(1..4), ns[0]],
                [NatSet.new(31..40), ns[1]],
                [NatSet.new(5..30), *ns]],
               u.split(*ns))

  ns = [NatSet.new(1..30), NatSet.new(5..20)]
  assert_equal([[NatSet.new(0, 31..-1)],
                [NatSet.new(1..4, 21..30), ns[0]],
                [NatSet.new(5..20), *ns]],
               u.split(*ns))
end
test_subtract() click to toggle source
# File lib/natset.rb, line 337
def test_subtract
  assert_equal(NatSet.empty, NatSet.empty - NatSet.empty)
  assert_equal(NatSet.empty, NatSet.empty - NatSet.universal)
  assert_equal(NatSet.universal, NatSet.universal - NatSet.empty)
  assert_equal(NatSet.empty, NatSet.universal - NatSet.universal)
  assert_equal(NatSet.new(2), NatSet.new(0, 2) - NatSet.new(0, 1))
end
test_union() click to toggle source
# File lib/natset.rb, line 321
def test_union
  assert_equal(NatSet.empty, NatSet.empty + NatSet.empty)
  assert_equal(NatSet.universal, NatSet.empty + NatSet.universal)
  assert_equal(NatSet.universal, NatSet.universal + NatSet.empty)
  assert_equal(NatSet.universal, NatSet.universal + NatSet.universal)
  assert_equal(NatSet.new(0..2), NatSet.new(0, 2) + NatSet.new(0, 1))
end
test_universal() click to toggle source
# File lib/natset.rb, line 300
def test_universal
  assert(NatSet.universal.universal?)
end