Skip to content

Commit 6cc86e6

Browse files
authored
Merge pull request #32 from arduino/listcompare
Added PathList.Equals method
2 parents 92dc364 + 04443f9 commit 6cc86e6

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

list.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,20 @@ func (p *PathList) AsStrings() []string {
5757
return res
5858
}
5959

60+
// Equals returns true if the current PathList is equal to the
61+
// PathList passed as argument
62+
func (p *PathList) Equals(other PathList) bool {
63+
if len(*p) != len(other) {
64+
return false
65+
}
66+
for i, path := range *p {
67+
if !path.EqualsTo(other[i]) {
68+
return false
69+
}
70+
}
71+
return true
72+
}
73+
6074
// FilterDirs remove all entries except directories
6175
func (p *PathList) FilterDirs() {
6276
res := (*p)[:0]

list_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,15 @@ func TestListConstructors(t *testing.T) {
5151
require.True(t, list3.ContainsEquivalentTo(New("d/../a")))
5252

5353
list4 := list3.Clone()
54+
require.True(t, list3.Equals(list4))
5455
require.Equal(t, "[a b c]", fmt.Sprintf("%s", list4))
5556
list4.AddIfMissing(New("d"))
5657
require.Equal(t, "[a b c d]", fmt.Sprintf("%s", list4))
5758
list4.AddIfMissing(New("b"))
5859
require.Equal(t, "[a b c d]", fmt.Sprintf("%s", list4))
5960
list4.AddAllMissing(NewPathList("a", "e", "i", "o", "u"))
61+
require.False(t, list3.Equals(list4))
62+
require.False(t, list4.Equals(list3))
6063
require.Equal(t, "[a b c d e i o u]", fmt.Sprintf("%s", list4))
6164
}
6265

0 commit comments

Comments
 (0)