1package chroma 2 3import ( 4 "testing" 5 6 "github.com/alecthomas/assert" 7) 8 9func TestColourRGB(t *testing.T) { 10 colour := ParseColour("#8913af") 11 assert.Equal(t, uint8(0x89), colour.Red()) 12 assert.Equal(t, uint8(0x13), colour.Green()) 13 assert.Equal(t, uint8(0xaf), colour.Blue()) 14} 15 16func TestColourString(t *testing.T) { 17 assert.Equal(t, "#8913af", ParseColour("#8913af").String()) 18} 19 20func distance(a, b uint8) uint8 { 21 if a < b { 22 return b - a 23 } 24 return a - b 25} 26 27func TestColourBrighten(t *testing.T) { 28 actual := NewColour(128, 128, 128).Brighten(0.5) 29 // Closeish to what we expect is fine. 30 assert.True(t, distance(192, actual.Red()) <= 2) 31 assert.True(t, distance(192, actual.Blue()) <= 2) 32 assert.True(t, distance(192, actual.Green()) <= 2) 33 actual = NewColour(128, 128, 128).Brighten(-0.5) 34 assert.True(t, distance(65, actual.Red()) <= 2) 35 assert.True(t, distance(65, actual.Blue()) <= 2) 36 assert.True(t, distance(65, actual.Green()) <= 2) 37} 38 39func TestColourBrightess(t *testing.T) { 40 actual := NewColour(128, 128, 128).Brightness() 41 assert.True(t, distance(128, uint8(actual*255.0)) <= 2) 42} 43