liyujie
2025-08-28 d9927380ed7c8366f762049be9f3fee225860833
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Copyright 2017 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
 
package color
 
import (
   "testing"
   "testing/quick"
)
 
func TestSqDiff(t *testing.T) {
   // canonical sqDiff implementation
   orig := func(x, y uint32) uint32 {
       var d uint32
       if x > y {
           d = uint32(x - y)
       } else {
           d = uint32(y - x)
       }
       return (d * d) >> 2
   }
   testCases := []uint32{
       0,
       1,
       2,
       0x0fffd,
       0x0fffe,
       0x0ffff,
       0x10000,
       0x10001,
       0x10002,
       0xfffffffd,
       0xfffffffe,
       0xffffffff,
   }
   for _, x := range testCases {
       for _, y := range testCases {
           if got, want := sqDiff(x, y), orig(x, y); got != want {
               t.Fatalf("sqDiff(%#x, %#x): got %d, want %d", x, y, got, want)
           }
       }
   }
   if err := quick.CheckEqual(orig, sqDiff, &quick.Config{MaxCountScale: 10}); err != nil {
       t.Fatal(err)
   }
}