Testing Tower of Hanoi Algorithm Implementation in hello-algo
This test suite implements and verifies the Tower of Hanoi algorithm implementation in Go, focusing on the recursive solution approach and state management. The test validates 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
zh-hant/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)
}