2018-12-13 22:09:42 +00:00
|
|
|
/*
|
|
|
|
Unless explicitly stated otherwise all files in this repository are licensed
|
|
|
|
under the $license_for_repo License.
|
|
|
|
This product includes software developed at Datadog (https://www.datadoghq.com/).
|
|
|
|
Copyright 2018 Datadog, Inc.
|
|
|
|
*/
|
|
|
|
|
2018-12-06 17:24:59 +00:00
|
|
|
package python3
|
|
|
|
|
|
|
|
import (
|
|
|
|
"math"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestPyFloatCheck(t *testing.T) {
|
|
|
|
Py_Initialize()
|
|
|
|
|
|
|
|
pyFloat := PyFloat_FromDouble(345.)
|
|
|
|
assert.True(t, PyFloat_Check(pyFloat))
|
|
|
|
assert.True(t, PyFloat_CheckExact(pyFloat))
|
|
|
|
pyFloat.DecRef()
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestPyFloatFromAsDouble(t *testing.T) {
|
|
|
|
Py_Initialize()
|
|
|
|
v := 2354.
|
|
|
|
pyFloat := PyFloat_FromDouble(v)
|
|
|
|
assert.NotNil(t, pyFloat)
|
|
|
|
assert.Equal(t, v, PyFloat_AsDouble(pyFloat))
|
|
|
|
pyFloat.DecRef()
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestPyFloatFromAsString(t *testing.T) {
|
|
|
|
Py_Initialize()
|
|
|
|
pyString := PyUnicode_FromString("2354")
|
|
|
|
defer pyString.DecRef()
|
|
|
|
|
|
|
|
pyFloat := PyFloat_FromString(pyString)
|
|
|
|
assert.NotNil(t, pyFloat)
|
|
|
|
assert.Equal(t, 2354., PyFloat_AsDouble(pyFloat))
|
|
|
|
pyFloat.DecRef()
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestPyFloatMinMax(t *testing.T) {
|
|
|
|
Py_Initialize()
|
|
|
|
|
|
|
|
assert.Equal(t, math.MaxFloat64, PyFloat_GetMax())
|
|
|
|
|
|
|
|
assert.Equal(t, 2.2250738585072014e-308, PyFloat_GetMin())
|
2019-01-18 19:50:08 +00:00
|
|
|
|
|
|
|
PyFloat_ClearFreeList()
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestPyFloatInfo(t *testing.T) {
|
|
|
|
Py_Initialize()
|
|
|
|
|
|
|
|
assert.NotNil(t, PyFloat_GetInfo())
|
2018-12-06 17:24:59 +00:00
|
|
|
}
|