43 lines
913 B
Go
43 lines
913 B
Go
package core
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/benbjohnson/clock"
|
|
"github.com/jinzhu/now"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestMeterEnergyMeterTotal(t *testing.T) {
|
|
clock := clock.NewMock()
|
|
clock.Set(now.BeginningOfDay())
|
|
|
|
me := &meterEnergy{clock: clock}
|
|
|
|
me.AddMeterTotal(10)
|
|
assert.Equal(t, 0.0, me.AccumulatedEnergy())
|
|
me.AddMeterTotal(11)
|
|
assert.Equal(t, 1.0, me.AccumulatedEnergy())
|
|
me.AddMeterTotal(11)
|
|
assert.Equal(t, 1.0, me.AccumulatedEnergy())
|
|
}
|
|
|
|
func TestMeterEnergyAddPower(t *testing.T) {
|
|
clock := clock.NewMock()
|
|
clock.Set(now.BeginningOfDay())
|
|
|
|
me := &meterEnergy{clock: clock}
|
|
|
|
clock.Add(60 * time.Minute)
|
|
me.AddPower(1e3)
|
|
assert.Equal(t, 0.0, me.AccumulatedEnergy())
|
|
|
|
clock.Add(60 * time.Minute)
|
|
me.AddPower(1e3)
|
|
assert.Equal(t, 1.0, me.AccumulatedEnergy())
|
|
|
|
clock.Add(30 * time.Minute)
|
|
me.AddPower(1e3)
|
|
assert.Equal(t, 1.5, me.AccumulatedEnergy())
|
|
}
|