Исправляю каттер
continuous-integration/drone/push Build is failing Details

main
Андрей Иванов 2024-10-08 14:37:33 +03:00
parent 5e2fe127a8
commit 154fb2c7b2
3 changed files with 28 additions and 24 deletions

View File

@ -15,7 +15,7 @@ func DecomposeTree(tree map[string]*WeightedNode, threshold uint16) ([]SubTree,
// Ищем ветку подходящую под лимит // Ищем ветку подходящую под лимит
branchID, weight := GetBranch(tree, index, threshold) branchID, weight := GetBranch(tree, index, threshold)
// Опаределяем путь к найденной ветке // Определяем путь к найденной ветке
path, err := GetNodePath(tree, branchID) path, err := GetNodePath(tree, branchID)
if err != nil { if err != nil {
return nil, errors.Wrap(err, "[GetNodePath] ") return nil, errors.Wrap(err, "[GetNodePath] ")
@ -110,17 +110,17 @@ func CutBranch(tree map[string]*WeightedNode, nodeID string) *Node {
// Удаление ссылки на ноду из родительской ноды // Удаление ссылки на ноду из родительской ноды
if tree[nodeID].parent != nil { if tree[nodeID].parent != nil {
parentID := tree[nodeID].parent.ID parentID := tree[nodeID].parent.ID
for k, v := range tree[parentID].children { k := slices.IndexFunc(tree[parentID].children, func(node *Node) bool {
if v.ID == nodeID { return node.ID == nodeID
tree[parentID].children = append(tree[parentID].children[:k], tree[parentID].children[k+1:]...) })
break if k > 0 {
} tree[parentID].children = append(tree[parentID].children[:k], tree[parentID].children[k+1:]...)
} }
for k, v := range tree[parentID].node.Children { m := slices.IndexFunc(tree[parentID].node.Children, func(node *Node) bool {
if v.ID == nodeID { return node.ID == nodeID
tree[parentID].node.Children = append(tree[parentID].node.Children[:k], tree[parentID].node.Children[k+1:]...) })
break if m > 0 {
} tree[parentID].children = append(tree[parentID].node.Children[:m], tree[parentID].node.Children[m+1:]...)
} }
} }

View File

@ -1,8 +1,7 @@
package main package main
import ( import (
"fmt" "testing"
"testing"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
@ -23,7 +22,6 @@ func TestDecomposeTree(t *testing.T){
}{ }{
t.Run(name, func(t *testing.T) { t.Run(name, func(t *testing.T) {
result, err := DecomposeTree(tt.inputTree, tt.inputThreshold) result, err := DecomposeTree(tt.inputTree, tt.inputThreshold)
fmt.Printf("%+v\nn",result )
if tt.err == "" { if tt.err == "" {
require.NoError(t, err) require.NoError(t, err)
require.ElementsMatch(t, result, tt.outputParts) require.ElementsMatch(t, result, tt.outputParts)

View File

@ -63,12 +63,12 @@ func getSmallTree() testDecomposingData {
Children: []*Node{ Children: []*Node{
{ {
ID: "1.1.3.1", ID: "1.1.3.1",
Name: "folder3", Name: "folder1",
Children: []*Node{}, Children: []*Node{},
}, },
{ {
ID: "1.1.3.2", ID: "1.1.3.2",
Name: "folder3", Name: "folder2",
Children: []*Node{}, Children: []*Node{},
}, },
{ {
@ -280,12 +280,12 @@ func getSmallTree() testDecomposingData {
Children: []*Node{ Children: []*Node{
{ {
ID: "1.1.3.1", ID: "1.1.3.1",
Name: "folder3", Name: "folder1",
Children: []*Node{}, Children: []*Node{},
}, },
{ {
ID: "1.1.3.2", ID: "1.1.3.2",
Name: "folder3", Name: "folder2",
Children: []*Node{}, Children: []*Node{},
}, },
{ {
@ -307,11 +307,13 @@ func getSmallTree() testDecomposingData {
Name: "folder1", Name: "folder1",
Children: []*Node{}, Children: []*Node{},
}, },
{ID: "1.2.1.2", {
ID: "1.2.1.2",
Name: "folder2", Name: "folder2",
Children: []*Node{}, Children: []*Node{},
}, },
{ID: "1.2.1.3", {
ID: "1.2.1.3",
Name: "folder3", Name: "folder3",
Children: []*Node{}, Children: []*Node{},
}, },
@ -377,11 +379,13 @@ func getSmallTree() testDecomposingData {
Name: "folder1", Name: "folder1",
Children: []*Node{}, Children: []*Node{},
}, },
{ID: "1.3.1.2", {
ID: "1.3.1.2",
Name: "folder2", Name: "folder2",
Children: []*Node{}, Children: []*Node{},
}, },
{ID: "1.3.1.3", {
ID: "1.3.1.3",
Name: "folder3", Name: "folder3",
Children: []*Node{}, Children: []*Node{},
}, },
@ -423,11 +427,13 @@ func getSmallTree() testDecomposingData {
Name: "folder1", Name: "folder1",
Children: []*Node{}, Children: []*Node{},
}, },
{ID: "1.3.3.2", {
ID: "1.3.3.2",
Name: "folder2", Name: "folder2",
Children: []*Node{}, Children: []*Node{},
}, },
{ID: "1.3.3.3", {
ID: "1.3.3.3",
Name: "folder3", Name: "folder3",
Children: []*Node{}, Children: []*Node{},
}, },