- test iterator last on all structures with reversible iterators

pull/20/head
Emir Pasic 9 years ago
parent f8b0747409
commit 3d1014bf63

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

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

@ -406,7 +406,7 @@ func TestMapIteratorPrev(t *testing.T) {
}
}
func TestListIteratorReset(t *testing.T) {
func TestMapIteratorReset(t *testing.T) {
m := NewWithIntComparator()
it := m.Iterator()
it.Reset()
@ -422,6 +422,20 @@ func TestListIteratorReset(t *testing.T) {
}
}
func TestMapIteratorLast(t *testing.T) {
m := NewWithIntComparator()
m.Put(3, "c")
m.Put(1, "a")
m.Put(2, "b")
it := m.Iterator()
if actualValue, expectedValue := it.Last(), true; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
if key, value := it.Key(), it.Value(); key != 3 || value != "c" {
t.Errorf("Got %v,%v expected %v,%v", key, value, 3, "c")
}
}
func BenchmarkMap(b *testing.B) {
for i := 0; i < b.N; i++ {
m := NewWithIntComparator()

@ -278,7 +278,7 @@ func TestSetIteratorPrev(t *testing.T) {
}
}
func TestListIteratorReset(t *testing.T) {
func TestSetIteratorReset(t *testing.T) {
m := NewWithStringComparator()
it := m.Iterator()
it.Reset()
@ -292,6 +292,18 @@ func TestListIteratorReset(t *testing.T) {
}
}
func TestSetIteratorLast(t *testing.T) {
set := NewWithStringComparator()
set.Add("a", "b", "c")
it := set.Iterator()
if actualValue, expectedValue := it.Last(), true; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
if index, value := it.Index(), it.Value(); index != 3 || value != "c" {
t.Errorf("Got %v,%v expected %v,%v", index, value, 3, "c")
}
}
func BenchmarkSet(b *testing.B) {
for i := 0; i < b.N; i++ {
set := NewWithIntComparator()

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

@ -136,7 +136,7 @@ func TestStackIterator(t *testing.T) {
}
}
func TestListIteratorReset(t *testing.T) {
func TestStackIteratorReset(t *testing.T) {
stack := New()
it := stack.Iterator()
it.Reset()

@ -191,7 +191,7 @@ func TestBinaryHeapIteratorPrev(t *testing.T) {
}
}
func TestListIteratorReset(t *testing.T) {
func TestBinaryHeapIteratorReset(t *testing.T) {
tree := NewWithIntComparator()
it := tree.Iterator()
it.Reset()
@ -207,6 +207,23 @@ func TestListIteratorReset(t *testing.T) {
}
}
func TestBinaryHeapIteratorLast(t *testing.T) {
tree := NewWithIntComparator()
it := tree.Iterator()
if actualValue, expectedValue := it.Last(), false; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
tree.Push(2)
tree.Push(3)
tree.Push(1) // [1,3,2](2 swapped with 1, hence last)
if actualValue, expectedValue := it.Last(), true; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
if index, value := it.Index(), it.Value(); index != 2 || value != 2 {
t.Errorf("Got %v,%v expected %v,%v", index, value, 2, 2)
}
}
func BenchmarkBinaryHeap(b *testing.B) {
for i := 0; i < b.N; i++ {
heap := NewWithIntComparator()

@ -496,7 +496,7 @@ func TestRedBlackTreeIterator4(t *testing.T) {
}
}
func TestListIteratorReset(t *testing.T) {
func TestRedBlackTreeIteratorReset(t *testing.T) {
tree := NewWithIntComparator()
tree.Put(3, "c")
tree.Put(1, "a")
@ -512,6 +512,20 @@ func TestListIteratorReset(t *testing.T) {
}
}
func TestRedBlackTreeIteratorLast(t *testing.T) {
tree := NewWithIntComparator()
tree.Put(3, "c")
tree.Put(1, "a")
tree.Put(2, "b")
it := tree.Iterator()
if actualValue, expectedValue := it.Last(), true; actualValue != expectedValue {
t.Errorf("Got %v expected %v", actualValue, expectedValue)
}
if key, value := it.Key(), it.Value(); key != 3 || value != "c" {
t.Errorf("Got %v,%v expected %v,%v", key, value, 3, "c")
}
}
func BenchmarkRedBlackTree(b *testing.B) {
for i := 0; i < b.N; i++ {
tree := NewWithIntComparator()

Loading…
Cancel
Save