1
2
3
4
5
6
7
8
9 package palette
10
11 import (
12 "image/color"
13 "reflect"
14 "testing"
15 )
16
17 func TestRainbow(t *testing.T) {
18 if !reflect.DeepEqual(Rainbow(10, 0, 1, 1, 1, 1), palette{
19 color.NRGBA{R: 0xff, G: 0x00, B: 0x00, A: 0xff},
20 color.NRGBA{R: 0xff, G: 0xaa, B: 0x00, A: 0xff},
21 color.NRGBA{R: 0xaa, G: 0xff, B: 0x00, A: 0xff},
22 color.NRGBA{R: 0x00, G: 0xff, B: 0x00, A: 0xff},
23 color.NRGBA{R: 0x00, G: 0xff, B: 0xaa, A: 0xff},
24 color.NRGBA{R: 0x00, G: 0xaa, B: 0xff, A: 0xff},
25 color.NRGBA{R: 0x00, G: 0x00, B: 0xff, A: 0xff},
26 color.NRGBA{R: 0xaa, G: 0x00, B: 0xff, A: 0xff},
27 color.NRGBA{R: 0xff, G: 0x00, B: 0xaa, A: 0xff},
28 color.NRGBA{R: 0xff, G: 0x00, B: 0x00, A: 0xff},
29 }) {
30 t.Error("Rainbow does not agree with R rainbow")
31 }
32 }
33
34 func TestHeat(t *testing.T) {
35 if !reflect.DeepEqual(Heat(10, 1), palette{
36 color.NRGBA{R: 0xff, G: 0x00, B: 0x00, A: 0xff},
37 color.NRGBA{R: 0xff, G: 0x24, B: 0x00, A: 0xff},
38 color.NRGBA{R: 0xff, G: 0x49, B: 0x00, A: 0xff},
39 color.NRGBA{R: 0xff, G: 0x6d, B: 0x00, A: 0xff},
40 color.NRGBA{R: 0xff, G: 0x92, B: 0x00, A: 0xff},
41 color.NRGBA{R: 0xff, G: 0xb6, B: 0x00, A: 0xff},
42 color.NRGBA{R: 0xff, G: 0xdb, B: 0x00, A: 0xff},
43 color.NRGBA{R: 0xff, G: 0xff, B: 0x00, A: 0xff},
44 color.NRGBA{R: 0xff, G: 0xff, B: 0x3f, A: 0xff},
45 color.NRGBA{R: 0xff, G: 0xff, B: 0xbF, A: 0xff},
46 }) {
47 t.Error("Heat does not agree with R heat.colors (ish)")
48 }
49 }
50
51 func TestRadial(t *testing.T) {
52 rad := Radial(10, Cyan, Magenta, 1)
53 if !reflect.DeepEqual(rad, divergingPalette{
54 color.NRGBA{R: 0x7f, G: 0xff, B: 0xff, A: 0xff},
55 color.NRGBA{R: 0x99, G: 0xff, B: 0xff, A: 0xff},
56 color.NRGBA{R: 0xb3, G: 0xff, B: 0xff, A: 0xff},
57 color.NRGBA{R: 0xcc, G: 0xff, B: 0xff, A: 0xff},
58 color.NRGBA{R: 0xe6, G: 0xff, B: 0xff, A: 0xff},
59 color.NRGBA{R: 0xff, G: 0xe6, B: 0xff, A: 0xff},
60 color.NRGBA{R: 0xff, G: 0xcc, B: 0xff, A: 0xff},
61 color.NRGBA{R: 0xff, G: 0xb3, B: 0xff, A: 0xff},
62 color.NRGBA{R: 0xff, G: 0x99, B: 0xff, A: 0xff},
63 color.NRGBA{R: 0xff, G: 0x7f, B: 0xff, A: 0xff},
64 }) {
65 t.Error("Radial does not agree with R cm.colors (ish)")
66 }
67 if l, h := rad.CriticalIndex(); l != 4 || h != 5 {
68 t.Errorf("Radial(10...) gives unexpected critical index values: %d and %d", l, h)
69 }
70 }
71
View as plain text