package utils_test import ( "testing" "git.sapphic.engineer/roleypoly/v4/utils" "github.com/stretchr/testify/assert" ) const ( WCAGAA float64 = 3 ) func TestIntToRgb(t *testing.T) { r, g, b := utils.IntToRgb(0x123456) assert.Equal(t, uint8(0x12), r, "red") assert.Equal(t, uint8(0x34), g, "green") assert.Equal(t, uint8(0x56), b, "blue") } func TestBrighten(t *testing.T) { r, g, b := utils.Brighten(0, 0, 0, 0.1) assert.Equal(t, uint8(0x19), r) assert.Equal(t, uint8(0x19), g) assert.Equal(t, uint8(0x19), b) r, g, b = utils.Brighten(0x88, 0x88, 0x88, -0.1) assert.Equal(t, uint8(0x88-0x19-1), r) assert.Equal(t, uint8(0x88-0x19-1), g) assert.Equal(t, uint8(0x88-0x19-1), b) assert.GreaterOrEqual(t, utils.WCAGRatio( utils.Luminance(0x88, 0x88, 0x88), utils.Luminance(r, g, b), ), WCAGAA) } func TestRgbToString(t *testing.T) { assert.Equal(t, "#acab69", utils.RgbToString(0xac, 0xab, 0x69)) } func TestAltColor(t *testing.T) { r, g, b := utils.AltColor(0xa2, 0xc2, 0x42) assert.Equal(t, uint8(0xf2), r, "red") assert.Equal(t, uint8(0xef), g, "green") assert.Equal(t, uint8(0xef), b, "blue") assert.GreaterOrEqual(t, utils.WCAGRatio( utils.Luminance(0xa2, 0xc2, 0x42), utils.Luminance(r, g, b), ), WCAGAA) r, g, b = utils.AltColor(0xa2, 0x15, 0x18) assert.Equal(t, uint8(0xff), r, "red2") assert.Equal(t, uint8(0xed), g, "green2") assert.Equal(t, uint8(0xf0), b, "blue2") assert.GreaterOrEqual(t, utils.WCAGRatio( utils.Luminance(0xa2, 0x15, 0x18), utils.Luminance(r, g, b), ), WCAGAA) }