Skip to content

Commit

Permalink
TEst
Browse files Browse the repository at this point in the history
  • Loading branch information
tentone committed Jul 7, 2024
1 parent 0fd3d86 commit 9d61b35
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 7 deletions.
23 changes: 17 additions & 6 deletions hierarchy_id.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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)]
}

Expand Down Expand Up @@ -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<<uint(i)) != 0 {
Expand All @@ -135,6 +137,15 @@ func BinaryString(data []byte) string {
}
}

// Remove all trailing zeros
// for i := len(str) - 1; i >= 0; i-- {
// if str[i] == '0' {
// str = str[0:i]
// } else {
// break
// }
// }

return str
}

Expand Down
2 changes: 1 addition & 1 deletion hierarchy_id_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"},
Expand Down

0 comments on commit 9d61b35

Please sign in to comment.