示例#1
0
func TestStack(t *testing.T) {
	count := 1
	var aStack stack.Stack
	assertTrue(t, aStack.Len() == 0, "expected empty Stack", count) // 1
	count++
	assertTrue(t, aStack.Cap() == 0, "expected empty Stack", count) // 2
	count++
	assertTrue(t, aStack.IsEmpty(), "expected empty Stack", count) // 3
	count++
	value, err := aStack.Pop()
	assertTrue(t, value == nil, "expected nil value", count) // 4
	count++
	assertTrue(t, err != nil, "expected error", count) // 5
	count++
	value1, err := aStack.Top()
	assertTrue(t, value1 == nil, "expected nil value", count) // 6
	count++
	assertTrue(t, err != nil, "expected error", count) // 7
	count++
	aStack.Push(1)
	aStack.Push(2)
	aStack.Push("three")
	assertTrue(t, aStack.Len() == 3, "expected nonempty Stack", count) // 8
	count++
	assertTrue(t, aStack.IsEmpty() == false, "expected nonempty Stack",
		count) // 9
	count++
	value2, err := aStack.Pop()
	assertEqualString(t, value2.(string), "three", "unexpected text",
		count) // 10
	count++
	assertTrue(t, err == nil, "no error expected", count) // 11
	count++
	value3, err := aStack.Top()
	assertTrue(t, value3 == 2, "unexpected number", count) // 12
	count++
	assertTrue(t, err == nil, "no error expected", count) // 13
	count++
	aStack.Pop()
	assertTrue(t, aStack.Len() == 1, "expected nonempty Stack", count) //14
	count++
	assertTrue(t, aStack.IsEmpty() == false, "expected nonempty Stack",
		count) // 15
	count++
	value4, err := aStack.Pop()
	assertTrue(t, value4 == 1, "unexpected number", count) // 16
	count++
	assertTrue(t, err == nil, "no error expected", count) // 17
	count++
	assertTrue(t, aStack.Len() == 0, "expected empty Stack", count) // 18
	count++
	assertTrue(t, aStack.IsEmpty(), "expected empty Stack", count) // 19
	count++
}