=begin
$Id: unittest_bitvector_extras.rb,v 1.4 2003/01/23 17:42:40 knu Exp $
Unit test for XX.
Part of Yoda (Yet another jOb Distributing And queueing system).
(c) Copyright 2000, Robert Feldt, feldt@ce.chalmers.se
This software is distributed under a license. See LICENSE in the Yoda main
directory for more information.
=end
require 'test/unit'
require 'test/unit/ui/console/testrunner'
require 'bitvector_extras'
class Test_BitVector < Test::Unit::TestCase
def setup
@i1 = BitVector.from_bin(20, "11111111111111111111")
@i2 = BitVector.from_bin(20, "00000000000000000000")
end
def test_01_crossover_1point
c1, c2 = @i1.crossover_1point(@i2, 10)
assert_equal(20, c1.length)
assert_equal(20, c2.length)
assert_equal("11111111110000000000", c2.inspect)
assert_equal("00000000001111111111", c1.inspect)
assert_equal("11111111111111111111", @i1.inspect)
assert_equal("00000000000000000000", @i2.inspect)
c1, c2 = @i1.crossover_1point(@i2, 19)
assert_equal(20, c1.length)
assert_equal(20, c2.length)
assert_equal("10000000000000000000", c2.inspect)
assert_equal("01111111111111111111", c1.inspect)
end
def test_02_crossover_2point
c1, c2 = @i1.crossover_2point(@i2, 5, 12)
assert_equal(20, c1.length)
assert_equal(20, c2.length)
assert_equal("00000000111111100000", c2.inspect)
assert_equal("11111111000000011111", c1.inspect)
end
end
syntax highlighted by Code2HTML, v. 0.9.1