package test import ( "fmt" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/entity" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/collector" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/strategy" "testing" ) func TestReplication(t *testing.T) { parts := []entity.Participant{ {Name: "test1", Participant_id: 1}, {Name: "test2", Participant_id: 2}, {Name: "test3", Participant_id: 3}, } rsc := []*collector.ResourceStats{ { ClusterId: "1", Name: "test1", }, { ClusterId: "2", Name: "test2"}, { ClusterId: "3", Name: "test3"}, } tests := []struct { name string replica int32 ps []entity.Participant res []*collector.ResourceStats }{ { name: "test1", replica: 1, ps: parts, }, { name: "test2", replica: 2, ps: parts, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var clusterIds []string for _, stats := range rsc { clusterIds = append(clusterIds, stats.ClusterId) } repl := strategy.NewReplicationStrategy(clusterIds, 0) schedule, err := repl.Schedule() if err != nil { return } for _, cluster := range schedule { fmt.Println(cluster) } }) } } func TestStaticWeight(t *testing.T) { parts := map[string]int32{ "test1": 6, "test2": 5, "test3": 2, } tests := []struct { name string replica int32 ps map[string]int32 }{ { name: "test1", replica: 1, ps: parts, }, { name: "test2", replica: 5, ps: parts, }, { name: "test2", replica: 6, ps: parts, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { repl := strategy.NewStaticWeightStrategy(tt.ps, tt.replica) schedule, err := repl.Schedule() if err != nil { return } for _, cluster := range schedule { fmt.Println(cluster) } }) } }