From 9d61b358347d440ee3be9ed5861e04055ef4f60e Mon Sep 17 00:00:00 2001 From: Tentone Date: Sun, 7 Jul 2024 14:45:47 +0100 Subject: [PATCH] TEst --- hierarchy_id.go | 23 +++++++++++++++++------ hierarchy_id_test.go | 2 +- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/hierarchy_id.go b/hierarchy_id.go index eda9872..05b6bfc 100644 --- a/hierarchy_id.go +++ b/hierarchy_id.go @@ -15,15 +15,16 @@ type HierarchyId = []int // // SQL server uses a custom binary format for hierarchyid. func Parse(data []byte) (HierarchyId, error) { - var levels []int = make([]int, 0) + var levels []int = []int{} if len(data) == 0 { return levels, nil } var bin = BinaryString(data) - var values = []int{} - for true { + // fmt.Println(bin) + + for { // Find pattern that fits the binary data var pattern, err = TestPatterns(bin) if err != nil { @@ -38,12 +39,12 @@ func Parse(data []byte) (HierarchyId, error) { return nil, err } - fmt.Println(bin, pattern, value) + fmt.Println(data, bin, pattern, value) // Add value to the list of values - values = append(values, int(value)) + levels = append(levels, int(value)) - // Remove data from binary string + // Remove already read data from binary string bin = bin[0 : len(bin)-len(pattern)] } @@ -125,6 +126,7 @@ func TestPatterns(bin string) (string, error) { func BinaryString(data []byte) string { var str = "" + // Convert each byte to binary for _, b := range data { for i := 7; i >= 0; i-- { if b&(1<= 0; i-- { + // if str[i] == '0' { + // str = str[0:i] + // } else { + // break + // } + // } + return str } diff --git a/hierarchy_id_test.go b/hierarchy_id_test.go index 1f9e4b1..f9faa29 100644 --- a/hierarchy_id_test.go +++ b/hierarchy_id_test.go @@ -34,7 +34,7 @@ func TestParse(t *testing.T) { // {[]int{-2}, "3E80"}, // {[]int{-1}, "3F80"}, {[]int{0}, "48"}, - // {[]int{1}, "58"}, + {[]int{1}, "58"}, // {[]int{2}, "68"}, // {[]int{3}, "78"}, // {[]int{4}, "84"},