Refactor code, added new checkXu test cases(9 latterns)

This commit is contained in:
2024-04-12 23:45:45 +00:00
parent e341a048fc
commit 4b10dbb65d
11 changed files with 212 additions and 176 deletions
+52
View File
@@ -0,0 +1,52 @@
package pattern
import (
"encoding/json"
"log"
"os"
)
type PatternDivision struct {
Ke int
Shun int
Dui int
Gang int
}
type Fan struct {
Id int
Name string
Pattern PatternDivision
ExcludeIds []int
Value int
}
func FansEncoder(fans []Fan) ([]byte, error) {
return json.MarshalIndent(fans, "", " ")
}
func FansDecoder(bytedata []byte) ([]Fan, error) {
var fans []Fan
err := json.Unmarshal(bytedata, &fans)
return fans, err
}
func FansToFile(fans []Fan, filepath string) error {
jsonBytes, err := FansEncoder(fans)
if err != nil {
log.Fatalf("Can't encode fan xing: %v", err)
return err
}
err = os.WriteFile(filepath, jsonBytes, 0644)
if err != nil {
log.Fatalf("Failed to write fan xing into a file(%s): %v", filepath, err)
return err
}
return nil
}
func DivisionHelperOnNumbers(tiles [9]int) {
}
func HandPatternDivide() {
}
+38
View File
@@ -0,0 +1,38 @@
package pattern
import (
"fmt"
"log"
"testing"
)
func TestFanEncoder(t *testing.T) {
testFans := []Fan{
{Id: 1, Name: "大四喜", Pattern: PatternDivision{Ke: 4, Shun: 0, Dui: 1, Gang: 0}, ExcludeIds: []int{12}, Value: 88},
{Id: 2, Name: "七对", Pattern: PatternDivision{Ke: 0, Shun: 0, Dui: 7, Gang: 0}, ExcludeIds: []int{12}, Value: 24},
}
data, err := FansEncoder(testFans)
if err != nil {
log.Fatalf("Can't encode fan xing: %v", err)
return
}
fmt.Println(data)
}
func TestFanDecoder(t *testing.T) {
testFans := []Fan{
{Id: 1, Name: "大四喜", Pattern: PatternDivision{Ke: 4, Shun: 0, Dui: 1, Gang: 0}, ExcludeIds: []int{12}, Value: 88},
{Id: 2, Name: "七对", Pattern: PatternDivision{Ke: 0, Shun: 0, Dui: 7, Gang: 0}, ExcludeIds: []int{12}, Value: 24},
}
jsonBytes, err := FansEncoder(testFans)
if err != nil {
log.Fatalf("Can't encode fan xing, cancel decoding test: %v", err)
return
}
fans, err := FansDecoder(jsonBytes)
if err != nil {
log.Fatalf("Failed decoding byte stream of fan xing: %v", err)
return
}
fmt.Println(fans)
}
+13
View File
@@ -0,0 +1,13 @@
package pattern
type pattern struct {
}
type shun struct {
}
type ke struct {
}
type jiang struct {
}