Skip to content

Commit c5d4cd0

Browse files
committed
Use slices.Equal() to compare slices
1 parent da09114 commit c5d4cd0

3 files changed

Lines changed: 10 additions & 50 deletions

File tree

exercises/concept/parsing-log-files/parsing_log_files_test.go

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package parsinglogfiles
22

3-
import "testing"
3+
import (
4+
"slices"
5+
"testing"
6+
)
47

58
func TestIsValidLine(t *testing.T) {
69
tests := []struct {
@@ -91,7 +94,7 @@ func TestSplitLogLine(t *testing.T) {
9194
t.Run(tt.description, func(t *testing.T) {
9295
got := SplitLogLine(tt.text)
9396
want := tt.expected
94-
if !stringSliceEqual(want, got) {
97+
if !slices.Equal(want, got) {
9598
t.Fatalf("expected: %v, got: %v", want, got)
9699
}
97100
})
@@ -183,7 +186,7 @@ func TestTagWithUserName(t *testing.T) {
183186
t.Run(tt.description, func(t *testing.T) {
184187
got := TagWithUserName(tt.lines)
185188
want := tt.expected
186-
if !stringSliceEqual(want, got) {
189+
if !slices.Equal(want, got) {
187190
for i := range got {
188191
if want[i] != got[i] {
189192
t.Fatalf("expected: %v, got: %v", want[i], got[i])
@@ -194,18 +197,3 @@ func TestTagWithUserName(t *testing.T) {
194197
})
195198
}
196199
}
197-
198-
func stringSliceEqual(a, b []string) bool {
199-
if len(a) != len(b) {
200-
return false
201-
}
202-
if len(a) == 0 {
203-
return true
204-
}
205-
for i := range a {
206-
if a[i] != b[i] {
207-
return false
208-
}
209-
}
210-
return true
211-
}

exercises/practice/pov/pov_test.go

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package pov
22

33
import (
4+
"slices"
45
"sort"
56
"testing"
67
)
@@ -238,7 +239,7 @@ func TestPathTo(t *testing.T) {
238239
t.Run(tt.description, func(t *testing.T) {
239240
got := tt.tree.PathTo(tt.from, tt.to)
240241
want := tt.expected
241-
if !stringSliceEqual(want, got) {
242+
if !slices.Equal(want, got) {
242243
t.Fatalf("expected: %v, got: %v", want, got)
243244
}
244245
})
@@ -317,18 +318,3 @@ func treeSliceEqual(trs1, trs2 []*Tree) bool {
317318
}
318319
return true
319320
}
320-
321-
func stringSliceEqual(a, b []string) bool {
322-
if len(a) != len(b) {
323-
return false
324-
}
325-
if len(a) == 0 {
326-
return true
327-
}
328-
for i := 0; i < len(a); i++ {
329-
if a[i] != b[i] {
330-
return false
331-
}
332-
}
333-
return true
334-
}

exercises/practice/tree-building/tree_building_test.go

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package tree
44
import (
55
"fmt"
66
"math/rand"
7+
"slices"
78
"testing"
89
)
910

@@ -365,21 +366,6 @@ func nodeEqual(node1, node2 *Node) bool {
365366
case node1 != nil && node2 == nil:
366367
return false
367368
default:
368-
return node1.ID == node2.ID && nodeSliceEqual(node1.Children, node2.Children)
369+
return node1.ID == node2.ID && slices.EqualFunc(node1.Children, node2.Children, nodeEqual)
369370
}
370371
}
371-
372-
func nodeSliceEqual(nodes1, nodes2 []*Node) bool {
373-
if len(nodes1) == 0 && len(nodes2) == 0 {
374-
return true
375-
}
376-
if len(nodes1) != len(nodes2) {
377-
return false
378-
}
379-
for i := range nodes1 {
380-
if !nodeEqual(nodes1[i], nodes2[i]) {
381-
return false
382-
}
383-
}
384-
return true
385-
}

0 commit comments

Comments
 (0)