- test iterator first on all iterable data structures

pull/20/head
Emir Pasic 8 years ago
parent bdfeab4912
commit cbc23a5b79

@ -393,6 +393,21 @@ func TestListIteratorReset(t *testing.T) {
}
}
func TestListIteratorFirst(t *testing.T) {
list := New()
it := list.Iterator()
if actualValue, expectedValue := it.First(), false; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
list.Add("a", "b", "c")
if actualValue, expectedValue := it.First(), true; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
if index, value := it.Index(), it.Value(); index != 0 || value != "a" {
t.Errorf("Got %v,%v expected %v,%v", index, value, 0, "a")
}
}
func TestListIteratorLast(t *testing.T) {
list := New()
it := list.Iterator()

@ -393,6 +393,21 @@ func TestListIteratorReset(t *testing.T) {
}
}
func TestListIteratorFirst(t *testing.T) {
list := New()
it := list.Iterator()
if actualValue, expectedValue := it.First(), false; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
list.Add("a", "b", "c")
if actualValue, expectedValue := it.First(), true; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
if index, value := it.Index(), it.Value(); index != 0 || value != "a" {
t.Errorf("Got %v,%v expected %v,%v", index, value, 0, "a")
}
}
func TestListIteratorLast(t *testing.T) {
list := New()
it := list.Iterator()

@ -352,6 +352,21 @@ func TestListIteratorReset(t *testing.T) {
}
}
func TestListIteratorFirst(t *testing.T) {
list := New()
it := list.Iterator()
if actualValue, expectedValue := it.First(), false; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
list.Add("a", "b", "c")
if actualValue, expectedValue := it.First(), true; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
if index, value := it.Index(), it.Value(); index != 0 || value != "a" {
t.Errorf("Got %v,%v expected %v,%v", index, value, 0, "a")
}
}
func BenchmarkList(b *testing.B) {
for i := 0; i < b.N; i++ {
list := New()

@ -422,6 +422,20 @@ func TestMapIteratorReset(t *testing.T) {
}
}
func TestMapIteratorFirst(t *testing.T) {
m := NewWithIntComparator()
m.Put(3, "c")
m.Put(1, "a")
m.Put(2, "b")
it := m.Iterator()
if actualValue, expectedValue := it.First(), true; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
if key, value := it.Key(), it.Value(); key != 1 || value != "a" {
t.Errorf("Got %v,%v expected %v,%v", key, value, 1, "a")
}
}
func TestMapIteratorLast(t *testing.T) {
m := NewWithIntComparator()
m.Put(3, "c")

@ -292,6 +292,18 @@ func TestSetIteratorReset(t *testing.T) {
}
}
func TestSetIteratorFirst(t *testing.T) {
set := NewWithStringComparator()
set.Add("a", "b", "c")
it := set.Iterator()
if actualValue, expectedValue := it.First(), true; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
if index, value := it.Index(), it.Value(); index != 0 || value != "a" {
t.Errorf("Got %v,%v expected %v,%v", index, value, 0, "a")
}
}
func TestSetIteratorLast(t *testing.T) {
set := NewWithStringComparator()
set.Add("a", "b", "c")

@ -192,6 +192,23 @@ func TestStackIteratorReset(t *testing.T) {
}
}
func TestStackIteratorFirst(t *testing.T) {
stack := New()
it := stack.Iterator()
if actualValue, expectedValue := it.First(), false; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
stack.Push("a")
stack.Push("b")
stack.Push("c")
if actualValue, expectedValue := it.First(), true; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
if index, value := it.Index(), it.Value(); index != 0 || value != "c" {
t.Errorf("Got %v,%v expected %v,%v", index, value, 0, "c")
}
}
func TestStackIteratorLast(t *testing.T) {
stack := New()
it := stack.Iterator()

@ -152,6 +152,23 @@ func TestStackIteratorReset(t *testing.T) {
}
}
func TestStackIteratorFirst(t *testing.T) {
stack := New()
it := stack.Iterator()
if actualValue, expectedValue := it.First(), false; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
stack.Push("a")
stack.Push("b")
stack.Push("c")
if actualValue, expectedValue := it.First(), true; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
if index, value := it.Index(), it.Value(); index != 0 || value != "c" {
t.Errorf("Got %v,%v expected %v,%v", index, value, 0, "c")
}
}
func BenchmarkStack(b *testing.B) {
for i := 0; i < b.N; i++ {
stack := New()

@ -192,12 +192,12 @@ func TestBinaryHeapIteratorPrev(t *testing.T) {
}
func TestBinaryHeapIteratorReset(t *testing.T) {
tree := NewWithIntComparator()
it := tree.Iterator()
heap := NewWithIntComparator()
it := heap.Iterator()
it.Reset()
tree.Push(2)
tree.Push(3)
tree.Push(1)
heap.Push(2)
heap.Push(3)
heap.Push(1)
for it.Next() {
}
it.Reset()
@ -207,6 +207,23 @@ func TestBinaryHeapIteratorReset(t *testing.T) {
}
}
func TestStackIteratorFirst(t *testing.T) {
heap := NewWithIntComparator()
it := heap.Iterator()
if actualValue, expectedValue := it.First(), false; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
heap.Push(3) // [3]
heap.Push(2) // [2,3]
heap.Push(1) // [1,3,2](2 swapped with 1, hence last)
if actualValue, expectedValue := it.First(), true; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
if index, value := it.Index(), it.Value(); index != 0 || value != 1 {
t.Errorf("Got %v,%v expected %v,%v", index, value, 0, 1)
}
}
func TestBinaryHeapIteratorLast(t *testing.T) {
tree := NewWithIntComparator()
it := tree.Iterator()

@ -512,6 +512,20 @@ func TestRedBlackTreeIteratorReset(t *testing.T) {
}
}
func TestRedBlackTreeIteratorFirst(t *testing.T) {
tree := NewWithIntComparator()
tree.Put(3, "c")
tree.Put(1, "a")
tree.Put(2, "b")
it := tree.Iterator()
if actualValue, expectedValue := it.First(), true; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
if key, value := it.Key(), it.Value(); key != 1 || value != "a" {
t.Errorf("Got %v,%v expected %v,%v", key, value, 1, "a")
}
}
func TestRedBlackTreeIteratorLast(t *testing.T) {
tree := NewWithIntComparator()
tree.Put(3, "c")

Loading…
Cancel
Save