1package main
2
3import (
4 "image"
5 "image/color"
6 "testing"
7
8 "github.com/stretchr/testify/require"
9)
10
11func TestScaleFrameUsesNearestNeighbor(t *testing.T) {
12 source := image.NewRGBA(image.Rect(0, 0, 1, 1))
13 source.SetRGBA(0, 0, color.RGBA{22, 62, 143, 255})
14
15 scaled, err := scaleFrame(source, 2)
16 require.NoError(t, err)
17 require.Equal(t, image.Rect(0, 0, 2, 2), scaled.Bounds())
18 for y := 0; y < 2; y++ {
19 for x := 0; x < 2; x++ {
20 require.Equal(t, color.RGBA{22, 62, 143, 255}, scaled.RGBAAt(x, y))
21 }
22 }
23}
24
25func TestScaleFrameRejectsInvalidScale(t *testing.T) {
26 _, err := scaleFrame(image.NewRGBA(image.Rect(0, 0, 1, 1)), 0)
27 require.Error(t, err)
28}
29
30func TestScaleFrameRejectsMaximumIntScale(t *testing.T) {
31 _, err := scaleFrame(image.NewRGBA(image.Rect(0, 0, 1, 1)), int(^uint(0)>>1))
32 require.EqualError(t, err, "scaled frame exceeds 67108864 pixels")
33}