diff --git a/stack.go b/stack.go index e14ae8e..328c8db 100644 --- a/stack.go +++ b/stack.go @@ -33,13 +33,13 @@ func (s *Stack) Push(val VarValue) { s.Values = s.Values[1:] } + if s.Max == nil { + s.Max = val + return + } + switch val.(type) { case int64: - if s.Max == nil { - s.Max = val - return - } - switch s.Max.(type) { case int64: if val.(int64) > s.Max.(int64) { @@ -51,11 +51,6 @@ func (s *Stack) Push(val VarValue) { } } case float64: - if s.Max == nil { - s.Max = val - return - } - switch s.Max.(type) { case int64: if val.(float64) > float64(s.Max.(int64)) { diff --git a/stack_test.go b/stack_test.go index a9d643a..b57f1d3 100644 --- a/stack_test.go +++ b/stack_test.go @@ -7,6 +7,13 @@ func TestPushWithFloatAndIntValue(t *testing.T) { s.Push(VarValue(int64(0.0))) // from service.go:guessValue s.Push(VarValue(5.0)) s.Push(VarValue(float64(15.0))) + if _, ok := s.Max.(float64); !ok { + t.Fatalf("Expected Max to be float64, but it's not") + } + s.Push(VarValue(int64(25.0))) + if _, ok := s.Max.(int64); !ok { + t.Fatalf("Expected Max to be int64, but it's not") + } } func TestStack(t *testing.T) {