test: add test for range

This commit is contained in:
vicanso 2022-02-06 10:50:36 +08:00
parent 54f0195c53
commit f053b49440
2 changed files with 33 additions and 4 deletions

View file

@ -38,7 +38,10 @@ func NewRange(min, max float64, divideCount int) Range {
r := math.Abs(max - min) r := math.Abs(max - min)
// 最小单位计算 // 最小单位计算
unit := 5 unit := 2
if r > 10 {
unit = 5
}
if r > 100 { if r > 100 {
unit = 20 unit = 20
} }
@ -65,8 +68,7 @@ func (r *Range) getHeight(value float64) int {
} }
func (r *Range) getRestHeight(value float64) int { func (r *Range) getRestHeight(value float64) int {
v := 1 - (value-r.Min)/(r.Max-r.Min) return r.Size - r.getHeight(value)
return int(v * float64(r.Size))
} }
func (r *Range) GetRange(index int) (float64, float64) { func (r *Range) GetRange(index int) (float64, float64) {

View file

@ -33,7 +33,7 @@ func TestRange(t *testing.T) {
r := NewRange(0, 8, 6) r := NewRange(0, 8, 6)
assert.Equal(0.0, r.Min) assert.Equal(0.0, r.Min)
assert.Equal(30.0, r.Max) assert.Equal(12.0, r.Max)
r = NewRange(0, 12, 6) r = NewRange(0, 12, 6)
assert.Equal(0.0, r.Min) assert.Equal(0.0, r.Min)
@ -47,3 +47,30 @@ func TestRange(t *testing.T) {
assert.Equal(0.0, r.Min) assert.Equal(0.0, r.Min)
assert.Equal(480.0, r.Max) assert.Equal(480.0, r.Max)
} }
func TestRangeHeightWidth(t *testing.T) {
assert := assert.New(t)
r := NewRange(0, 8, 6)
r.Size = 100
assert.Equal(33, r.getHeight(4))
assert.Equal(67, r.getRestHeight(4))
assert.Equal(33, r.getWidth(4))
r.Boundary = true
assert.Equal(41, r.getWidth(4))
}
func TestRangeGetRange(t *testing.T) {
assert := assert.New(t)
r := NewRange(0, 8, 6)
r.Size = 120
f1, f2 := r.GetRange(0)
assert.Equal(0.0, f1)
assert.Equal(20.0, f2)
f1, f2 = r.GetRange(2)
assert.Equal(40.0, f1)
assert.Equal(60.0, f2)
}