Testing Hanoi Tower Algorithm Implementation in hello-algo
This test suite validates the implementation of the Hanoi Tower algorithm in Go, focusing on the recursive divide-and-conquer solution. It verifies the correct movement of disks between three towers while maintaining the fundamental rules of the puzzle.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
krahets/hello-algo
codes/go/chapter_divide_and_conquer/hanota_test.go
// File: hanota_test.go
// Created Time: 2023-07-21
// Author: hongyun-robot ([email protected])
package chapter_divide_and_conquer
import (
"container/list"
"fmt"
"testing"
. "github.com/krahets/hello-algo/pkg"
)
func TestHanota(t *testing.T) {
// 列表尾部是柱子顶部
A := list.New()
for i := 5; i > 0; i-- {
A.PushBack(i)
}
B := list.New()
C := list.New()
fmt.Println("初始状态下:")
fmt.Print("A = ")
PrintList(A)
fmt.Print("B = ")
PrintList(B)
fmt.Print("C = ")
PrintList(C)
solveHanota(A, B, C)
fmt.Println("圆盘移动完成后:")
fmt.Print("A = ")
PrintList(A)
fmt.Print("B = ")
PrintList(B)
fmt.Print("C = ")
PrintList(C)
}