Beispiel #1
0
 def testActualiseFloat(self, mapper, call_later):
     fptr = Marshal.AllocHGlobal(Marshal.SizeOf(PyFloatObject))
     call_later(lambda: Marshal.FreeHGlobal(fptr))
     CPyMarshal.WritePtrField(fptr, PyFloatObject, "ob_type",
                              mapper.PyFloat_Type)
     CPyMarshal.WriteIntField(fptr, PyFloatObject, "ob_refcnt", 1)
     CPyMarshal.WriteDoubleField(fptr, PyFloatObject, "ob_fval", 1.234)
     self.assertEquals(mapper.Retrieve(fptr), 1.234)
Beispiel #2
0
    def testWriteDoubleField(self):
        data = Marshal.AllocHGlobal(Marshal.SizeOf(PyFloatObject()))
        CPyMarshal.Zero(data, Marshal.SizeOf(PyFloatObject()))

        CPyMarshal.WriteDoubleField(data, PyFloatObject, "ob_fval", 7.6e-5)
        dataStruct = PtrToStructure(data, PyFloatObject)
        self.assertEquals(dataStruct.ob_fval, 7.6e-5)

        Marshal.FreeHGlobal(data)
Beispiel #3
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)