...
1
2
3
4
5
6
7 package ptrutil
8
9 import (
10 "testing"
11
12 "go.mongodb.org/mongo-driver/internal/assert"
13 )
14
15 func TestCompareInt64(t *testing.T) {
16 t.Parallel()
17
18 int64ToPtr := func(i64 int64) *int64 { return &i64 }
19 int64Ptr := int64ToPtr(1)
20
21 tests := []struct {
22 name string
23 ptr1, ptr2 *int64
24 want int
25 }{
26 {
27 name: "empty",
28 want: 0,
29 },
30 {
31 name: "ptr1 nil",
32 ptr2: int64ToPtr(1),
33 want: -2,
34 },
35 {
36 name: "ptr2 nil",
37 ptr1: int64ToPtr(1),
38 want: 2,
39 },
40 {
41 name: "ptr1 and ptr2 have same value, different address",
42 ptr1: int64ToPtr(1),
43 ptr2: int64ToPtr(1),
44 want: 0,
45 },
46 {
47 name: "ptr1 and ptr2 have the same address",
48 ptr1: int64Ptr,
49 ptr2: int64Ptr,
50 want: 0,
51 },
52 {
53 name: "ptr1 GT ptr2",
54 ptr1: int64ToPtr(1),
55 ptr2: int64ToPtr(0),
56 want: 1,
57 },
58 {
59 name: "ptr1 LT ptr2",
60 ptr1: int64ToPtr(0),
61 ptr2: int64ToPtr(1),
62 want: -1,
63 },
64 }
65
66 for _, test := range tests {
67 test := test
68
69 t.Run(test.name, func(t *testing.T) {
70 t.Parallel()
71
72 got := CompareInt64(test.ptr1, test.ptr2)
73 assert.Equal(t, test.want, got, "compareInt64() = %v, wanted %v", got, test.want)
74 })
75 }
76 }
77
View as plain text