1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package history
- import (
- "testing"
- )
- func TestCurrent(t *testing.T) {
- h := History[int]{}
- h.Add(1)
- current := h.Current()
- if current != 1 {
- t.Fatalf("current should be 1 but is %v", current)
- }
- }
- func TestBackForward(t *testing.T) {
- h := History[int]{}
- h.Add(1)
- h.Add(2)
- h.Back()
- back := h.Current()
- h.Forward()
- forward := h.Current()
- if back != 1 || forward != 2 {
- t.Fatalf("back should be 1 not %v, forward should be 2 not %v", back, forward)
- }
- }
- func TestIsEmpty(t *testing.T) {
- h := History[int]{}
- if !h.IsEmpty() {
- t.Fatalf("history should report empty when empty")
- }
- h.Add(1)
- if h.IsEmpty() {
- t.Fatalf("history is purporting to be empty when it shouldn't be")
- }
- }
- func TestBackSaturation(t *testing.T) {
- h := History[int]{}
- h.Add(1)
- h.Add(2)
- h.Back()
- h.Back()
- h.Back()
- current := h.Current()
- if current != 1 {
- t.Fatalf("current should be 1 not %v after back saturation", current)
- }
- }
- func TestForwardSaturation(t *testing.T) {
- h := History[int]{}
- h.Add(1)
- h.Add(2)
- h.Forward()
- h.Forward()
- current := h.Current()
- if current != 2 {
- t.Fatalf("current should be 2 not %v after forward saturation", current)
- }
- }
- func TestForwardDestruction(t *testing.T) {
- h := History[int]{}
- h.Add(1)
- h.Add(2)
- h.Back()
- h.Add(3)
- h.Forward()
- h.Forward()
- current := h.Current()
- if current != 3 {
- t.Fatalf("current should be 3 not %v after forward destruction", current)
- }
- }
|