github.com/MontFerret/ferret@v0.18.0/pkg/stdlib/math/sin_test.go (about) 1 package math_test 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/MontFerret/ferret/pkg/runtime/values" 8 "github.com/MontFerret/ferret/pkg/stdlib/math" 9 10 . "github.com/smartystreets/goconvey/convey" 11 ) 12 13 func TestSin(t *testing.T) { 14 Convey("Should return sin value", t, func() { 15 out, err := math.Sin(context.Background(), values.NewFloat(3.141592653589783/2)) 16 17 So(err, ShouldBeNil) 18 So(out, ShouldEqual, 1) 19 20 out, err = math.Sin(context.Background(), values.NewInt(0)) 21 22 So(err, ShouldBeNil) 23 So(out, ShouldEqual, 0) 24 25 out, err = math.Sin(context.Background(), values.NewFloat(-3.141592653589783/2)) 26 27 So(err, ShouldBeNil) 28 So(out, ShouldEqual, -1) 29 30 v, _ := math.Radians(context.Background(), values.NewInt(270)) 31 32 out, err = math.Sin(context.Background(), v) 33 34 So(err, ShouldBeNil) 35 So(out, ShouldEqual, -1) 36 }) 37 }