require 'test/unit' require 'fox16' class TC_Misc < Test::Unit::TestCase DELTA = 1.0e-5 def test_MKUINT assert_equal(0, Fox.MKUINT(Fox::MINKEY, Fox::MINTYPE)) assert_equal(65535, Fox.MKUINT(Fox::MAXKEY, Fox::MINTYPE)) assert_equal(4294901760, Fox.MKUINT(Fox::MINKEY, Fox::MAXTYPE)) assert_equal(4294967295, Fox.MKUINT(Fox::MAXKEY, Fox::MAXTYPE)) end def test_FXSEL assert_equal(0, Fox.FXSEL(Fox::MINTYPE, Fox::MINKEY)) assert_equal(65535, Fox.FXSEL(Fox::MINTYPE, Fox::MAXKEY)) assert_equal(4294901760, Fox.FXSEL(Fox::MAXTYPE, Fox::MINKEY)) assert_equal(4294967295, Fox.FXSEL(Fox::MAXTYPE, Fox::MAXKEY)) end def test_FXSELTYPE assert_equal(Fox::MINTYPE, Fox.FXSELTYPE(0)) assert_equal(Fox::MINTYPE, Fox.FXSELTYPE(65535)) assert_equal(Fox::MAXTYPE, Fox.FXSELTYPE(4294901760)) assert_equal(Fox::MAXTYPE, Fox.FXSELTYPE(4294967295)) end def test_FXSELID assert_equal(Fox::MINKEY, Fox.FXSELID(0)) assert_equal(Fox::MAXKEY, Fox.FXSELID(65535)) assert_equal(Fox::MINKEY, Fox.FXSELID(4294901760)) assert_equal(Fox::MAXKEY, Fox.FXSELID(4294967295)) end def test_FXRGB # result depends on endian-ness of platform! end def test_FXRGBA # result depends on endian-ness of platform! end def test_FXREDVAL assert_equal(1, Fox.FXREDVAL(Fox.FXRGB(1, 0, 0))) assert_equal(10, Fox.FXREDVAL(Fox.FXRGB(10.6, 0, 0))) end def test_FXGREENVAL assert_equal(1, Fox.FXGREENVAL(Fox.FXRGB(0, 1, 0))) end def test_FXBLUEVAL assert_equal(1, Fox.FXBLUEVAL(Fox.FXRGB(0, 0, 1))) end def test_FXALPHAVAL assert_equal(1, Fox.FXALPHAVAL(Fox.FXRGBA(0, 0, 0, 1))) assert_equal(10, Fox.FXALPHAVAL(Fox.FXRGBA(0, 0, 0, 10.6))) end def test_FXRGBACOMPVAL clr = Fox.FXRGBA(0, 1, 2, 3) 0.upto(3) { |i| assert_equal(i, Fox.FXRGBACOMPVAL(clr, i)) } end def test_fxparseAccel end def test_fxparseHotKey end def test_fxfindhotkeyoffset end def test_makeHiliteColor end def test_makeShadowColor end def test_fxcolorfromname end def test_fxnamefromcolor end def test_fxhsv_to_rgb h, s, v = 180.0, 0.0, 1.0 r, g, b = Fox.fxhsv_to_rgb(h, s, v) assert_in_delta(v, r, DELTA) assert_in_delta(v, g, DELTA) assert_in_delta(v, b, DELTA) h, s, v = 180.0, 0.5, 1.0 r, g, b = Fox.fxhsv_to_rgb(h, s, v) assert_in_delta(0.5, r, DELTA) assert_in_delta(1.0, g, DELTA) assert_in_delta(1.0, b, DELTA) h, s, v = 0.0, 0.5, 1.0 r, g, b = Fox.fxhsv_to_rgb(h, s, v) assert_in_delta(1.0, r, DELTA) assert_in_delta(0.5, g, DELTA) assert_in_delta(0.5, b, DELTA) h, s, v = 360.0, 0.5, 1.0 r, g, b = Fox.fxhsv_to_rgb(h, s, v) assert_in_delta(1.0, r, DELTA) assert_in_delta(0.5, g, DELTA) assert_in_delta(0.5, b, DELTA) end def test_fxrgb_to_hsv r, g, b = 0.0, 0.0, 0.0 h, s, v = Fox.fxrgb_to_hsv(r, g, b) assert_in_delta(0.0, h, DELTA) assert_in_delta(0.0, s, DELTA) assert_in_delta(0.0, v, DELTA) r, g, b = 0.5, 0.5, 0.5 h, s, v = Fox.fxrgb_to_hsv(r, g, b) assert_in_delta(0.0, h, DELTA) assert_in_delta(0.0, s, DELTA) assert_in_delta(0.5, v, DELTA) r, g, b = 1.0, 0.0, 0.0 h, s, v = Fox.fxrgb_to_hsv(r, g, b) assert_in_delta(0.0, h, DELTA) assert_in_delta(1.0, s, DELTA) assert_in_delta(1.0, v, DELTA) r, g, b = 0.0, 1.0, 0.0 h, s, v = Fox.fxrgb_to_hsv(r, g, b) assert_in_delta(120.0, h, DELTA) assert_in_delta(1.0, s, DELTA) assert_in_delta(1.0, v, DELTA) r, g, b = 0.0, 0.0, 1.0 h, s, v = Fox.fxrgb_to_hsv(r, g, b) assert_in_delta(240.0, h, DELTA) assert_in_delta(1.0, s, DELTA) assert_in_delta(1.0, v, DELTA) end def test_fxversion assert_instance_of(String, Fox.fxversion) end def test_fxrubyversion assert_instance_of(String, Fox.fxrubyversion) end def test_fxTraceLevel old = Fox.fxTraceLevel Fox.fxTraceLevel = 10 assert_equal 10, Fox.fxTraceLevel Fox.fxTraceLevel = old end end