#!/usr/bin/ruby require 'runit/testcase' require 'bighole' class TestPoint < RUNIT::TestCase def testBasics pt = Point.new(0,0) pt = Point.new(1,2) assert_equals(1, pt.x) assert_equals(2, pt.y) assert_equals(true, Point.new(3,4) == Point.new(3,4)) assert_equals(true, Point.new(3,4).near(Point.new(4,5))) assert_equals(true, Point.new(3,4).near(Point.new(2,3))) assert_equals(true, Point.new(3,4).near(Point.new(4,3))) assert_equals(false, Point.new(3,4).near(Point.new(5,3))) pts = [Point.new(0,0), Point.new(2,2)] assert_equals(true, Point.new(0,0).nearAny(pts)) assert_equals(true, Point.new(1,1).nearAny(pts)) assert_equals(true, Point.new(3,3).nearAny(pts)) assert_equals(false, Point.new(2,0).nearAny(pts)) assert_equals(false, Point.new(4,4).nearAny(pts)) end end class TestGrid < RUNIT::TestCase def testBasics g = Grid.new(1, 1) pt = Point.new(0,0) assert_equals(true, g.isEmpty(pt)) g.set(pt) assert_equals(false, g.isEmpty(pt)) g = Grid.new(3,3) pt = Point.new(2,2) g.set(pt) assert_equals(false, g.isEmpty(pt)) end def testGetEmptyList g = Grid.new(3,3) emptyPts = g.getEmptyCells assert_equals(3*3, emptyPts.size) assert_equals(true, emptyPts.include?(Point.new(0,0))) assert_equals(true, emptyPts.include?(Point.new(0,2))) assert_equals(true, emptyPts.include?(Point.new(2,2))) assert_equals(false, emptyPts.include?(Point.new(0,3))) g = createSampleGrid emptyPts = g.getEmptyCells assert_equals(4, emptyPts.size) end def testGetFirstEmptyArea g = createSampleGrid area = g.getFirstEmptyArea(g.getEmptyCells) assert_equals(3, area.size) end def testGetBiggestEmptyArea g = createSampleGrid area = g.getBiggestEmptyArea assert_equals(3, area.size) end def createSampleGrid g = Grid.new(3,3) fullPts = [ Point.new(0,2), Point.new(1, 0), Point.new(1,1), Point.new(2, 1), Point.new(2, 2)] fullPts.each do | pt | g.set(pt) end return g end end #--- main program ---- if __FILE__ == $0 require 'runit/cui/testrunner' RUNIT::CUI::TestRunner.run(TestPoint.suite) RUNIT::CUI::TestRunner.run(TestGrid.suite) end