Merge branch 'hhatto-master'

This commit is contained in:
Ivan Daniluk 2015-09-25 12:39:43 -04:00
commit b4e096514e
2 changed files with 37 additions and 4 deletions

View File

@ -33,16 +33,35 @@ func (s *Stack) Push(val VarValue) {
s.Values = s.Values[1:] s.Values = s.Values[1:]
} }
if s.Max == nil {
s.Max = val
return
}
switch val.(type) { switch val.(type) {
case int64: case int64:
if s.Max == nil || val.(int64) > s.Max.(int64) { switch s.Max.(type) {
case int64:
if val.(int64) > s.Max.(int64) {
s.Max = val s.Max = val
} }
case float64: case float64:
if s.Max == nil || val.(float64) > s.Max.(float64) { if float64(val.(int64)) > s.Max.(float64) {
s.Max = val s.Max = val
} }
} }
case float64:
switch s.Max.(type) {
case int64:
if val.(float64) > float64(s.Max.(int64)) {
s.Max = val
}
case float64:
if val.(float64) > s.Max.(float64) {
s.Max = val
}
}
}
} }
// Front returns front value. // Front returns front value.

View File

@ -2,6 +2,20 @@ package main
import "testing" import "testing"
func TestPushWithFloatAndIntValue(t *testing.T) {
s := NewStack()
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) { func TestStack(t *testing.T) {
size := 10 size := 10
s := NewStackWithSize(size) s := NewStackWithSize(size)