|
@@ -0,0 +1,42 @@
|
|
|
+package imaging
|
|
|
+
|
|
|
+import (
|
|
|
+ "image"
|
|
|
+ "image/color"
|
|
|
+ "testing"
|
|
|
+)
|
|
|
+
|
|
|
+func TestHistogram(t *testing.T) {
|
|
|
+ b := image.Rectangle{image.Point{0, 0}, image.Point{2, 2}}
|
|
|
+
|
|
|
+ i1 := image.NewRGBA(b)
|
|
|
+ i1.Set(0, 0, image.Black)
|
|
|
+ i1.Set(1, 0, image.White)
|
|
|
+ i1.Set(1, 1, image.White)
|
|
|
+ i1.Set(0, 1, color.Gray{123})
|
|
|
+
|
|
|
+ h := Histogram(i1)
|
|
|
+ if h[0] != 0.25 || h[123] != 0.25 || h[255] != 0.5 {
|
|
|
+ t.Errorf("Incorrect histogram for image i1")
|
|
|
+ }
|
|
|
+
|
|
|
+ i2 := image.NewRGBA(b)
|
|
|
+ i2.Set(0, 0, color.Gray{51})
|
|
|
+ i2.Set(0, 1, color.Gray{14})
|
|
|
+ i2.Set(1, 0, color.Gray{14})
|
|
|
+
|
|
|
+ h = Histogram(i2)
|
|
|
+ if h[14] != 0.5 || h[51] != 0.25 || h[0] != 0.25 {
|
|
|
+ t.Errorf("Incorrect histogram for image i2")
|
|
|
+ }
|
|
|
+
|
|
|
+ b = image.Rectangle{image.Point{0, 0}, image.Point{0, 0}}
|
|
|
+ i3 := image.NewRGBA(b)
|
|
|
+ h = Histogram(i3)
|
|
|
+ for _, val := range h {
|
|
|
+ if val != 0 {
|
|
|
+ t.Errorf("Histogram for an empty image should be a zero histogram.")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|