mirror of
https://github.com/emirpasic/gods
synced 2024-11-16 12:12:59 +00:00
Add IndexOf method to SinglyLinkedList
This commit is contained in:
parent
f246a54621
commit
e709a4b5ea
@ -154,6 +154,18 @@ func (list *List) Values() []interface{} {
|
||||
return values
|
||||
}
|
||||
|
||||
//IndexOf returns index of provided element
|
||||
func (list *List) IndexOf(value interface{}) int{
|
||||
if list.size == 0 {
|
||||
return -1
|
||||
}
|
||||
for index, element := range list.Values() {
|
||||
if element == value {
|
||||
return index
|
||||
}
|
||||
}
|
||||
return -1
|
||||
}
|
||||
// Empty returns true if list does not contain any elements.
|
||||
func (list *List) Empty() bool {
|
||||
return list.size == 0
|
||||
|
@ -133,6 +133,33 @@ func TestListValues(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestListIndexOf(t *testing.T) {
|
||||
list := New()
|
||||
|
||||
expectedIndex := -1
|
||||
if index := list.IndexOf("a"); index != expectedIndex{
|
||||
t.Errorf("Got %v expected %v",index,expectedIndex)
|
||||
}
|
||||
|
||||
list.Add("a")
|
||||
list.Add("b", "c")
|
||||
|
||||
expectedIndex = 0
|
||||
if index := list.IndexOf("a"); index != expectedIndex{
|
||||
t.Errorf("Got %v expected %v",index,expectedIndex)
|
||||
}
|
||||
|
||||
expectedIndex = 1
|
||||
if index := list.IndexOf("b"); index != expectedIndex{
|
||||
t.Errorf("Got %v expected %v",index,expectedIndex)
|
||||
}
|
||||
|
||||
expectedIndex = 2
|
||||
if index := list.IndexOf("c"); index != expectedIndex{
|
||||
t.Errorf("Got %v expected %v",index,expectedIndex)
|
||||
}
|
||||
}
|
||||
|
||||
func TestListInsert(t *testing.T) {
|
||||
list := New()
|
||||
list.Insert(0, "b", "c")
|
||||
|
Loading…
Reference in New Issue
Block a user