Skip to content

Commit a64eb80

Browse files
committed
add PyOS_string_to_double test
1 parent fe884e7 commit a64eb80

File tree

1 file changed

+19
-0
lines changed
  • graalpython/com.oracle.graal.python.test/src/tests/cpyext

1 file changed

+19
-0
lines changed

graalpython/com.oracle.graal.python.test/src/tests/cpyext/test_float.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,3 +185,22 @@ def test_PyOS_double_to_string(self):
185185
assert tester.PyOS_double_to_string_test(174.426353) == '174.426353'
186186
assert tester.PyOS_double_to_string_test(151.074362) == '151.074362'
187187
assert tester.PyOS_double_to_string_test(190.08) == '190.080000'
188+
189+
def test_PyOS_string_to_double(self):
190+
TestPyOS_String_To_Double = CPyExtType("TestPyOS_String_To_Double",
191+
'''
192+
static PyObject* testPyOS_Str_to_D(PyObject* self, PyObject *str) {
193+
char *endptr;
194+
const char *s = (char *) PyUnicode_AsUTF8(str);
195+
double ret = PyOS_string_to_double(s, &endptr, NULL);
196+
if (PyErr_Occurred()) {
197+
return NULL;
198+
}
199+
return PyFloat_FromDouble(ret);
200+
}
201+
''',
202+
tp_methods='{"PyOS_string_to_double_test", (PyCFunction)testPyOS_Str_to_D, METH_O, ""}',
203+
)
204+
tester = TestPyOS_String_To_Double()
205+
assert tester.PyOS_string_to_double_test('5') == float(5)
206+
assert tester.PyOS_string_to_double_test('150.604459') == float(150.604459)

0 commit comments

Comments
 (0)