Skip to content

Commit

Permalink
add UT for Diff function
Browse files Browse the repository at this point in the history
Signed-off-by: Thor-wl <13164644535@163.com>
  • Loading branch information
Thor-wl committed Sep 3, 2021
1 parent ee486dc commit fda68f6
Show file tree
Hide file tree
Showing 2 changed files with 179 additions and 7 deletions.
13 changes: 6 additions & 7 deletions pkg/scheduler/api/resource_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -443,23 +443,22 @@ func (r *Resource) Diff(rr *Resource, defaultValue DimensionDefaultValue) (*Reso
rightRes := rr.Clone()
increasedVal := EmptyResource()
decreasedVal := EmptyResource()

r.setDefaultValue(leftRes, rightRes, defaultValue)

if leftRes.MilliCPU > rightRes.MilliCPU {
increasedVal.MilliCPU += leftRes.MilliCPU - rightRes.MilliCPU
increasedVal.MilliCPU = leftRes.MilliCPU - rightRes.MilliCPU
} else {
decreasedVal.MilliCPU += rightRes.MilliCPU - leftRes.MilliCPU
decreasedVal.MilliCPU = rightRes.MilliCPU - leftRes.MilliCPU
}

if leftRes.Memory > rightRes.Memory {
increasedVal.Memory += leftRes.Memory - rightRes.Memory
increasedVal.Memory = leftRes.Memory - rightRes.Memory
} else {
decreasedVal.Memory += rightRes.Memory - leftRes.Memory
decreasedVal.Memory = rightRes.Memory - leftRes.Memory
}

increasedVal.ScalarResources = map[v1.ResourceName]float64{}
decreasedVal.ScalarResources = map[v1.ResourceName]float64{}
increasedVal.ScalarResources = make(map[v1.ResourceName]float64, 0)
decreasedVal.ScalarResources = make(map[v1.ResourceName]float64, 0)
for lName, lQuant := range leftRes.ScalarResources {
rQuant, _ := rightRes.ScalarResources[lName]
if lQuant == -1 {
Expand Down
173 changes: 173 additions & 0 deletions pkg/scheduler/api/resource_info_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,179 @@ func TestSubResource(t *testing.T) {
}
}

func TestDiff(t *testing.T) {
testsForDefaultZero := []struct {
resource1 *Resource
resource2 *Resource
expectedIncreased *Resource
expectedDecreased *Resource
}{
{
resource1: &Resource{},
resource2: &Resource{},
expectedIncreased: &Resource{
ScalarResources: make(map[v1.ResourceName]float64, 0),
},
expectedDecreased: &Resource{
ScalarResources: make(map[v1.ResourceName]float64, 0),
},
},
{
resource1: &Resource{
MilliCPU: 1000,
Memory: 2000,
},
resource2: &Resource{},
expectedIncreased: &Resource{
MilliCPU: 1000,
Memory: 2000,
ScalarResources: make(map[v1.ResourceName]float64, 0),
},
expectedDecreased: &Resource{
ScalarResources: make(map[v1.ResourceName]float64, 0),
},
},
{
resource1: &Resource{},
resource2: &Resource{
MilliCPU: 1000,
Memory: 2000,
},
expectedIncreased: &Resource{
ScalarResources: make(map[v1.ResourceName]float64, 0),
},
expectedDecreased: &Resource{
MilliCPU: 1000,
Memory: 2000,
ScalarResources: make(map[v1.ResourceName]float64, 0),
},
},
{
resource1: &Resource{
MilliCPU: 1000,
Memory: 2000,
ScalarResources: map[v1.ResourceName]float64{"scalar.test/scalar1": 1000},
},
resource2: &Resource{
MilliCPU: 2000,
Memory: 1000,
},
expectedIncreased: &Resource{
Memory: 1000,
ScalarResources: map[v1.ResourceName]float64{"scalar.test/scalar1": 1000},
},
expectedDecreased: &Resource{
MilliCPU: 1000,
ScalarResources: make(map[v1.ResourceName]float64, 0),
},
},
{
resource1: &Resource{
MilliCPU: 2000,
Memory: 1000,
},
resource2: &Resource{
MilliCPU: 1000,
Memory: 2000,
ScalarResources: map[v1.ResourceName]float64{"scalar.test/scalar1": 1000},
},
expectedIncreased: &Resource{
MilliCPU: 1000,
ScalarResources: make(map[v1.ResourceName]float64, 0),
},
expectedDecreased: &Resource{
Memory: 1000,
ScalarResources: map[v1.ResourceName]float64{"scalar.test/scalar1": 1000},
},
},
{
resource1: &Resource{
MilliCPU: 1000,
Memory: 2000,
ScalarResources: map[v1.ResourceName]float64{"scalar.test/scalar1": 3000},
},
resource2: &Resource{
MilliCPU: 2000,
Memory: 1000,
ScalarResources: map[v1.ResourceName]float64{"scalar.test/scalar1": 1000},
},
expectedIncreased: &Resource{
Memory: 1000,
ScalarResources: map[v1.ResourceName]float64{"scalar.test/scalar1": 2000},
},
expectedDecreased: &Resource{
MilliCPU: 1000,
ScalarResources: make(map[v1.ResourceName]float64, 0),
},
},
}

testsForDefaultInfinity := []struct {
resource1 *Resource
resource2 *Resource
expectedIncreased *Resource
expectedDecreased *Resource
}{
{
resource1: &Resource{
MilliCPU: 1000,
Memory: 2000,
ScalarResources: map[v1.ResourceName]float64{"scalar.test/scalar1": 1000},
},
resource2: &Resource{
MilliCPU: 2000,
Memory: 1000,
},
expectedIncreased: &Resource{
Memory: 1000,
ScalarResources: make(map[v1.ResourceName]float64, 0),
},
expectedDecreased: &Resource{
MilliCPU: 1000,
ScalarResources: map[v1.ResourceName]float64{"scalar.test/scalar1": -1},
},
},
{
resource1: &Resource{
MilliCPU: 2000,
Memory: 1000,
},
resource2: &Resource{
MilliCPU: 1000,
Memory: 2000,
ScalarResources: map[v1.ResourceName]float64{"scalar.test/scalar1": 1000},
},
expectedIncreased: &Resource{
MilliCPU: 1000,
ScalarResources: map[v1.ResourceName]float64{"scalar.test/scalar1": -1},
},
expectedDecreased: &Resource{
Memory: 1000,
ScalarResources: make(map[v1.ResourceName]float64, 0),
},
},
}

for _, test := range testsForDefaultZero {
increased, decreased := test.resource1.Diff(test.resource2, Zero)
if !reflect.DeepEqual(test.expectedIncreased, increased) {
t.Errorf("expected: %#v, got: %#v", test.expectedIncreased, increased)
}
if !reflect.DeepEqual(test.expectedDecreased, decreased) {
t.Errorf("expected: %#v, got: %#v", test.expectedDecreased, decreased)
}
}
for _, test := range testsForDefaultInfinity {
increased, decreased := test.resource1.Diff(test.resource2, Infinity)
if !reflect.DeepEqual(test.expectedIncreased, increased) {
t.Errorf("expected: %#v, got: %#v", test.expectedIncreased, increased)
}
if !reflect.DeepEqual(test.expectedDecreased, decreased) {
t.Errorf("expected: %#v, got: %#v", test.expectedDecreased, decreased)
}
}
}

func TestLess(t *testing.T) {
testsForDefaultZero := []struct {
resource1 *Resource
Expand Down

0 comments on commit fda68f6

Please sign in to comment.