@@ -17,59 +17,59 @@ import (
1717
1818func TestCPUBalanceOnce (t * testing.T ) {
1919 tests := []struct {
20- cpus [][]float64
21- scoreOrder []int
22- balanceCount int
20+ cpus [][]float64
21+ scoreOrder []int
22+ balanced bool
2323 }{
2424 {
25- cpus : [][]float64 {{0 }, {0.2 }},
26- scoreOrder : []int {0 , 1 },
27- balanceCount : 0 ,
25+ cpus : [][]float64 {{0 }, {0.2 }},
26+ scoreOrder : []int {0 , 1 },
27+ balanced : true ,
2828 },
2929 {
30- cpus : [][]float64 {{1 , 0.5 , 0.25 }, {0 , 0.25 , 0.5 }, {0 , 0 , 0 }, {1 , 1 , 1 }},
31- scoreOrder : []int {2 , 0 , 1 , 3 },
32- balanceCount : 1 ,
30+ cpus : [][]float64 {{1 , 0.5 , 0.25 }, {0 , 0.25 , 0.5 }, {0 , 0 , 0 }, {1 , 1 , 1 }},
31+ scoreOrder : []int {2 , 0 , 1 , 3 },
32+ balanced : false ,
3333 },
3434 {
35- cpus : [][]float64 {{0.25 }, {}, {0.5 }},
36- scoreOrder : []int {0 , 2 , 1 },
37- balanceCount : 1 ,
35+ cpus : [][]float64 {{0.25 }, {}, {0.5 }},
36+ scoreOrder : []int {0 , 2 , 1 },
37+ balanced : false ,
3838 },
3939 {
40- cpus : [][]float64 {{0.95 , 0.92 , 0.93 , 0.94 , 0.92 , 0.94 }, {0.81 , 0.79 , 0.82 , 0.83 , 0.76 , 0.78 }},
41- scoreOrder : []int {1 , 0 },
42- balanceCount : 1 ,
40+ cpus : [][]float64 {{0.95 , 0.92 , 0.93 , 0.94 , 0.92 , 0.94 }, {0.81 , 0.79 , 0.82 , 0.83 , 0.76 , 0.78 }},
41+ scoreOrder : []int {1 , 0 },
42+ balanced : false ,
4343 },
4444 {
45- cpus : [][]float64 {{0.35 , 0.42 , 0.37 , 0.45 , 0.42 , 0.44 }, {0.56 , 0.62 , 0.58 , 0.57 , 0.59 , 0.63 }},
46- scoreOrder : []int {0 , 1 },
47- balanceCount : 1 ,
45+ cpus : [][]float64 {{0.35 , 0.42 , 0.37 , 0.45 , 0.42 , 0.44 }, {0.56 , 0.62 , 0.58 , 0.57 , 0.59 , 0.63 }},
46+ scoreOrder : []int {0 , 1 },
47+ balanced : false ,
4848 },
4949 {
50- cpus : [][]float64 {{0 , 0.1 , 0 , 0.1 }, {0.15 , 0.1 , 0.15 , 0.15 }, {0.1 , 0 , 0.1 , 0 }},
51- scoreOrder : []int {2 , 0 , 1 },
52- balanceCount : 0 ,
50+ cpus : [][]float64 {{0 , 0.1 , 0 , 0.1 }, {0.15 , 0.1 , 0.15 , 0.15 }, {0.1 , 0 , 0.1 , 0 }},
51+ scoreOrder : []int {2 , 0 , 1 },
52+ balanced : true ,
5353 },
5454 {
55- cpus : [][]float64 {{0.5 }, {}, {0.1 , 0.3 , 0.4 }},
56- scoreOrder : []int {2 , 0 , 1 },
57- balanceCount : 1 ,
55+ cpus : [][]float64 {{0.5 }, {}, {0.1 , 0.3 , 0.4 }},
56+ scoreOrder : []int {2 , 0 , 1 },
57+ balanced : false ,
5858 },
5959 {
60- cpus : [][]float64 {{1.0 }, {0.97 }},
61- scoreOrder : []int {1 , 0 },
62- balanceCount : 0 ,
60+ cpus : [][]float64 {{1.0 }, {0.97 }},
61+ scoreOrder : []int {1 , 0 },
62+ balanced : true ,
6363 },
6464 {
65- cpus : [][]float64 {{0.8 , 0.2 , 0.8 , 0.2 }, {0.3 , 0.5 , 0.3 , 0.5 }},
66- scoreOrder : []int {0 , 1 },
67- balanceCount : 0 ,
65+ cpus : [][]float64 {{0.8 , 0.2 , 0.8 , 0.2 }, {0.3 , 0.5 , 0.3 , 0.5 }},
66+ scoreOrder : []int {0 , 1 },
67+ balanced : true ,
6868 },
6969 {
70- cpus : [][]float64 {{1.0 }, {0.9 }, {0.8 }, {0.7 }, {0.6 }, {0.5 }, {0.4 }, {0.3 }, {0.1 }},
71- scoreOrder : []int {8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 },
72- balanceCount : 1 ,
70+ cpus : [][]float64 {{1.0 }, {0.9 }, {0.8 }, {0.7 }, {0.6 }, {0.5 }, {0.4 }, {0.3 }, {0.1 }},
71+ scoreOrder : []int {8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 },
72+ balanced : false ,
7373 },
7474 }
7575
@@ -99,7 +99,7 @@ func TestCPUBalanceOnce(t *testing.T) {
9999 require .Equal (t , test .scoreOrder , sortedIdx , "test index %d" , i )
100100 from , to := backends [len (backends )- 1 ], backends [0 ]
101101 balanceCount := fc .BalanceCount (from , to )
102- require .Equal (t , test .balanceCount , balanceCount , "test index %d" , i )
102+ require .Equal (t , test .balanced , balanceCount < 0.0001 , "test index %d" , i )
103103 }
104104}
105105
@@ -209,8 +209,9 @@ func TestCPUBalanceContinuously(t *testing.T) {
209209 if balanceCount == 0 {
210210 break
211211 }
212- backends [len (backends )- 1 ].BackendCtx .(* mockBackend ).connScore -= balanceCount
213- backends [0 ].BackendCtx .(* mockBackend ).connScore += balanceCount
212+ count := int (balanceCount + 0.9999 )
213+ backends [len (backends )- 1 ].BackendCtx .(* mockBackend ).connScore -= count
214+ backends [0 ].BackendCtx .(* mockBackend ).connScore += count
214215 }
215216 connScores := make ([]int , len (test .connScores ))
216217 for _ , backend := range backends {
0 commit comments