Пример #1
0
 def testStoreComplex(self, mapper, _):
     for value in (0 + 0j, 1 + 3.3e33j, -3.3e-33 - 1j):
         ptr = mapper.Store(value)
         self.assertEquals(mapper.Retrieve(ptr), value,
                           "stored/retrieved wrong")
         self.assertEquals(
             CPyMarshal.ReadIntField(ptr, PyComplexObject, "ob_refcnt"), 1)
         self.assertEquals(
             CPyMarshal.ReadPtrField(ptr, PyComplexObject, "ob_type"),
             mapper.PyComplex_Type)
         cpxptr = CPyMarshal.GetField(ptr, PyComplexObject, "cval")
         self.assertEquals(
             CPyMarshal.ReadDoubleField(cpxptr, Py_complex, "real"),
             value.real)
         self.assertEquals(
             CPyMarshal.ReadDoubleField(cpxptr, Py_complex, "imag"),
             value.imag)
         mapper.DecRef(ptr)
Пример #2
0
    def testReadDoubleField(self):
        data = Marshal.AllocHGlobal(Marshal.SizeOf(PyFloatObject()))
        CPyMarshal.Zero(data, Marshal.SizeOf(PyFloatObject()))

        CPyMarshal.WriteDoubleField(data, PyFloatObject, "ob_fval", -1.2e34)
        self.assertEquals(
            CPyMarshal.ReadDoubleField(data, PyFloatObject, "ob_fval"),
            -1.2e34)

        Marshal.FreeHGlobal(data)
Пример #3
0
 def testPyFloat_FromDouble(self, mapper, _):
     for value in (0.0, 3.3e33, -3.3e-33):
         ptr = mapper.PyFloat_FromDouble(value)
         self.assertEquals(mapper.Retrieve(ptr), value,
                           "stored/retrieved wrong")
         self.assertEquals(
             CPyMarshal.ReadIntField(ptr, PyFloatObject, "ob_refcnt"), 1)
         self.assertEquals(
             CPyMarshal.ReadPtrField(ptr, PyFloatObject, "ob_type"),
             mapper.PyFloat_Type)
         self.assertEquals(
             CPyMarshal.ReadDoubleField(ptr, PyFloatObject, "ob_fval"),
             value)
         mapper.DecRef(ptr)