cpy3/integer_test.go

138 lines
3.1 KiB
Go

/*
Unless explicitly stated otherwise all files in this repository are licensed
under the MIT License.
This product includes software developed at Datadog (https://www.datadoghq.com/).
Copyright 2018 Datadog, Inc.
*/
package python3
import (
"strconv"
"testing"
"github.com/stretchr/testify/assert"
)
func TestPyLongCheck(t *testing.T) {
Py_Initialize()
pyLong := PyLong_FromGoInt(345)
assert.True(t, PyLong_Check(pyLong))
assert.True(t, PyLong_CheckExact(pyLong))
pyLong.DecRef()
}
func TestPyLongFromAsLong(t *testing.T) {
Py_Initialize()
v := 2354
pyLong := PyLong_FromLong(v)
assert.NotNil(t, pyLong)
assert.Equal(t, v, PyLong_AsLong(pyLong))
pyLong.DecRef()
}
func TestPyLongFromAsUnsignedLong(t *testing.T) {
Py_Initialize()
v := uint(2354)
pyLong := PyLong_FromUnsignedLong(v)
assert.NotNil(t, pyLong)
assert.Equal(t, v, PyLong_AsUnsignedLong(pyLong))
pyLong.DecRef()
}
func TestPyLongFromAsLongLong(t *testing.T) {
Py_Initialize()
v := int64(2354)
pyLong := PyLong_FromLongLong(v)
assert.NotNil(t, pyLong)
assert.Equal(t, v, PyLong_AsLongLong(pyLong))
pyLong.DecRef()
}
func TestPyLongFromAsUnsignedLongLong(t *testing.T) {
Py_Initialize()
v := uint64(2354)
pyLong := PyLong_FromUnsignedLongLong(v)
assert.NotNil(t, pyLong)
assert.Equal(t, v, PyLong_AsUnsignedLongLong(pyLong))
pyLong.DecRef()
}
func TestPyLongFromAsDouble(t *testing.T) {
Py_Initialize()
v := float64(2354.0)
pyLong := PyLong_FromDouble(v)
assert.NotNil(t, pyLong)
assert.Equal(t, v, PyLong_AsDouble(pyLong))
pyLong.DecRef()
}
func TestPyLongFromAsGoFloat64(t *testing.T) {
Py_Initialize()
v := float64(2354.0)
pyLong := PyLong_FromGoFloat64(v)
assert.NotNil(t, pyLong)
assert.Equal(t, v, PyLong_AsDouble(pyLong))
pyLong.DecRef()
}
func TestPyLongFromAsString(t *testing.T) {
Py_Initialize()
v := 2354
s := strconv.Itoa(v)
pyLong := PyLong_FromString(s, 10)
assert.NotNil(t, pyLong)
assert.Equal(t, v, PyLong_AsLong(pyLong))
pyLong.DecRef()
}
func TestPyLongFromAsUnicodeObject(t *testing.T) {
Py_Initialize()
v := 2354
s := strconv.Itoa(v)
pyUnicode := PyUnicode_FromString(s)
assert.NotNil(t, pyUnicode)
pyLong := PyLong_FromUnicodeObject(pyUnicode, 10)
assert.NotNil(t, pyLong)
assert.Equal(t, v, PyLong_AsLong(pyLong))
pyLong.DecRef()
pyUnicode.DecRef()
}
func TestPyLongFromAsGoInt(t *testing.T) {
Py_Initialize()
v := 2354
pyLong := PyLong_FromGoInt(v)
assert.NotNil(t, pyLong)
assert.Equal(t, v, PyLong_AsLong(pyLong))
pyLong.DecRef()
}
func TestPyLongFromAsGoUint(t *testing.T) {
Py_Initialize()
v := uint(2354)
pyLong := PyLong_FromGoUint(v)
assert.NotNil(t, pyLong)
assert.Equal(t, v, PyLong_AsUnsignedLong(pyLong))
pyLong.DecRef()
}
func TestPyLongFromAsGoInt64(t *testing.T) {
Py_Initialize()
v := int64(2354)
pyLong := PyLong_FromGoInt64(v)
assert.NotNil(t, pyLong)
assert.Equal(t, v, PyLong_AsLongLong(pyLong))
pyLong.DecRef()
}
func TestPyLongFromAsGoUint64(t *testing.T) {
Py_Initialize()
v := uint64(2354)
pyLong := PyLong_FromGoUint64(v)
assert.NotNil(t, pyLong)
assert.Equal(t, v, PyLong_AsUnsignedLongLong(pyLong))
pyLong.DecRef()
}