v4/utils/colors_test.go
2025-04-07 00:00:52 -07:00

60 lines
1.5 KiB
Go

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)
}