from PyObjCTools.TestSupport import *
import objc
from objc import YES, NO, nil
from PyObjCTest.fnd import NSPriorDayDesignations
import sys

from PyObjCTest import ctests

if sys.version_info[0] == 3:
    unicode = str

# Several types are encoded slightly different on 32-bit vs. 64-bit
# - NSPoint and NSRect: the actual type is different
# - @encode(long) is _C_LNG_LNG instead of _C_LNG on 64-bit builds
if sys.maxsize > 2 ** 32:
    NSPoint_tp = b'{_NSPoint=dd}'
    NSRect_tp = b'{_NSRect={_NSPoint=dd}{_NSSize=dd}}'
    long_tp = b'q'
    ulong_tp = b'Q'

else:
    NSPoint_tp = b'{_NSPoint=ff}'
    NSRect_tp = b'{_NSRect={_NSPoint=ff}{_NSSize=ff}}'
    long_tp = b'l'
    ulong_tp = b'L'


#
# NSInvocation in MacOS X 10.2 doesn't like some struct definition, it
# garbles the contents of those structs. These unittests disable NSInvocation
# tests that fail because of this problem.
#
# ctests.CheckNSInvoke checks if NSInvocation has this problem, it does so
# in pure Objective-C code and will therefore not mask problems with the
# bridge.
#
try:
    ctests.CheckNSInvoke()
    nsinvoke_ok = 1
except AssertionError:
    nsinvoke_ok = 0

NSArray = objc.lookUpClass('NSArray')

# First make sure that the pass-by-reference methods have the correct signature
setSignature = objc.setSignatureForSelector

# FIXME
import sys

# Note: @encode(unsigned char*) gives the wrong result at least upto 9A337a,
# hence the 'type=b' annotations in several lines
for method, argmeta in [
        ( b"BOOLInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"BOOLInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"BOOLOutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"NSPointInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"NSPointInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"NSPointOutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"NSRectInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"NSRectInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"NSRectOutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"boolInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"boolInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"boolOutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"charInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"charInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"charOutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"charPtrInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"charPtrInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"charPtrOutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"doubleInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"doubleInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"doubleOutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"floatInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"floatInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"floatOutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"idInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"idInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"idOutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"signedintInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"signedintInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"signedintOutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"signedlongInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"signedlongInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"signedlongOutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"signedlonglongInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"signedlonglongInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"signedlonglongOutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"signedshortInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"signedshortInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"signedshortOutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"structTestStruct1InArg:", { 2: dict(type_modifier=b'n') }),
        ( b"structTestStruct1InOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"structTestStruct1OutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"structTestStruct2InArg:", { 2: dict(type_modifier=b'n') }),
        ( b"structTestStruct2InOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"structTestStruct2OutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"structTestStruct3InArg:", { 2: dict(type_modifier=b'n') }),
        ( b"structTestStruct3InOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"structTestStruct3OutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"structTestStruct4InArg:", { 2: dict(type_modifier=b'n') }),
        ( b"structTestStruct4InOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"structTestStruct4OutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"structTestStruct5InArg:", { 2: dict(type_modifier=b'n') }),
        ( b"structTestStruct5InOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"structTestStruct5OutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"unsignedcharInArg:", { 2: dict(type_modifier=b'n', type=b'^C') }),
        ( b"unsignedcharInOutArg:", { 2: dict(type_modifier=b'N', type=b'^C') }),
        ( b"unsignedcharOutArg:", { 2: dict(type_modifier=b'o', type=b'^C') }),
        ( b"unsignedintInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"unsignedintInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"unsignedintOutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"unsignedlongInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"unsignedlongInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"unsignedlongOutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"unsignedlonglongInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"unsignedlonglongInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"unsignedlonglongOutArg:", { 2: dict(type_modifier=b'o') }),
        ( b"unsignedshortInArg:", { 2: dict(type_modifier=b'n') }),
        ( b"unsignedshortInOutArg:", { 2: dict(type_modifier=b'N') }),
        ( b"unsignedshortOutArg:", { 2: dict(type_modifier=b'o') }),
    ]:

    objc.registerMetaDataForSelector(b"PyObjC_TestClass1", method,
                                dict(arguments=argmeta))


for method, argmeta in [
        ( b"callBOOLInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callBOOLInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callBOOLOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callNSPointInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callNSPointInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callNSPointOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callNSRectInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callNSRectInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callNSRectOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callboolInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callboolInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callboolOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callcharInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callcharInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callcharOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callcharPtrInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callcharPtrInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callcharPtrOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"calldoubleInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"calldoubleInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"calldoubleOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callfloatInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callfloatInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callfloatOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callidInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callidInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callidOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callsignedintInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callsignedintInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callsignedintOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callsignedlongInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callsignedlongInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callsignedlongOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callsignedlonglongInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callsignedlonglongInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callsignedlonglongOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callsignedshortInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callsignedshortInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callsignedshortOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callstructTestStruct1InArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callstructTestStruct1InOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callstructTestStruct1OutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callstructTestStruct2InArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callstructTestStruct2InOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callstructTestStruct2OutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callstructTestStruct3InArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callstructTestStruct3InOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callstructTestStruct3OutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callstructTestStruct4InArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callstructTestStruct4InOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callstructTestStruct4OutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callstructTestStruct5InArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callstructTestStruct5InOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callstructTestStruct5OutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callunsignedcharInArg:of:", { 2: dict(type_modifier=b'n', type=b'^C') }),
        ( b"callunsignedcharInOutArg:of:", { 2: dict(type_modifier=b'N', type=b'^C') }),
        ( b"callunsignedcharOutArg:of:", { 2: dict(type_modifier=b'o', type=b'^C') }),
        ( b"callunsignedintInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callunsignedintInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callunsignedintOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callunsignedlongInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callunsignedlongInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callunsignedlongOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callunsignedlonglongInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callunsignedlonglongInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callunsignedlonglongOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"callunsignedshortInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"callunsignedshortInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"callunsignedshortOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokeBOOLInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokeBOOLInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokeBOOLOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokeNSPointInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokeNSPointInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokeNSPointOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokeNSRectInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokeNSRectInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokeNSRectOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokeboolInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokeboolInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokeboolOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokecharInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokecharInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokecharOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokecharPtrInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokecharPtrInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokecharPtrOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokedoubleInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokedoubleInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokedoubleOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokefloatInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokefloatInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokefloatOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokeidInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokeidInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokeidOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokesignedintInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokesignedintInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokesignedintOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokesignedlongInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokesignedlongInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokesignedlongOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokesignedlonglongInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokesignedlonglongInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokesignedlonglongOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokesignedshortInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokesignedshortInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokesignedshortOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokestructTestStruct1InArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokestructTestStruct1InOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokestructTestStruct1OutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokestructTestStruct2InArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokestructTestStruct2InOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokestructTestStruct2OutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokestructTestStruct3InArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokestructTestStruct3InOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokestructTestStruct3OutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokestructTestStruct4InArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokestructTestStruct4InOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokestructTestStruct4OutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokestructTestStruct5InArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokestructTestStruct5InOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokestructTestStruct5OutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokeunsignedcharInArg:of:", { 2: dict(type_modifier=b'n', type=b'^C') }),
        ( b"invokeunsignedcharInOutArg:of:", { 2: dict(type_modifier=b'N', type=b'^C') }),
        ( b"invokeunsignedcharOutArg:of:", { 2: dict(type_modifier=b'o', type=b'^C') }),
        ( b"invokeunsignedintInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokeunsignedintInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokeunsignedintOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokeunsignedlongInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokeunsignedlongInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokeunsignedlongOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokeunsignedlonglongInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokeunsignedlonglongInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokeunsignedlonglongOutArg:of:", { 2: dict(type_modifier=b'o') }),
        ( b"invokeunsignedshortInArg:of:", { 2: dict(type_modifier=b'n') }),
        ( b"invokeunsignedshortInOutArg:of:", { 2: dict(type_modifier=b'N') }),
        ( b"invokeunsignedshortOutArg:of:", { 2: dict(type_modifier=b'o') }),
    ]:

    objc.registerMetaDataForSelector(b"PyObjC_TestClass2", method,
                                dict(arguments=argmeta))


from PyObjCTest.testbndl2 import *

class PyToObjC (TestCase):
    # Test calling Objective-C from Python
    # Simple returns from class methods

    def testClsboolResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.boolClsMethod(), YES)
        self.assertEqual(PyObjC_TestClass1.boolClsMethod(), NO)


    def testClsBOOLResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.BOOLClsMethod(), YES)
        self.assertEqual(PyObjC_TestClass1.BOOLClsMethod(), NO)


    def testClscharResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.charClsMethod(), -128)
        self.assertEqual(PyObjC_TestClass1.charClsMethod(), 0)
        self.assertEqual(PyObjC_TestClass1.charClsMethod(), 127)


    def testClssignedshortResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.signedshortClsMethod(), -(1<<14))
        self.assertEqual(PyObjC_TestClass1.signedshortClsMethod(), -42)
        self.assertEqual(PyObjC_TestClass1.signedshortClsMethod(), 0)
        self.assertEqual(PyObjC_TestClass1.signedshortClsMethod(), 42)
        self.assertEqual(PyObjC_TestClass1.signedshortClsMethod(), 1 << 14)


    def testClssignedintResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.signedintClsMethod(), -(1<<30))
        self.assertEqual(PyObjC_TestClass1.signedintClsMethod(), -42)
        self.assertEqual(PyObjC_TestClass1.signedintClsMethod(), 0)
        self.assertEqual(PyObjC_TestClass1.signedintClsMethod(), 42)
        self.assertEqual(PyObjC_TestClass1.signedintClsMethod(), 1 << 30)


    def testClssignedlongResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.signedlongClsMethod(), -(1<<30))
        self.assertEqual(PyObjC_TestClass1.signedlongClsMethod(), -42)
        self.assertEqual(PyObjC_TestClass1.signedlongClsMethod(), 0)
        self.assertEqual(PyObjC_TestClass1.signedlongClsMethod(), 42)
        self.assertEqual(PyObjC_TestClass1.signedlongClsMethod(), 1 << 30)


    def testClssignedlonglongResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.signedlonglongClsMethod(), -(1 << 60))
        self.assertEqual(PyObjC_TestClass1.signedlonglongClsMethod(), -42)
        self.assertEqual(PyObjC_TestClass1.signedlonglongClsMethod(), 0)
        self.assertEqual(PyObjC_TestClass1.signedlonglongClsMethod(), 42)
        self.assertEqual(PyObjC_TestClass1.signedlonglongClsMethod(), 1 << 60)


    def testClsunsignedcharResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.unsignedcharClsMethod(), 0)
        self.assertEqual(PyObjC_TestClass1.unsignedcharClsMethod(), 128)
        self.assertEqual(PyObjC_TestClass1.unsignedcharClsMethod(), 255)


    def testClsunsignedshortResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.unsignedshortClsMethod(), 0)
        self.assertEqual(PyObjC_TestClass1.unsignedshortClsMethod(), 42)
        self.assertEqual(PyObjC_TestClass1.unsignedshortClsMethod(), 1<<14)


    def testClsunsignedintResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.unsignedintClsMethod(), 0)
        self.assertEqual(PyObjC_TestClass1.unsignedintClsMethod(), 42)
        self.assertEqual(PyObjC_TestClass1.unsignedintClsMethod(), 1 << 30)


    def testClsunsignedlongResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.unsignedlongClsMethod(), 0)
        self.assertEqual(PyObjC_TestClass1.unsignedlongClsMethod(), 42)
        self.assertEqual(PyObjC_TestClass1.unsignedlongClsMethod(), 1 << 30)


    def testClsunsignedlonglongResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.unsignedlonglongClsMethod(), 0)
        self.assertEqual(PyObjC_TestClass1.unsignedlonglongClsMethod(), 42)
        self.assertEqual(PyObjC_TestClass1.unsignedlonglongClsMethod(), 1 << 62)


    def testClsfloatResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertAlmostEqual(PyObjC_TestClass1.floatClsMethod(), 0.128)
        self.assertAlmostEqual(PyObjC_TestClass1.floatClsMethod(), 1.0)
        self.assertAlmostEqual(PyObjC_TestClass1.floatClsMethod(), 42.0)
        self.assertAlmostEqual(PyObjC_TestClass1.floatClsMethod(), 1e10)


    def testClsdoubleResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertAlmostEqual(PyObjC_TestClass1.doubleClsMethod(), 0.128)
        self.assertAlmostEqual(PyObjC_TestClass1.doubleClsMethod(), 1.0)
        self.assertAlmostEqual(PyObjC_TestClass1.doubleClsMethod(), 42.0)
        self.assertAlmostEqual(PyObjC_TestClass1.doubleClsMethod(), 1e10)


    def testClsidResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.idClsMethod(), NSPriorDayDesignations)


    def testClscharPtrResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.charPtrClsMethod(), b"hello")
        self.assertEqual(PyObjC_TestClass1.charPtrClsMethod(), b"world")
        self.assertEqual(PyObjC_TestClass1.charPtrClsMethod(), b"foobar")


    def testClsNSPointResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.NSPointClsMethod(), (1, 2))
        self.assertEqual(PyObjC_TestClass1.NSPointClsMethod(), (3, 4))


    def testClsNSRectResult(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.NSRectClsMethod(), ((1, 2), (3, 4)))
        self.assertEqual(PyObjC_TestClass1.NSRectClsMethod(), ((7, 8), (9, 10)))


    def testClsstructTestStruct1Result(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.structTestStruct1ClsMethod(), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(PyObjC_TestClass1.structTestStruct1ClsMethod(), (9, 8, (-1, -2, -3, -4, -5)))


    def testClsstructTestStruct2Result(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.structTestStruct2ClsMethod(), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(PyObjC_TestClass1.structTestStruct2ClsMethod(), (9, 8, (-1, -2, -3, -4, -5)))


    def testClsstructTestStruct3Result(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.structTestStruct3ClsMethod(), (1, 2))
        self.assertEqual(PyObjC_TestClass1.structTestStruct3ClsMethod(), (2, 4))


    def testClsstructTestStruct4Result(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.structTestStruct4ClsMethod(), (1, 1<<60))
        self.assertEqual(PyObjC_TestClass1.structTestStruct4ClsMethod(), (2, 4))


    def testClsstructTestStruct5Result(self):
        PyObjC_TestClass1.clsReset()
        self.assertEqual(PyObjC_TestClass1.structTestStruct5ClsMethod(), (1, 2.5))
        self.assertEqual(PyObjC_TestClass1.structTestStruct5ClsMethod(), (2, 4.5))


    # Simple returns from instance methods

    def testboolResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.boolMethod(), YES)
        self.assertEqual(o.boolMethod(), NO)


    def testBOOLResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.BOOLMethod(), YES)
        self.assertEqual(o.BOOLMethod(), NO)


    def testcharResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.charMethod(), -128)
        self.assertEqual(o.charMethod(), 0)
        self.assertEqual(o.charMethod(), 127)


    def testsignedshortResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.signedshortMethod(), -(1<<14))
        self.assertEqual(o.signedshortMethod(), -42)
        self.assertEqual(o.signedshortMethod(), 0)
        self.assertEqual(o.signedshortMethod(), 42)
        self.assertEqual(o.signedshortMethod(), 1 << 14)


    def testsignedintResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.signedintMethod(), -(1<<30))
        self.assertEqual(o.signedintMethod(), -42)
        self.assertEqual(o.signedintMethod(), 0)
        self.assertEqual(o.signedintMethod(), 42)
        self.assertEqual(o.signedintMethod(), 1 << 30)


    def testsignedlongResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.signedlongMethod(), -(1<<30))
        self.assertEqual(o.signedlongMethod(), -42)
        self.assertEqual(o.signedlongMethod(), 0)
        self.assertEqual(o.signedlongMethod(), 42)
        self.assertEqual(o.signedlongMethod(), 1 << 30)


    def testsignedlonglongResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.signedlonglongMethod(), -(1 << 60))
        self.assertEqual(o.signedlonglongMethod(), -42)
        self.assertEqual(o.signedlonglongMethod(), 0)
        self.assertEqual(o.signedlonglongMethod(), 42)
        self.assertEqual(o.signedlonglongMethod(), 1 << 60)


    def testunsignedcharResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.unsignedcharMethod(), 0)
        self.assertEqual(o.unsignedcharMethod(), 128)
        self.assertEqual(o.unsignedcharMethod(), 255)


    def testunsignedshortResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.unsignedshortMethod(), 0)
        self.assertEqual(o.unsignedshortMethod(), 42)
        self.assertEqual(o.unsignedshortMethod(), 1<<14)


    def testunsignedintResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.unsignedintMethod(), 0)
        self.assertEqual(o.unsignedintMethod(), 42)
        self.assertEqual(o.unsignedintMethod(), 1 << 30)


    def testunsignedlongResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.unsignedlongMethod(), 0)
        self.assertEqual(o.unsignedlongMethod(), 42)
        self.assertEqual(o.unsignedlongMethod(), 1 << 30)


    def testunsignedlonglongResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.unsignedlonglongMethod(), 0)
        self.assertEqual(o.unsignedlonglongMethod(), 42)
        self.assertEqual(o.unsignedlonglongMethod(), 1 << 62)


    def testfloatResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertAlmostEqual(o.floatMethod(), 0.128)
        self.assertAlmostEqual(o.floatMethod(), 1.0)
        self.assertAlmostEqual(o.floatMethod(), 42.0)
        self.assertAlmostEqual(o.floatMethod(), 1e10)


    def testdoubleResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertAlmostEqual(o.doubleMethod(), 0.128)
        self.assertAlmostEqual(o.doubleMethod(), 1.0)
        self.assertAlmostEqual(o.doubleMethod(), 42.0)
        self.assertAlmostEqual(o.doubleMethod(), 1e10)


    def testidResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.idMethod(), NSPriorDayDesignations)


    def testcharPtrResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.charPtrMethod(), b"hello")
        self.assertEqual(o.charPtrMethod(), b"world")
        self.assertEqual(o.charPtrMethod(), b"foobar")


    def testNSPointResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.NSPointMethod(), (1, 2))
        self.assertEqual(o.NSPointMethod(), (3, 4))


    def testNSRectResult(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.NSRectMethod(), ((1, 2), (3, 4)))
        self.assertEqual(o.NSRectMethod(), ((7, 8), (9, 10)))


    def teststructTestStruct1Result(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.structTestStruct1Method(), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(o.structTestStruct1Method(), (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct2Result(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.structTestStruct2Method(), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(o.structTestStruct2Method(), (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct3Result(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.structTestStruct3Method(), (1, 2))
        self.assertEqual(o.structTestStruct3Method(), (2, 4))


    def teststructTestStruct4Result(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.structTestStruct4Method(), (1, 1<<60))
        self.assertEqual(o.structTestStruct4Method(), (2, 4))


    def teststructTestStruct5Result(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(o.structTestStruct5Method(), (1, 2.5))
        self.assertEqual(o.structTestStruct5Method(), (2, 4.5))


    # One argument

    def testboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_(YES)
        self.assertEqual(r, YES)
        r = o.boolArg_(NO)
        self.assertEqual(r, NO)


    def testBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_(YES)
        self.assertEqual(r, YES)
        r = o.BOOLArg_(NO)
        self.assertEqual(r, NO)


    def testcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_(-128)
        self.assertEqual(r, -128)
        r = o.charArg_(0)
        self.assertEqual(r, 0)
        r = o.charArg_(127)
        self.assertEqual(r, 127)


    def testsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_(-(1<<14))
        self.assertEqual(r, -(1<<14))
        r = o.signedshortArg_(-42)
        self.assertEqual(r, -42)
        r = o.signedshortArg_(0)
        self.assertEqual(r, 0)
        r = o.signedshortArg_(42)
        self.assertEqual(r, 42)
        r = o.signedshortArg_(1 << 14)
        self.assertEqual(r, 1 << 14)


    def testsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_(-(1<<30))
        self.assertEqual(r, -(1<<30))
        r = o.signedintArg_(-42)
        self.assertEqual(r, -42)
        r = o.signedintArg_(0)
        self.assertEqual(r, 0)
        r = o.signedintArg_(42)
        self.assertEqual(r, 42)
        r = o.signedintArg_(1 << 30)
        self.assertEqual(r, 1 << 30)


    def testsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_(-(1<<30))
        self.assertEqual(r, -(1<<30))
        r = o.signedlongArg_(-42)
        self.assertEqual(r, -42)
        r = o.signedlongArg_(0)
        self.assertEqual(r, 0)
        r = o.signedlongArg_(42)
        self.assertEqual(r, 42)
        r = o.signedlongArg_(1 << 30)
        self.assertEqual(r, 1 << 30)


    def testsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_(-(1 << 60))
        self.assertEqual(r, -(1 << 60))
        r = o.signedlonglongArg_(-42)
        self.assertEqual(r, -42)
        r = o.signedlonglongArg_(0)
        self.assertEqual(r, 0)
        r = o.signedlonglongArg_(42)
        self.assertEqual(r, 42)
        r = o.signedlonglongArg_(1 << 60)
        self.assertEqual(r, 1 << 60)


    def testunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_(0)
        self.assertEqual(r, 0)
        r = o.unsignedcharArg_(128)
        self.assertEqual(r, 128)
        r = o.unsignedcharArg_(255)
        self.assertEqual(r, 255)


    def testunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_(0)
        self.assertEqual(r, 0)
        r = o.unsignedshortArg_(42)
        self.assertEqual(r, 42)
        r = o.unsignedshortArg_(1<<14)
        self.assertEqual(r, 1<<14)


    def testunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_(0)
        self.assertEqual(r, 0)
        r = o.unsignedintArg_(42)
        self.assertEqual(r, 42)
        r = o.unsignedintArg_(1 << 30)
        self.assertEqual(r, 1 << 30)


    def testunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_(0)
        self.assertEqual(r, 0)
        r = o.unsignedlongArg_(42)
        self.assertEqual(r, 42)
        r = o.unsignedlongArg_(1 << 30)
        self.assertEqual(r, 1 << 30)


    def testunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_(0)
        self.assertEqual(r, 0)
        r = o.unsignedlonglongArg_(42)
        self.assertEqual(r, 42)
        r = o.unsignedlonglongArg_(1 << 62)
        self.assertEqual(r, 1 << 62)


    def testfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_(0.128)
        self.assertAlmostEqual(r, 0.128)
        r = o.floatArg_(1.0)
        self.assertAlmostEqual(r, 1.0)
        r = o.floatArg_(42.0)
        self.assertAlmostEqual(r, 42.0)
        r = o.floatArg_(1e10)
        self.assertAlmostEqual(r, 1e10)


    def testdoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_(0.128)
        self.assertAlmostEqual(r, 0.128)
        r = o.doubleArg_(1.0)
        self.assertAlmostEqual(r, 1.0)
        r = o.doubleArg_(42.0)
        self.assertAlmostEqual(r, 42.0)
        r = o.doubleArg_(1e10)
        self.assertAlmostEqual(r, 1e10)


    def testidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_(NSPriorDayDesignations)
        self.assertEqual(r, NSPriorDayDesignations)


    def testcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_(b"hello")
        self.assertEqual(r, b"hello")
        r = o.charPtrArg_(b"world")
        self.assertEqual(r, b"world")
        r = o.charPtrArg_(b"foobar")
        self.assertEqual(r, b"foobar")


    def testNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_((1, 2))
        self.assertEqual(r, (1, 2))
        r = o.NSPointArg_((3, 4))
        self.assertEqual(r, (3, 4))


    def testNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_(((1, 2), (3, 4)))
        self.assertEqual(r, ((1, 2), (3, 4)))
        r = o.NSRectArg_(((7, 8), (9, 10)))
        self.assertEqual(r, ((7, 8), (9, 10)))


    def teststructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_((1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct1Arg_((9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_((1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct2Arg_((9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_((1, 2))
        self.assertEqual(r, (1, 2))
        r = o.structTestStruct3Arg_((2, 4))
        self.assertEqual(r, (2, 4))


    def teststructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_((1, 1<<60))
        self.assertEqual(r, (1, 1<<60))
        r = o.structTestStruct4Arg_((2, 4))
        self.assertEqual(r, (2, 4))


    def teststructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_((1, 2.5))
        self.assertEqual(r, (1, 2.5))
        r = o.structTestStruct5Arg_((2, 4.5))
        self.assertEqual(r, (2, 4.5))


    # Two arguments

    def testboolAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andboolArg_(YES, YES)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], YES)
        r = o.boolArg_andboolArg_(YES, NO)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)
        r = o.boolArg_andboolArg_(NO, YES)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = o.boolArg_andboolArg_(NO, NO)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NO)


    def testboolAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andBOOLArg_(YES, YES)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], YES)
        r = o.boolArg_andBOOLArg_(YES, NO)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)
        r = o.boolArg_andBOOLArg_(NO, YES)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = o.boolArg_andBOOLArg_(NO, NO)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NO)


    def testboolAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andcharArg_(YES, -128)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -128)
        r = o.boolArg_andcharArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andcharArg_(YES, 127)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 127)
        r = o.boolArg_andcharArg_(NO, -128)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -128)
        r = o.boolArg_andcharArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andcharArg_(NO, 127)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 127)


    def testboolAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andsignedshortArg_(YES, -(1<<14))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<14))
        r = o.boolArg_andsignedshortArg_(YES, -42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = o.boolArg_andsignedshortArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andsignedshortArg_(YES, 42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = o.boolArg_andsignedshortArg_(YES, 1 << 14)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 14)
        r = o.boolArg_andsignedshortArg_(NO, -(1<<14))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<14))
        r = o.boolArg_andsignedshortArg_(NO, -42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = o.boolArg_andsignedshortArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andsignedshortArg_(NO, 42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = o.boolArg_andsignedshortArg_(NO, 1 << 14)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 14)


    def testboolAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andsignedintArg_(YES, -(1<<30))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<30))
        r = o.boolArg_andsignedintArg_(YES, -42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = o.boolArg_andsignedintArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andsignedintArg_(YES, 42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = o.boolArg_andsignedintArg_(YES, 1 << 30)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = o.boolArg_andsignedintArg_(NO, -(1<<30))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<30))
        r = o.boolArg_andsignedintArg_(NO, -42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = o.boolArg_andsignedintArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andsignedintArg_(NO, 42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = o.boolArg_andsignedintArg_(NO, 1 << 30)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testboolAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andsignedlongArg_(YES, -(1<<30))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<30))
        r = o.boolArg_andsignedlongArg_(YES, -42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = o.boolArg_andsignedlongArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andsignedlongArg_(YES, 42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = o.boolArg_andsignedlongArg_(YES, 1 << 30)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = o.boolArg_andsignedlongArg_(NO, -(1<<30))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<30))
        r = o.boolArg_andsignedlongArg_(NO, -42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = o.boolArg_andsignedlongArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andsignedlongArg_(NO, 42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = o.boolArg_andsignedlongArg_(NO, 1 << 30)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testboolAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andsignedlonglongArg_(YES, -(1 << 60))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1 << 60))
        r = o.boolArg_andsignedlonglongArg_(YES, -42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = o.boolArg_andsignedlonglongArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andsignedlonglongArg_(YES, 42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = o.boolArg_andsignedlonglongArg_(YES, 1 << 60)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 60)
        r = o.boolArg_andsignedlonglongArg_(NO, -(1 << 60))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1 << 60))
        r = o.boolArg_andsignedlonglongArg_(NO, -42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = o.boolArg_andsignedlonglongArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andsignedlonglongArg_(NO, 42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = o.boolArg_andsignedlonglongArg_(NO, 1 << 60)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 60)


    def testboolAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andunsignedcharArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andunsignedcharArg_(YES, 128)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 128)
        r = o.boolArg_andunsignedcharArg_(YES, 255)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 255)
        r = o.boolArg_andunsignedcharArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andunsignedcharArg_(NO, 128)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 128)
        r = o.boolArg_andunsignedcharArg_(NO, 255)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 255)


    def testboolAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andunsignedshortArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andunsignedshortArg_(YES, 42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = o.boolArg_andunsignedshortArg_(YES, 1<<14)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1<<14)
        r = o.boolArg_andunsignedshortArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andunsignedshortArg_(NO, 42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = o.boolArg_andunsignedshortArg_(NO, 1<<14)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1<<14)


    def testboolAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andunsignedintArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andunsignedintArg_(YES, 42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = o.boolArg_andunsignedintArg_(YES, 1 << 30)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = o.boolArg_andunsignedintArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andunsignedintArg_(NO, 42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = o.boolArg_andunsignedintArg_(NO, 1 << 30)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testboolAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andunsignedlongArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andunsignedlongArg_(YES, 42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = o.boolArg_andunsignedlongArg_(YES, 1 << 30)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = o.boolArg_andunsignedlongArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andunsignedlongArg_(NO, 42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = o.boolArg_andunsignedlongArg_(NO, 1 << 30)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testboolAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andunsignedlonglongArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andunsignedlonglongArg_(YES, 42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = o.boolArg_andunsignedlonglongArg_(YES, 1 << 62)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 62)
        r = o.boolArg_andunsignedlonglongArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.boolArg_andunsignedlonglongArg_(NO, 42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = o.boolArg_andunsignedlonglongArg_(NO, 1 << 62)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 62)


    def testboolAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andfloatArg_(YES, 0.128)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.boolArg_andfloatArg_(YES, 1.0)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.boolArg_andfloatArg_(YES, 42.0)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.boolArg_andfloatArg_(YES, 1e10)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.boolArg_andfloatArg_(NO, 0.128)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.boolArg_andfloatArg_(NO, 1.0)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.boolArg_andfloatArg_(NO, 42.0)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.boolArg_andfloatArg_(NO, 1e10)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1e10)


    def testboolAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_anddoubleArg_(YES, 0.128)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.boolArg_anddoubleArg_(YES, 1.0)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.boolArg_anddoubleArg_(YES, 42.0)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.boolArg_anddoubleArg_(YES, 1e10)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.boolArg_anddoubleArg_(NO, 0.128)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.boolArg_anddoubleArg_(NO, 1.0)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.boolArg_anddoubleArg_(NO, 42.0)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.boolArg_anddoubleArg_(NO, 1e10)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1e10)


    def testboolAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andidArg_(YES, NSPriorDayDesignations)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.boolArg_andidArg_(NO, NSPriorDayDesignations)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testboolAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andcharPtrArg_(YES, b"hello")
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], b"hello")
        r = o.boolArg_andcharPtrArg_(YES, b"world")
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], b"world")
        r = o.boolArg_andcharPtrArg_(YES, b"foobar")
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], b"foobar")
        r = o.boolArg_andcharPtrArg_(NO, b"hello")
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], b"hello")
        r = o.boolArg_andcharPtrArg_(NO, b"world")
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], b"world")
        r = o.boolArg_andcharPtrArg_(NO, b"foobar")
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], b"foobar")


    def testboolAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andNSPointArg_(YES, (1, 2))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2))
        r = o.boolArg_andNSPointArg_(YES, (3, 4))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (3, 4))
        r = o.boolArg_andNSPointArg_(NO, (1, 2))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2))
        r = o.boolArg_andNSPointArg_(NO, (3, 4))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (3, 4))


    def testboolAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andNSRectArg_(YES, ((1, 2), (3, 4)))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.boolArg_andNSRectArg_(YES, ((7, 8), (9, 10)))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.boolArg_andNSRectArg_(NO, ((1, 2), (3, 4)))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.boolArg_andNSRectArg_(NO, ((7, 8), (9, 10)))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testboolAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andstructTestStruct1Arg_(YES, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.boolArg_andstructTestStruct1Arg_(YES, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.boolArg_andstructTestStruct1Arg_(NO, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.boolArg_andstructTestStruct1Arg_(NO, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testboolAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andstructTestStruct2Arg_(YES, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.boolArg_andstructTestStruct2Arg_(YES, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.boolArg_andstructTestStruct2Arg_(NO, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.boolArg_andstructTestStruct2Arg_(NO, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testboolAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andstructTestStruct3Arg_(YES, (1, 2))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2))
        r = o.boolArg_andstructTestStruct3Arg_(YES, (2, 4))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4))
        r = o.boolArg_andstructTestStruct3Arg_(NO, (1, 2))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2))
        r = o.boolArg_andstructTestStruct3Arg_(NO, (2, 4))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4))


    def testboolAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andstructTestStruct4Arg_(YES, (1, 1<<60))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.boolArg_andstructTestStruct4Arg_(YES, (2, 4))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4))
        r = o.boolArg_andstructTestStruct4Arg_(NO, (1, 1<<60))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.boolArg_andstructTestStruct4Arg_(NO, (2, 4))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4))


    def testboolAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolArg_andstructTestStruct5Arg_(YES, (1, 2.5))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2.5))
        r = o.boolArg_andstructTestStruct5Arg_(YES, (2, 4.5))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4.5))
        r = o.boolArg_andstructTestStruct5Arg_(NO, (1, 2.5))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2.5))
        r = o.boolArg_andstructTestStruct5Arg_(NO, (2, 4.5))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4.5))


    def testBOOLAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andboolArg_(YES, YES)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], YES)
        r = o.BOOLArg_andboolArg_(YES, NO)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)
        r = o.BOOLArg_andboolArg_(NO, YES)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = o.BOOLArg_andboolArg_(NO, NO)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NO)


    def testBOOLAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andBOOLArg_(YES, YES)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], YES)
        r = o.BOOLArg_andBOOLArg_(YES, NO)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)
        r = o.BOOLArg_andBOOLArg_(NO, YES)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = o.BOOLArg_andBOOLArg_(NO, NO)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NO)


    def testBOOLAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andcharArg_(YES, -128)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -128)
        r = o.BOOLArg_andcharArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andcharArg_(YES, 127)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 127)
        r = o.BOOLArg_andcharArg_(NO, -128)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -128)
        r = o.BOOLArg_andcharArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andcharArg_(NO, 127)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 127)


    def testBOOLAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andsignedshortArg_(YES, -(1<<14))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<14))
        r = o.BOOLArg_andsignedshortArg_(YES, -42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = o.BOOLArg_andsignedshortArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andsignedshortArg_(YES, 42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = o.BOOLArg_andsignedshortArg_(YES, 1 << 14)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 14)
        r = o.BOOLArg_andsignedshortArg_(NO, -(1<<14))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<14))
        r = o.BOOLArg_andsignedshortArg_(NO, -42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = o.BOOLArg_andsignedshortArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andsignedshortArg_(NO, 42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = o.BOOLArg_andsignedshortArg_(NO, 1 << 14)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 14)


    def testBOOLAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andsignedintArg_(YES, -(1<<30))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<30))
        r = o.BOOLArg_andsignedintArg_(YES, -42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = o.BOOLArg_andsignedintArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andsignedintArg_(YES, 42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = o.BOOLArg_andsignedintArg_(YES, 1 << 30)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = o.BOOLArg_andsignedintArg_(NO, -(1<<30))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<30))
        r = o.BOOLArg_andsignedintArg_(NO, -42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = o.BOOLArg_andsignedintArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andsignedintArg_(NO, 42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = o.BOOLArg_andsignedintArg_(NO, 1 << 30)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testBOOLAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andsignedlongArg_(YES, -(1<<30))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<30))
        r = o.BOOLArg_andsignedlongArg_(YES, -42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = o.BOOLArg_andsignedlongArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andsignedlongArg_(YES, 42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = o.BOOLArg_andsignedlongArg_(YES, 1 << 30)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = o.BOOLArg_andsignedlongArg_(NO, -(1<<30))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<30))
        r = o.BOOLArg_andsignedlongArg_(NO, -42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = o.BOOLArg_andsignedlongArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andsignedlongArg_(NO, 42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = o.BOOLArg_andsignedlongArg_(NO, 1 << 30)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testBOOLAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andsignedlonglongArg_(YES, -(1 << 60))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1 << 60))
        r = o.BOOLArg_andsignedlonglongArg_(YES, -42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = o.BOOLArg_andsignedlonglongArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andsignedlonglongArg_(YES, 42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = o.BOOLArg_andsignedlonglongArg_(YES, 1 << 60)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 60)
        r = o.BOOLArg_andsignedlonglongArg_(NO, -(1 << 60))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1 << 60))
        r = o.BOOLArg_andsignedlonglongArg_(NO, -42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = o.BOOLArg_andsignedlonglongArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andsignedlonglongArg_(NO, 42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = o.BOOLArg_andsignedlonglongArg_(NO, 1 << 60)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 60)


    def testBOOLAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andunsignedcharArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andunsignedcharArg_(YES, 128)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 128)
        r = o.BOOLArg_andunsignedcharArg_(YES, 255)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 255)
        r = o.BOOLArg_andunsignedcharArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andunsignedcharArg_(NO, 128)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 128)
        r = o.BOOLArg_andunsignedcharArg_(NO, 255)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 255)


    def testBOOLAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andunsignedshortArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andunsignedshortArg_(YES, 42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = o.BOOLArg_andunsignedshortArg_(YES, 1<<14)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1<<14)
        r = o.BOOLArg_andunsignedshortArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andunsignedshortArg_(NO, 42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = o.BOOLArg_andunsignedshortArg_(NO, 1<<14)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1<<14)


    def testBOOLAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andunsignedintArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andunsignedintArg_(YES, 42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = o.BOOLArg_andunsignedintArg_(YES, 1 << 30)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = o.BOOLArg_andunsignedintArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andunsignedintArg_(NO, 42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = o.BOOLArg_andunsignedintArg_(NO, 1 << 30)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testBOOLAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andunsignedlongArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andunsignedlongArg_(YES, 42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = o.BOOLArg_andunsignedlongArg_(YES, 1 << 30)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = o.BOOLArg_andunsignedlongArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andunsignedlongArg_(NO, 42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = o.BOOLArg_andunsignedlongArg_(NO, 1 << 30)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testBOOLAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andunsignedlonglongArg_(YES, 0)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andunsignedlonglongArg_(YES, 42)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = o.BOOLArg_andunsignedlonglongArg_(YES, 1 << 62)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 62)
        r = o.BOOLArg_andunsignedlonglongArg_(NO, 0)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = o.BOOLArg_andunsignedlonglongArg_(NO, 42)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = o.BOOLArg_andunsignedlonglongArg_(NO, 1 << 62)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 62)


    def testBOOLAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andfloatArg_(YES, 0.128)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.BOOLArg_andfloatArg_(YES, 1.0)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.BOOLArg_andfloatArg_(YES, 42.0)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.BOOLArg_andfloatArg_(YES, 1e10)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.BOOLArg_andfloatArg_(NO, 0.128)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.BOOLArg_andfloatArg_(NO, 1.0)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.BOOLArg_andfloatArg_(NO, 42.0)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.BOOLArg_andfloatArg_(NO, 1e10)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1e10)


    def testBOOLAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_anddoubleArg_(YES, 0.128)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.BOOLArg_anddoubleArg_(YES, 1.0)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.BOOLArg_anddoubleArg_(YES, 42.0)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.BOOLArg_anddoubleArg_(YES, 1e10)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.BOOLArg_anddoubleArg_(NO, 0.128)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.BOOLArg_anddoubleArg_(NO, 1.0)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.BOOLArg_anddoubleArg_(NO, 42.0)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.BOOLArg_anddoubleArg_(NO, 1e10)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1e10)


    def testBOOLAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andidArg_(YES, NSPriorDayDesignations)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.BOOLArg_andidArg_(NO, NSPriorDayDesignations)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testBOOLAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andcharPtrArg_(YES, b"hello")
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], b"hello")
        r = o.BOOLArg_andcharPtrArg_(YES, b"world")
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], b"world")
        r = o.BOOLArg_andcharPtrArg_(YES, b"foobar")
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], b"foobar")
        r = o.BOOLArg_andcharPtrArg_(NO, b"hello")
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], b"hello")
        r = o.BOOLArg_andcharPtrArg_(NO, b"world")
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], b"world")
        r = o.BOOLArg_andcharPtrArg_(NO, b"foobar")
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], b"foobar")


    def testBOOLAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andNSPointArg_(YES, (1, 2))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2))
        r = o.BOOLArg_andNSPointArg_(YES, (3, 4))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (3, 4))
        r = o.BOOLArg_andNSPointArg_(NO, (1, 2))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2))
        r = o.BOOLArg_andNSPointArg_(NO, (3, 4))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (3, 4))


    def testBOOLAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andNSRectArg_(YES, ((1, 2), (3, 4)))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.BOOLArg_andNSRectArg_(YES, ((7, 8), (9, 10)))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.BOOLArg_andNSRectArg_(NO, ((1, 2), (3, 4)))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.BOOLArg_andNSRectArg_(NO, ((7, 8), (9, 10)))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testBOOLAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andstructTestStruct1Arg_(YES, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.BOOLArg_andstructTestStruct1Arg_(YES, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.BOOLArg_andstructTestStruct1Arg_(NO, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.BOOLArg_andstructTestStruct1Arg_(NO, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testBOOLAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andstructTestStruct2Arg_(YES, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.BOOLArg_andstructTestStruct2Arg_(YES, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.BOOLArg_andstructTestStruct2Arg_(NO, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.BOOLArg_andstructTestStruct2Arg_(NO, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testBOOLAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andstructTestStruct3Arg_(YES, (1, 2))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2))
        r = o.BOOLArg_andstructTestStruct3Arg_(YES, (2, 4))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4))
        r = o.BOOLArg_andstructTestStruct3Arg_(NO, (1, 2))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2))
        r = o.BOOLArg_andstructTestStruct3Arg_(NO, (2, 4))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4))


    def testBOOLAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andstructTestStruct4Arg_(YES, (1, 1<<60))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.BOOLArg_andstructTestStruct4Arg_(YES, (2, 4))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4))
        r = o.BOOLArg_andstructTestStruct4Arg_(NO, (1, 1<<60))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.BOOLArg_andstructTestStruct4Arg_(NO, (2, 4))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4))


    def testBOOLAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLArg_andstructTestStruct5Arg_(YES, (1, 2.5))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2.5))
        r = o.BOOLArg_andstructTestStruct5Arg_(YES, (2, 4.5))
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4.5))
        r = o.BOOLArg_andstructTestStruct5Arg_(NO, (1, 2.5))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2.5))
        r = o.BOOLArg_andstructTestStruct5Arg_(NO, (2, 4.5))
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4.5))


    def testcharAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andboolArg_(-128, YES)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], YES)
        r = o.charArg_andboolArg_(-128, NO)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], NO)
        r = o.charArg_andboolArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.charArg_andboolArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.charArg_andboolArg_(127, YES)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], YES)
        r = o.charArg_andboolArg_(127, NO)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], NO)


    def testcharAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andBOOLArg_(-128, YES)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], YES)
        r = o.charArg_andBOOLArg_(-128, NO)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], NO)
        r = o.charArg_andBOOLArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.charArg_andBOOLArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.charArg_andBOOLArg_(127, YES)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], YES)
        r = o.charArg_andBOOLArg_(127, NO)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], NO)


    def testcharAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andcharArg_(-128, -128)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -128)
        r = o.charArg_andcharArg_(-128, 0)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = o.charArg_andcharArg_(-128, 127)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 127)
        r = o.charArg_andcharArg_(0, -128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = o.charArg_andcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.charArg_andcharArg_(0, 127)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = o.charArg_andcharArg_(127, -128)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -128)
        r = o.charArg_andcharArg_(127, 0)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = o.charArg_andcharArg_(127, 127)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 127)


    def testcharAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andsignedshortArg_(-128, -(1<<14))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -(1<<14))
        r = o.charArg_andsignedshortArg_(-128, -42)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -42)
        r = o.charArg_andsignedshortArg_(-128, 0)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = o.charArg_andsignedshortArg_(-128, 42)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = o.charArg_andsignedshortArg_(-128, 1 << 14)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 14)
        r = o.charArg_andsignedshortArg_(0, -(1<<14))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = o.charArg_andsignedshortArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.charArg_andsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.charArg_andsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.charArg_andsignedshortArg_(0, 1 << 14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = o.charArg_andsignedshortArg_(127, -(1<<14))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -(1<<14))
        r = o.charArg_andsignedshortArg_(127, -42)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -42)
        r = o.charArg_andsignedshortArg_(127, 0)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = o.charArg_andsignedshortArg_(127, 42)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = o.charArg_andsignedshortArg_(127, 1 << 14)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 14)


    def testcharAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andsignedintArg_(-128, -(1<<30))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -(1<<30))
        r = o.charArg_andsignedintArg_(-128, -42)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -42)
        r = o.charArg_andsignedintArg_(-128, 0)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = o.charArg_andsignedintArg_(-128, 42)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = o.charArg_andsignedintArg_(-128, 1 << 30)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 30)
        r = o.charArg_andsignedintArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.charArg_andsignedintArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.charArg_andsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.charArg_andsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.charArg_andsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.charArg_andsignedintArg_(127, -(1<<30))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -(1<<30))
        r = o.charArg_andsignedintArg_(127, -42)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -42)
        r = o.charArg_andsignedintArg_(127, 0)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = o.charArg_andsignedintArg_(127, 42)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = o.charArg_andsignedintArg_(127, 1 << 30)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 30)


    def testcharAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andsignedlongArg_(-128, -(1<<30))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -(1<<30))
        r = o.charArg_andsignedlongArg_(-128, -42)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -42)
        r = o.charArg_andsignedlongArg_(-128, 0)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = o.charArg_andsignedlongArg_(-128, 42)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = o.charArg_andsignedlongArg_(-128, 1 << 30)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 30)
        r = o.charArg_andsignedlongArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.charArg_andsignedlongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.charArg_andsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.charArg_andsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.charArg_andsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.charArg_andsignedlongArg_(127, -(1<<30))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -(1<<30))
        r = o.charArg_andsignedlongArg_(127, -42)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -42)
        r = o.charArg_andsignedlongArg_(127, 0)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = o.charArg_andsignedlongArg_(127, 42)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = o.charArg_andsignedlongArg_(127, 1 << 30)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 30)


    def testcharAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andsignedlonglongArg_(-128, -(1 << 60))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -(1 << 60))
        r = o.charArg_andsignedlonglongArg_(-128, -42)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -42)
        r = o.charArg_andsignedlonglongArg_(-128, 0)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = o.charArg_andsignedlonglongArg_(-128, 42)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = o.charArg_andsignedlonglongArg_(-128, 1 << 60)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 60)
        r = o.charArg_andsignedlonglongArg_(0, -(1 << 60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = o.charArg_andsignedlonglongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.charArg_andsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.charArg_andsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.charArg_andsignedlonglongArg_(0, 1 << 60)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = o.charArg_andsignedlonglongArg_(127, -(1 << 60))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -(1 << 60))
        r = o.charArg_andsignedlonglongArg_(127, -42)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -42)
        r = o.charArg_andsignedlonglongArg_(127, 0)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = o.charArg_andsignedlonglongArg_(127, 42)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = o.charArg_andsignedlonglongArg_(127, 1 << 60)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 60)


    def testcharAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andunsignedcharArg_(-128, 0)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = o.charArg_andunsignedcharArg_(-128, 128)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 128)
        r = o.charArg_andunsignedcharArg_(-128, 255)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 255)
        r = o.charArg_andunsignedcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.charArg_andunsignedcharArg_(0, 128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = o.charArg_andunsignedcharArg_(0, 255)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = o.charArg_andunsignedcharArg_(127, 0)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = o.charArg_andunsignedcharArg_(127, 128)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 128)
        r = o.charArg_andunsignedcharArg_(127, 255)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 255)


    def testcharAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andunsignedshortArg_(-128, 0)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = o.charArg_andunsignedshortArg_(-128, 42)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = o.charArg_andunsignedshortArg_(-128, 1<<14)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1<<14)
        r = o.charArg_andunsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.charArg_andunsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.charArg_andunsignedshortArg_(0, 1<<14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = o.charArg_andunsignedshortArg_(127, 0)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = o.charArg_andunsignedshortArg_(127, 42)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = o.charArg_andunsignedshortArg_(127, 1<<14)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1<<14)


    def testcharAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andunsignedintArg_(-128, 0)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = o.charArg_andunsignedintArg_(-128, 42)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = o.charArg_andunsignedintArg_(-128, 1 << 30)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 30)
        r = o.charArg_andunsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.charArg_andunsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.charArg_andunsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.charArg_andunsignedintArg_(127, 0)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = o.charArg_andunsignedintArg_(127, 42)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = o.charArg_andunsignedintArg_(127, 1 << 30)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 30)


    def testcharAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andunsignedlongArg_(-128, 0)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = o.charArg_andunsignedlongArg_(-128, 42)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = o.charArg_andunsignedlongArg_(-128, 1 << 30)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 30)
        r = o.charArg_andunsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.charArg_andunsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.charArg_andunsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.charArg_andunsignedlongArg_(127, 0)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = o.charArg_andunsignedlongArg_(127, 42)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = o.charArg_andunsignedlongArg_(127, 1 << 30)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 30)


    def testcharAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andunsignedlonglongArg_(-128, 0)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = o.charArg_andunsignedlonglongArg_(-128, 42)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = o.charArg_andunsignedlonglongArg_(-128, 1 << 62)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 62)
        r = o.charArg_andunsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.charArg_andunsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.charArg_andunsignedlonglongArg_(0, 1 << 62)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = o.charArg_andunsignedlonglongArg_(127, 0)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = o.charArg_andunsignedlonglongArg_(127, 42)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = o.charArg_andunsignedlonglongArg_(127, 1 << 62)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 62)


    def testcharAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andfloatArg_(-128, 0.128)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.charArg_andfloatArg_(-128, 1.0)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.charArg_andfloatArg_(-128, 42.0)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.charArg_andfloatArg_(-128, 1e10)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.charArg_andfloatArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.charArg_andfloatArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.charArg_andfloatArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.charArg_andfloatArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.charArg_andfloatArg_(127, 0.128)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.charArg_andfloatArg_(127, 1.0)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.charArg_andfloatArg_(127, 42.0)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.charArg_andfloatArg_(127, 1e10)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 1e10)


    def testcharAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_anddoubleArg_(-128, 0.128)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.charArg_anddoubleArg_(-128, 1.0)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.charArg_anddoubleArg_(-128, 42.0)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.charArg_anddoubleArg_(-128, 1e10)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.charArg_anddoubleArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.charArg_anddoubleArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.charArg_anddoubleArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.charArg_anddoubleArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.charArg_anddoubleArg_(127, 0.128)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.charArg_anddoubleArg_(127, 1.0)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.charArg_anddoubleArg_(127, 42.0)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.charArg_anddoubleArg_(127, 1e10)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 1e10)


    def testcharAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andidArg_(-128, NSPriorDayDesignations)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.charArg_andidArg_(0, NSPriorDayDesignations)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.charArg_andidArg_(127, NSPriorDayDesignations)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcharAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andcharPtrArg_(-128, b"hello")
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], b"hello")
        r = o.charArg_andcharPtrArg_(-128, b"world")
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], b"world")
        r = o.charArg_andcharPtrArg_(-128, b"foobar")
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], b"foobar")
        r = o.charArg_andcharPtrArg_(0, b"hello")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"hello")
        r = o.charArg_andcharPtrArg_(0, b"world")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"world")
        r = o.charArg_andcharPtrArg_(0, b"foobar")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"foobar")
        r = o.charArg_andcharPtrArg_(127, b"hello")
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], b"hello")
        r = o.charArg_andcharPtrArg_(127, b"world")
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], b"world")
        r = o.charArg_andcharPtrArg_(127, b"foobar")
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], b"foobar")


    def testcharAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andNSPointArg_(-128, (1, 2))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 2))
        r = o.charArg_andNSPointArg_(-128, (3, 4))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (3, 4))
        r = o.charArg_andNSPointArg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.charArg_andNSPointArg_(0, (3, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = o.charArg_andNSPointArg_(127, (1, 2))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 2))
        r = o.charArg_andNSPointArg_(127, (3, 4))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (3, 4))


    def testcharAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andNSRectArg_(-128, ((1, 2), (3, 4)))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.charArg_andNSRectArg_(-128, ((7, 8), (9, 10)))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.charArg_andNSRectArg_(0, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.charArg_andNSRectArg_(0, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.charArg_andNSRectArg_(127, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.charArg_andNSRectArg_(127, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcharAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andstructTestStruct1Arg_(-128, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.charArg_andstructTestStruct1Arg_(-128, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.charArg_andstructTestStruct1Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.charArg_andstructTestStruct1Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.charArg_andstructTestStruct1Arg_(127, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.charArg_andstructTestStruct1Arg_(127, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcharAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andstructTestStruct2Arg_(-128, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.charArg_andstructTestStruct2Arg_(-128, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.charArg_andstructTestStruct2Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.charArg_andstructTestStruct2Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.charArg_andstructTestStruct2Arg_(127, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.charArg_andstructTestStruct2Arg_(127, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcharAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andstructTestStruct3Arg_(-128, (1, 2))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 2))
        r = o.charArg_andstructTestStruct3Arg_(-128, (2, 4))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (2, 4))
        r = o.charArg_andstructTestStruct3Arg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.charArg_andstructTestStruct3Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.charArg_andstructTestStruct3Arg_(127, (1, 2))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 2))
        r = o.charArg_andstructTestStruct3Arg_(127, (2, 4))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (2, 4))


    def testcharAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andstructTestStruct4Arg_(-128, (1, 1<<60))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.charArg_andstructTestStruct4Arg_(-128, (2, 4))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (2, 4))
        r = o.charArg_andstructTestStruct4Arg_(0, (1, 1<<60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.charArg_andstructTestStruct4Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.charArg_andstructTestStruct4Arg_(127, (1, 1<<60))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.charArg_andstructTestStruct4Arg_(127, (2, 4))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (2, 4))


    def testcharAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charArg_andstructTestStruct5Arg_(-128, (1, 2.5))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 2.5))
        r = o.charArg_andstructTestStruct5Arg_(-128, (2, 4.5))
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (2, 4.5))
        r = o.charArg_andstructTestStruct5Arg_(0, (1, 2.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = o.charArg_andstructTestStruct5Arg_(0, (2, 4.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = o.charArg_andstructTestStruct5Arg_(127, (1, 2.5))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 2.5))
        r = o.charArg_andstructTestStruct5Arg_(127, (2, 4.5))
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (2, 4.5))


    def testsignedshortAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andboolArg_(-(1<<14), YES)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], YES)
        r = o.signedshortArg_andboolArg_(-(1<<14), NO)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], NO)
        r = o.signedshortArg_andboolArg_(-42, YES)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = o.signedshortArg_andboolArg_(-42, NO)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = o.signedshortArg_andboolArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.signedshortArg_andboolArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.signedshortArg_andboolArg_(42, YES)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = o.signedshortArg_andboolArg_(42, NO)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = o.signedshortArg_andboolArg_(1 << 14, YES)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], YES)
        r = o.signedshortArg_andboolArg_(1 << 14, NO)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], NO)


    def testsignedshortAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andBOOLArg_(-(1<<14), YES)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], YES)
        r = o.signedshortArg_andBOOLArg_(-(1<<14), NO)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], NO)
        r = o.signedshortArg_andBOOLArg_(-42, YES)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = o.signedshortArg_andBOOLArg_(-42, NO)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = o.signedshortArg_andBOOLArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.signedshortArg_andBOOLArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.signedshortArg_andBOOLArg_(42, YES)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = o.signedshortArg_andBOOLArg_(42, NO)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = o.signedshortArg_andBOOLArg_(1 << 14, YES)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], YES)
        r = o.signedshortArg_andBOOLArg_(1 << 14, NO)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], NO)


    def testsignedshortAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andcharArg_(-(1<<14), -128)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -128)
        r = o.signedshortArg_andcharArg_(-(1<<14), 0)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andcharArg_(-(1<<14), 127)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 127)
        r = o.signedshortArg_andcharArg_(-42, -128)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -128)
        r = o.signedshortArg_andcharArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andcharArg_(-42, 127)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 127)
        r = o.signedshortArg_andcharArg_(0, -128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = o.signedshortArg_andcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andcharArg_(0, 127)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = o.signedshortArg_andcharArg_(42, -128)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = o.signedshortArg_andcharArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andcharArg_(42, 127)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = o.signedshortArg_andcharArg_(1 << 14, -128)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -128)
        r = o.signedshortArg_andcharArg_(1 << 14, 0)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andcharArg_(1 << 14, 127)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 127)


    def testsignedshortAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andsignedshortArg_(-(1<<14), -(1<<14))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -(1<<14))
        r = o.signedshortArg_andsignedshortArg_(-(1<<14), -42)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedshortArg_(-(1<<14), 0)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedshortArg_(-(1<<14), 42)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedshortArg_(-(1<<14), 1 << 14)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 14)
        r = o.signedshortArg_andsignedshortArg_(-42, -(1<<14))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedshortArg_andsignedshortArg_(-42, -42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedshortArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedshortArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedshortArg_(-42, 1 << 14)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 14)
        r = o.signedshortArg_andsignedshortArg_(0, -(1<<14))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedshortArg_andsignedshortArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedshortArg_(0, 1 << 14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = o.signedshortArg_andsignedshortArg_(42, -(1<<14))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedshortArg_andsignedshortArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedshortArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedshortArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedshortArg_(42, 1 << 14)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = o.signedshortArg_andsignedshortArg_(1 << 14, -(1<<14))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedshortArg_andsignedshortArg_(1 << 14, -42)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedshortArg_(1 << 14, 0)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedshortArg_(1 << 14, 42)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedshortArg_(1 << 14, 1 << 14)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 14)


    def testsignedshortAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andsignedintArg_(-(1<<14), -(1<<30))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -(1<<30))
        r = o.signedshortArg_andsignedintArg_(-(1<<14), -42)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedintArg_(-(1<<14), 0)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedintArg_(-(1<<14), 42)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedintArg_(-(1<<14), 1 << 30)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 30)
        r = o.signedshortArg_andsignedintArg_(-42, -(1<<30))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedshortArg_andsignedintArg_(-42, -42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedintArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedintArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedintArg_(-42, 1 << 30)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedshortArg_andsignedintArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedshortArg_andsignedintArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedshortArg_andsignedintArg_(42, -(1<<30))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedshortArg_andsignedintArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedintArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedintArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedintArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedshortArg_andsignedintArg_(1 << 14, -(1<<30))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedshortArg_andsignedintArg_(1 << 14, -42)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedintArg_(1 << 14, 0)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedintArg_(1 << 14, 42)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedintArg_(1 << 14, 1 << 30)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 30)


    def testsignedshortAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andsignedlongArg_(-(1<<14), -(1<<30))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -(1<<30))
        r = o.signedshortArg_andsignedlongArg_(-(1<<14), -42)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedlongArg_(-(1<<14), 0)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedlongArg_(-(1<<14), 42)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedlongArg_(-(1<<14), 1 << 30)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 30)
        r = o.signedshortArg_andsignedlongArg_(-42, -(1<<30))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedshortArg_andsignedlongArg_(-42, -42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedlongArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedlongArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedlongArg_(-42, 1 << 30)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedshortArg_andsignedlongArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedshortArg_andsignedlongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedshortArg_andsignedlongArg_(42, -(1<<30))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedshortArg_andsignedlongArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedlongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedlongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedlongArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedshortArg_andsignedlongArg_(1 << 14, -(1<<30))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedshortArg_andsignedlongArg_(1 << 14, -42)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedlongArg_(1 << 14, 0)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedlongArg_(1 << 14, 42)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedlongArg_(1 << 14, 1 << 30)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 30)


    def testsignedshortAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andsignedlonglongArg_(-(1<<14), -(1 << 60))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedshortArg_andsignedlonglongArg_(-(1<<14), -42)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedlonglongArg_(-(1<<14), 0)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedlonglongArg_(-(1<<14), 42)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedlonglongArg_(-(1<<14), 1 << 60)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 60)
        r = o.signedshortArg_andsignedlonglongArg_(-42, -(1 << 60))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedshortArg_andsignedlonglongArg_(-42, -42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedlonglongArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedlonglongArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedlonglongArg_(-42, 1 << 60)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 60)
        r = o.signedshortArg_andsignedlonglongArg_(0, -(1 << 60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedshortArg_andsignedlonglongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedlonglongArg_(0, 1 << 60)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = o.signedshortArg_andsignedlonglongArg_(42, -(1 << 60))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedshortArg_andsignedlonglongArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedlonglongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedlonglongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedlonglongArg_(42, 1 << 60)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = o.signedshortArg_andsignedlonglongArg_(1 << 14, -(1 << 60))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedshortArg_andsignedlonglongArg_(1 << 14, -42)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -42)
        r = o.signedshortArg_andsignedlonglongArg_(1 << 14, 0)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andsignedlonglongArg_(1 << 14, 42)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andsignedlonglongArg_(1 << 14, 1 << 60)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 60)


    def testsignedshortAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andunsignedcharArg_(-(1<<14), 0)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedcharArg_(-(1<<14), 128)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 128)
        r = o.signedshortArg_andunsignedcharArg_(-(1<<14), 255)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 255)
        r = o.signedshortArg_andunsignedcharArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedcharArg_(-42, 128)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 128)
        r = o.signedshortArg_andunsignedcharArg_(-42, 255)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 255)
        r = o.signedshortArg_andunsignedcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedcharArg_(0, 128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = o.signedshortArg_andunsignedcharArg_(0, 255)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = o.signedshortArg_andunsignedcharArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedcharArg_(42, 128)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = o.signedshortArg_andunsignedcharArg_(42, 255)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = o.signedshortArg_andunsignedcharArg_(1 << 14, 0)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedcharArg_(1 << 14, 128)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 128)
        r = o.signedshortArg_andunsignedcharArg_(1 << 14, 255)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 255)


    def testsignedshortAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andunsignedshortArg_(-(1<<14), 0)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedshortArg_(-(1<<14), 42)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedshortArg_(-(1<<14), 1<<14)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1<<14)
        r = o.signedshortArg_andunsignedshortArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedshortArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedshortArg_(-42, 1<<14)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1<<14)
        r = o.signedshortArg_andunsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedshortArg_(0, 1<<14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = o.signedshortArg_andunsignedshortArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedshortArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedshortArg_(42, 1<<14)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = o.signedshortArg_andunsignedshortArg_(1 << 14, 0)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedshortArg_(1 << 14, 42)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedshortArg_(1 << 14, 1<<14)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1<<14)


    def testsignedshortAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andunsignedintArg_(-(1<<14), 0)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedintArg_(-(1<<14), 42)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedintArg_(-(1<<14), 1 << 30)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 30)
        r = o.signedshortArg_andunsignedintArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedintArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedintArg_(-42, 1 << 30)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedshortArg_andunsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedshortArg_andunsignedintArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedintArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedintArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedshortArg_andunsignedintArg_(1 << 14, 0)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedintArg_(1 << 14, 42)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedintArg_(1 << 14, 1 << 30)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 30)


    def testsignedshortAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andunsignedlongArg_(-(1<<14), 0)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedlongArg_(-(1<<14), 42)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedlongArg_(-(1<<14), 1 << 30)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 30)
        r = o.signedshortArg_andunsignedlongArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedlongArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedlongArg_(-42, 1 << 30)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedshortArg_andunsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedshortArg_andunsignedlongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedlongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedlongArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedshortArg_andunsignedlongArg_(1 << 14, 0)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedlongArg_(1 << 14, 42)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedlongArg_(1 << 14, 1 << 30)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 30)


    def testsignedshortAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andunsignedlonglongArg_(-(1<<14), 0)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedlonglongArg_(-(1<<14), 42)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedlonglongArg_(-(1<<14), 1 << 62)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 62)
        r = o.signedshortArg_andunsignedlonglongArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedlonglongArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedlonglongArg_(-42, 1 << 62)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 62)
        r = o.signedshortArg_andunsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedlonglongArg_(0, 1 << 62)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = o.signedshortArg_andunsignedlonglongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedlonglongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedlonglongArg_(42, 1 << 62)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = o.signedshortArg_andunsignedlonglongArg_(1 << 14, 0)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = o.signedshortArg_andunsignedlonglongArg_(1 << 14, 42)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = o.signedshortArg_andunsignedlonglongArg_(1 << 14, 1 << 62)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 62)


    def testsignedshortAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andfloatArg_(-(1<<14), 0.128)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedshortArg_andfloatArg_(-(1<<14), 1.0)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedshortArg_andfloatArg_(-(1<<14), 42.0)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedshortArg_andfloatArg_(-(1<<14), 1e10)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedshortArg_andfloatArg_(-42, 0.128)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedshortArg_andfloatArg_(-42, 1.0)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedshortArg_andfloatArg_(-42, 42.0)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedshortArg_andfloatArg_(-42, 1e10)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedshortArg_andfloatArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedshortArg_andfloatArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedshortArg_andfloatArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedshortArg_andfloatArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedshortArg_andfloatArg_(42, 0.128)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedshortArg_andfloatArg_(42, 1.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedshortArg_andfloatArg_(42, 42.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedshortArg_andfloatArg_(42, 1e10)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedshortArg_andfloatArg_(1 << 14, 0.128)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedshortArg_andfloatArg_(1 << 14, 1.0)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedshortArg_andfloatArg_(1 << 14, 42.0)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedshortArg_andfloatArg_(1 << 14, 1e10)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 1e10)


    def testsignedshortAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_anddoubleArg_(-(1<<14), 0.128)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedshortArg_anddoubleArg_(-(1<<14), 1.0)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedshortArg_anddoubleArg_(-(1<<14), 42.0)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedshortArg_anddoubleArg_(-(1<<14), 1e10)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedshortArg_anddoubleArg_(-42, 0.128)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedshortArg_anddoubleArg_(-42, 1.0)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedshortArg_anddoubleArg_(-42, 42.0)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedshortArg_anddoubleArg_(-42, 1e10)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedshortArg_anddoubleArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedshortArg_anddoubleArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedshortArg_anddoubleArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedshortArg_anddoubleArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedshortArg_anddoubleArg_(42, 0.128)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedshortArg_anddoubleArg_(42, 1.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedshortArg_anddoubleArg_(42, 42.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedshortArg_anddoubleArg_(42, 1e10)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedshortArg_anddoubleArg_(1 << 14, 0.128)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedshortArg_anddoubleArg_(1 << 14, 1.0)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedshortArg_anddoubleArg_(1 << 14, 42.0)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedshortArg_anddoubleArg_(1 << 14, 1e10)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 1e10)


    def testsignedshortAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andidArg_(-(1<<14), NSPriorDayDesignations)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.signedshortArg_andidArg_(-42, NSPriorDayDesignations)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.signedshortArg_andidArg_(0, NSPriorDayDesignations)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.signedshortArg_andidArg_(42, NSPriorDayDesignations)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.signedshortArg_andidArg_(1 << 14, NSPriorDayDesignations)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testsignedshortAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andcharPtrArg_(-(1<<14), b"hello")
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], b"hello")
        r = o.signedshortArg_andcharPtrArg_(-(1<<14), b"world")
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], b"world")
        r = o.signedshortArg_andcharPtrArg_(-(1<<14), b"foobar")
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], b"foobar")
        r = o.signedshortArg_andcharPtrArg_(-42, b"hello")
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], b"hello")
        r = o.signedshortArg_andcharPtrArg_(-42, b"world")
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], b"world")
        r = o.signedshortArg_andcharPtrArg_(-42, b"foobar")
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], b"foobar")
        r = o.signedshortArg_andcharPtrArg_(0, b"hello")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"hello")
        r = o.signedshortArg_andcharPtrArg_(0, b"world")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"world")
        r = o.signedshortArg_andcharPtrArg_(0, b"foobar")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"foobar")
        r = o.signedshortArg_andcharPtrArg_(42, b"hello")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"hello")
        r = o.signedshortArg_andcharPtrArg_(42, b"world")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"world")
        r = o.signedshortArg_andcharPtrArg_(42, b"foobar")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"foobar")
        r = o.signedshortArg_andcharPtrArg_(1 << 14, b"hello")
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], b"hello")
        r = o.signedshortArg_andcharPtrArg_(1 << 14, b"world")
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], b"world")
        r = o.signedshortArg_andcharPtrArg_(1 << 14, b"foobar")
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], b"foobar")


    def testsignedshortAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andNSPointArg_(-(1<<14), (1, 2))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 2))
        r = o.signedshortArg_andNSPointArg_(-(1<<14), (3, 4))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (3, 4))
        r = o.signedshortArg_andNSPointArg_(-42, (1, 2))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = o.signedshortArg_andNSPointArg_(-42, (3, 4))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (3, 4))
        r = o.signedshortArg_andNSPointArg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.signedshortArg_andNSPointArg_(0, (3, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = o.signedshortArg_andNSPointArg_(42, (1, 2))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = o.signedshortArg_andNSPointArg_(42, (3, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = o.signedshortArg_andNSPointArg_(1 << 14, (1, 2))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 2))
        r = o.signedshortArg_andNSPointArg_(1 << 14, (3, 4))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (3, 4))


    def testsignedshortAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andNSRectArg_(-(1<<14), ((1, 2), (3, 4)))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedshortArg_andNSRectArg_(-(1<<14), ((7, 8), (9, 10)))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.signedshortArg_andNSRectArg_(-42, ((1, 2), (3, 4)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedshortArg_andNSRectArg_(-42, ((7, 8), (9, 10)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.signedshortArg_andNSRectArg_(0, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedshortArg_andNSRectArg_(0, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.signedshortArg_andNSRectArg_(42, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedshortArg_andNSRectArg_(42, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.signedshortArg_andNSRectArg_(1 << 14, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedshortArg_andNSRectArg_(1 << 14, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testsignedshortAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andstructTestStruct1Arg_(-(1<<14), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedshortArg_andstructTestStruct1Arg_(-(1<<14), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedshortArg_andstructTestStruct1Arg_(-42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedshortArg_andstructTestStruct1Arg_(-42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedshortArg_andstructTestStruct1Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedshortArg_andstructTestStruct1Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedshortArg_andstructTestStruct1Arg_(42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedshortArg_andstructTestStruct1Arg_(42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedshortArg_andstructTestStruct1Arg_(1 << 14, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedshortArg_andstructTestStruct1Arg_(1 << 14, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testsignedshortAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andstructTestStruct2Arg_(-(1<<14), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedshortArg_andstructTestStruct2Arg_(-(1<<14), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedshortArg_andstructTestStruct2Arg_(-42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedshortArg_andstructTestStruct2Arg_(-42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedshortArg_andstructTestStruct2Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedshortArg_andstructTestStruct2Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedshortArg_andstructTestStruct2Arg_(42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedshortArg_andstructTestStruct2Arg_(42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedshortArg_andstructTestStruct2Arg_(1 << 14, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedshortArg_andstructTestStruct2Arg_(1 << 14, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testsignedshortAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andstructTestStruct3Arg_(-(1<<14), (1, 2))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 2))
        r = o.signedshortArg_andstructTestStruct3Arg_(-(1<<14), (2, 4))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (2, 4))
        r = o.signedshortArg_andstructTestStruct3Arg_(-42, (1, 2))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = o.signedshortArg_andstructTestStruct3Arg_(-42, (2, 4))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = o.signedshortArg_andstructTestStruct3Arg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.signedshortArg_andstructTestStruct3Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.signedshortArg_andstructTestStruct3Arg_(42, (1, 2))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = o.signedshortArg_andstructTestStruct3Arg_(42, (2, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = o.signedshortArg_andstructTestStruct3Arg_(1 << 14, (1, 2))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 2))
        r = o.signedshortArg_andstructTestStruct3Arg_(1 << 14, (2, 4))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (2, 4))


    def testsignedshortAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andstructTestStruct4Arg_(-(1<<14), (1, 1<<60))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedshortArg_andstructTestStruct4Arg_(-(1<<14), (2, 4))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (2, 4))
        r = o.signedshortArg_andstructTestStruct4Arg_(-42, (1, 1<<60))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedshortArg_andstructTestStruct4Arg_(-42, (2, 4))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = o.signedshortArg_andstructTestStruct4Arg_(0, (1, 1<<60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedshortArg_andstructTestStruct4Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.signedshortArg_andstructTestStruct4Arg_(42, (1, 1<<60))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedshortArg_andstructTestStruct4Arg_(42, (2, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = o.signedshortArg_andstructTestStruct4Arg_(1 << 14, (1, 1<<60))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedshortArg_andstructTestStruct4Arg_(1 << 14, (2, 4))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (2, 4))


    def testsignedshortAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortArg_andstructTestStruct5Arg_(-(1<<14), (1, 2.5))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedshortArg_andstructTestStruct5Arg_(-(1<<14), (2, 4.5))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (2, 4.5))
        r = o.signedshortArg_andstructTestStruct5Arg_(-42, (1, 2.5))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedshortArg_andstructTestStruct5Arg_(-42, (2, 4.5))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4.5))
        r = o.signedshortArg_andstructTestStruct5Arg_(0, (1, 2.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedshortArg_andstructTestStruct5Arg_(0, (2, 4.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = o.signedshortArg_andstructTestStruct5Arg_(42, (1, 2.5))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedshortArg_andstructTestStruct5Arg_(42, (2, 4.5))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = o.signedshortArg_andstructTestStruct5Arg_(1 << 14, (1, 2.5))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedshortArg_andstructTestStruct5Arg_(1 << 14, (2, 4.5))
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (2, 4.5))


    def testsignedintAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andboolArg_(-(1<<30), YES)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], YES)
        r = o.signedintArg_andboolArg_(-(1<<30), NO)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NO)
        r = o.signedintArg_andboolArg_(-42, YES)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = o.signedintArg_andboolArg_(-42, NO)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = o.signedintArg_andboolArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.signedintArg_andboolArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.signedintArg_andboolArg_(42, YES)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = o.signedintArg_andboolArg_(42, NO)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = o.signedintArg_andboolArg_(1 << 30, YES)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = o.signedintArg_andboolArg_(1 << 30, NO)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testsignedintAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andBOOLArg_(-(1<<30), YES)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], YES)
        r = o.signedintArg_andBOOLArg_(-(1<<30), NO)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NO)
        r = o.signedintArg_andBOOLArg_(-42, YES)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = o.signedintArg_andBOOLArg_(-42, NO)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = o.signedintArg_andBOOLArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.signedintArg_andBOOLArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.signedintArg_andBOOLArg_(42, YES)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = o.signedintArg_andBOOLArg_(42, NO)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = o.signedintArg_andBOOLArg_(1 << 30, YES)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = o.signedintArg_andBOOLArg_(1 << 30, NO)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testsignedintAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andcharArg_(-(1<<30), -128)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -128)
        r = o.signedintArg_andcharArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andcharArg_(-(1<<30), 127)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 127)
        r = o.signedintArg_andcharArg_(-42, -128)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -128)
        r = o.signedintArg_andcharArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andcharArg_(-42, 127)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 127)
        r = o.signedintArg_andcharArg_(0, -128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = o.signedintArg_andcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andcharArg_(0, 127)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = o.signedintArg_andcharArg_(42, -128)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = o.signedintArg_andcharArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andcharArg_(42, 127)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = o.signedintArg_andcharArg_(1 << 30, -128)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -128)
        r = o.signedintArg_andcharArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andcharArg_(1 << 30, 127)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 127)


    def testsignedintAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andsignedshortArg_(-(1<<30), -(1<<14))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<14))
        r = o.signedintArg_andsignedshortArg_(-(1<<30), -42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedshortArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedshortArg_(-(1<<30), 42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedshortArg_(-(1<<30), 1 << 14)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 14)
        r = o.signedintArg_andsignedshortArg_(-42, -(1<<14))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedintArg_andsignedshortArg_(-42, -42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedshortArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedshortArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedshortArg_(-42, 1 << 14)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 14)
        r = o.signedintArg_andsignedshortArg_(0, -(1<<14))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedintArg_andsignedshortArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedshortArg_(0, 1 << 14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = o.signedintArg_andsignedshortArg_(42, -(1<<14))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedintArg_andsignedshortArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedshortArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedshortArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedshortArg_(42, 1 << 14)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = o.signedintArg_andsignedshortArg_(1 << 30, -(1<<14))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedintArg_andsignedshortArg_(1 << 30, -42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedshortArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedshortArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedshortArg_(1 << 30, 1 << 14)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 14)


    def testsignedintAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andsignedintArg_(-(1<<30), -(1<<30))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<30))
        r = o.signedintArg_andsignedintArg_(-(1<<30), -42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedintArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedintArg_(-(1<<30), 42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedintArg_(-(1<<30), 1 << 30)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = o.signedintArg_andsignedintArg_(-42, -(1<<30))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedintArg_andsignedintArg_(-42, -42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedintArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedintArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedintArg_(-42, 1 << 30)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedintArg_andsignedintArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedintArg_andsignedintArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedintArg_andsignedintArg_(42, -(1<<30))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedintArg_andsignedintArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedintArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedintArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedintArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedintArg_andsignedintArg_(1 << 30, -(1<<30))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedintArg_andsignedintArg_(1 << 30, -42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedintArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedintArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedintArg_(1 << 30, 1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testsignedintAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andsignedlongArg_(-(1<<30), -(1<<30))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<30))
        r = o.signedintArg_andsignedlongArg_(-(1<<30), -42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedlongArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedlongArg_(-(1<<30), 42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedlongArg_(-(1<<30), 1 << 30)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = o.signedintArg_andsignedlongArg_(-42, -(1<<30))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedintArg_andsignedlongArg_(-42, -42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedlongArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedlongArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedlongArg_(-42, 1 << 30)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedintArg_andsignedlongArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedintArg_andsignedlongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedintArg_andsignedlongArg_(42, -(1<<30))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedintArg_andsignedlongArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedlongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedlongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedlongArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedintArg_andsignedlongArg_(1 << 30, -(1<<30))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedintArg_andsignedlongArg_(1 << 30, -42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedlongArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedlongArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedlongArg_(1 << 30, 1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testsignedintAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andsignedlonglongArg_(-(1<<30), -(1 << 60))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedintArg_andsignedlonglongArg_(-(1<<30), -42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedlonglongArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedlonglongArg_(-(1<<30), 42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedlonglongArg_(-(1<<30), 1 << 60)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 60)
        r = o.signedintArg_andsignedlonglongArg_(-42, -(1 << 60))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedintArg_andsignedlonglongArg_(-42, -42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedlonglongArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedlonglongArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedlonglongArg_(-42, 1 << 60)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 60)
        r = o.signedintArg_andsignedlonglongArg_(0, -(1 << 60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedintArg_andsignedlonglongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedlonglongArg_(0, 1 << 60)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = o.signedintArg_andsignedlonglongArg_(42, -(1 << 60))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedintArg_andsignedlonglongArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedlonglongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedlonglongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedlonglongArg_(42, 1 << 60)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = o.signedintArg_andsignedlonglongArg_(1 << 30, -(1 << 60))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedintArg_andsignedlonglongArg_(1 << 30, -42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = o.signedintArg_andsignedlonglongArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andsignedlonglongArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andsignedlonglongArg_(1 << 30, 1 << 60)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 60)


    def testsignedintAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andunsignedcharArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedcharArg_(-(1<<30), 128)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 128)
        r = o.signedintArg_andunsignedcharArg_(-(1<<30), 255)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 255)
        r = o.signedintArg_andunsignedcharArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedcharArg_(-42, 128)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 128)
        r = o.signedintArg_andunsignedcharArg_(-42, 255)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 255)
        r = o.signedintArg_andunsignedcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedcharArg_(0, 128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = o.signedintArg_andunsignedcharArg_(0, 255)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = o.signedintArg_andunsignedcharArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedcharArg_(42, 128)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = o.signedintArg_andunsignedcharArg_(42, 255)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = o.signedintArg_andunsignedcharArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedcharArg_(1 << 30, 128)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 128)
        r = o.signedintArg_andunsignedcharArg_(1 << 30, 255)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 255)


    def testsignedintAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andunsignedshortArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedshortArg_(-(1<<30), 42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedshortArg_(-(1<<30), 1<<14)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1<<14)
        r = o.signedintArg_andunsignedshortArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedshortArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedshortArg_(-42, 1<<14)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1<<14)
        r = o.signedintArg_andunsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedshortArg_(0, 1<<14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = o.signedintArg_andunsignedshortArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedshortArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedshortArg_(42, 1<<14)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = o.signedintArg_andunsignedshortArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedshortArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedshortArg_(1 << 30, 1<<14)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1<<14)


    def testsignedintAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andunsignedintArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedintArg_(-(1<<30), 42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedintArg_(-(1<<30), 1 << 30)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = o.signedintArg_andunsignedintArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedintArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedintArg_(-42, 1 << 30)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedintArg_andunsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedintArg_andunsignedintArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedintArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedintArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedintArg_andunsignedintArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedintArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedintArg_(1 << 30, 1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testsignedintAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andunsignedlongArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedlongArg_(-(1<<30), 42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedlongArg_(-(1<<30), 1 << 30)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = o.signedintArg_andunsignedlongArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedlongArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedlongArg_(-42, 1 << 30)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedintArg_andunsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedintArg_andunsignedlongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedlongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedlongArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedintArg_andunsignedlongArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedlongArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedlongArg_(1 << 30, 1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testsignedintAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andunsignedlonglongArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedlonglongArg_(-(1<<30), 42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedlonglongArg_(-(1<<30), 1 << 62)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 62)
        r = o.signedintArg_andunsignedlonglongArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedlonglongArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedlonglongArg_(-42, 1 << 62)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 62)
        r = o.signedintArg_andunsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedlonglongArg_(0, 1 << 62)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = o.signedintArg_andunsignedlonglongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedlonglongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedlonglongArg_(42, 1 << 62)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = o.signedintArg_andunsignedlonglongArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedintArg_andunsignedlonglongArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.signedintArg_andunsignedlonglongArg_(1 << 30, 1 << 62)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 62)


    def testsignedintAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andfloatArg_(-(1<<30), 0.128)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedintArg_andfloatArg_(-(1<<30), 1.0)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedintArg_andfloatArg_(-(1<<30), 42.0)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedintArg_andfloatArg_(-(1<<30), 1e10)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedintArg_andfloatArg_(-42, 0.128)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedintArg_andfloatArg_(-42, 1.0)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedintArg_andfloatArg_(-42, 42.0)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedintArg_andfloatArg_(-42, 1e10)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedintArg_andfloatArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedintArg_andfloatArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedintArg_andfloatArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedintArg_andfloatArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedintArg_andfloatArg_(42, 0.128)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedintArg_andfloatArg_(42, 1.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedintArg_andfloatArg_(42, 42.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedintArg_andfloatArg_(42, 1e10)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedintArg_andfloatArg_(1 << 30, 0.128)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedintArg_andfloatArg_(1 << 30, 1.0)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedintArg_andfloatArg_(1 << 30, 42.0)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedintArg_andfloatArg_(1 << 30, 1e10)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testsignedintAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_anddoubleArg_(-(1<<30), 0.128)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedintArg_anddoubleArg_(-(1<<30), 1.0)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedintArg_anddoubleArg_(-(1<<30), 42.0)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedintArg_anddoubleArg_(-(1<<30), 1e10)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedintArg_anddoubleArg_(-42, 0.128)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedintArg_anddoubleArg_(-42, 1.0)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedintArg_anddoubleArg_(-42, 42.0)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedintArg_anddoubleArg_(-42, 1e10)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedintArg_anddoubleArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedintArg_anddoubleArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedintArg_anddoubleArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedintArg_anddoubleArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedintArg_anddoubleArg_(42, 0.128)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedintArg_anddoubleArg_(42, 1.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedintArg_anddoubleArg_(42, 42.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedintArg_anddoubleArg_(42, 1e10)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedintArg_anddoubleArg_(1 << 30, 0.128)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedintArg_anddoubleArg_(1 << 30, 1.0)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedintArg_anddoubleArg_(1 << 30, 42.0)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedintArg_anddoubleArg_(1 << 30, 1e10)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testsignedintAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andidArg_(-(1<<30), NSPriorDayDesignations)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.signedintArg_andidArg_(-42, NSPriorDayDesignations)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.signedintArg_andidArg_(0, NSPriorDayDesignations)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.signedintArg_andidArg_(42, NSPriorDayDesignations)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.signedintArg_andidArg_(1 << 30, NSPriorDayDesignations)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testsignedintAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andcharPtrArg_(-(1<<30), b"hello")
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], b"hello")
        r = o.signedintArg_andcharPtrArg_(-(1<<30), b"world")
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], b"world")
        r = o.signedintArg_andcharPtrArg_(-(1<<30), b"foobar")
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], b"foobar")
        r = o.signedintArg_andcharPtrArg_(-42, b"hello")
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], b"hello")
        r = o.signedintArg_andcharPtrArg_(-42, b"world")
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], b"world")
        r = o.signedintArg_andcharPtrArg_(-42, b"foobar")
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], b"foobar")
        r = o.signedintArg_andcharPtrArg_(0, b"hello")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"hello")
        r = o.signedintArg_andcharPtrArg_(0, b"world")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"world")
        r = o.signedintArg_andcharPtrArg_(0, b"foobar")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"foobar")
        r = o.signedintArg_andcharPtrArg_(42, b"hello")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"hello")
        r = o.signedintArg_andcharPtrArg_(42, b"world")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"world")
        r = o.signedintArg_andcharPtrArg_(42, b"foobar")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"foobar")
        r = o.signedintArg_andcharPtrArg_(1 << 30, b"hello")
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], b"hello")
        r = o.signedintArg_andcharPtrArg_(1 << 30, b"world")
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], b"world")
        r = o.signedintArg_andcharPtrArg_(1 << 30, b"foobar")
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], b"foobar")


    def testsignedintAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andNSPointArg_(-(1<<30), (1, 2))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2))
        r = o.signedintArg_andNSPointArg_(-(1<<30), (3, 4))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (3, 4))
        r = o.signedintArg_andNSPointArg_(-42, (1, 2))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = o.signedintArg_andNSPointArg_(-42, (3, 4))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (3, 4))
        r = o.signedintArg_andNSPointArg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.signedintArg_andNSPointArg_(0, (3, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = o.signedintArg_andNSPointArg_(42, (1, 2))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = o.signedintArg_andNSPointArg_(42, (3, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = o.signedintArg_andNSPointArg_(1 << 30, (1, 2))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = o.signedintArg_andNSPointArg_(1 << 30, (3, 4))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (3, 4))


    def testsignedintAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andNSRectArg_(-(1<<30), ((1, 2), (3, 4)))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedintArg_andNSRectArg_(-(1<<30), ((7, 8), (9, 10)))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.signedintArg_andNSRectArg_(-42, ((1, 2), (3, 4)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedintArg_andNSRectArg_(-42, ((7, 8), (9, 10)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.signedintArg_andNSRectArg_(0, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedintArg_andNSRectArg_(0, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.signedintArg_andNSRectArg_(42, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedintArg_andNSRectArg_(42, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.signedintArg_andNSRectArg_(1 << 30, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedintArg_andNSRectArg_(1 << 30, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testsignedintAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andstructTestStruct1Arg_(-(1<<30), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedintArg_andstructTestStruct1Arg_(-(1<<30), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedintArg_andstructTestStruct1Arg_(-42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedintArg_andstructTestStruct1Arg_(-42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedintArg_andstructTestStruct1Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedintArg_andstructTestStruct1Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedintArg_andstructTestStruct1Arg_(42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedintArg_andstructTestStruct1Arg_(42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedintArg_andstructTestStruct1Arg_(1 << 30, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedintArg_andstructTestStruct1Arg_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testsignedintAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andstructTestStruct2Arg_(-(1<<30), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedintArg_andstructTestStruct2Arg_(-(1<<30), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedintArg_andstructTestStruct2Arg_(-42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedintArg_andstructTestStruct2Arg_(-42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedintArg_andstructTestStruct2Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedintArg_andstructTestStruct2Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedintArg_andstructTestStruct2Arg_(42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedintArg_andstructTestStruct2Arg_(42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedintArg_andstructTestStruct2Arg_(1 << 30, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedintArg_andstructTestStruct2Arg_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testsignedintAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andstructTestStruct3Arg_(-(1<<30), (1, 2))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2))
        r = o.signedintArg_andstructTestStruct3Arg_(-(1<<30), (2, 4))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4))
        r = o.signedintArg_andstructTestStruct3Arg_(-42, (1, 2))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = o.signedintArg_andstructTestStruct3Arg_(-42, (2, 4))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = o.signedintArg_andstructTestStruct3Arg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.signedintArg_andstructTestStruct3Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.signedintArg_andstructTestStruct3Arg_(42, (1, 2))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = o.signedintArg_andstructTestStruct3Arg_(42, (2, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = o.signedintArg_andstructTestStruct3Arg_(1 << 30, (1, 2))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = o.signedintArg_andstructTestStruct3Arg_(1 << 30, (2, 4))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testsignedintAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andstructTestStruct4Arg_(-(1<<30), (1, 1<<60))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedintArg_andstructTestStruct4Arg_(-(1<<30), (2, 4))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4))
        r = o.signedintArg_andstructTestStruct4Arg_(-42, (1, 1<<60))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedintArg_andstructTestStruct4Arg_(-42, (2, 4))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = o.signedintArg_andstructTestStruct4Arg_(0, (1, 1<<60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedintArg_andstructTestStruct4Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.signedintArg_andstructTestStruct4Arg_(42, (1, 1<<60))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedintArg_andstructTestStruct4Arg_(42, (2, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = o.signedintArg_andstructTestStruct4Arg_(1 << 30, (1, 1<<60))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedintArg_andstructTestStruct4Arg_(1 << 30, (2, 4))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testsignedintAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintArg_andstructTestStruct5Arg_(-(1<<30), (1, 2.5))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedintArg_andstructTestStruct5Arg_(-(1<<30), (2, 4.5))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4.5))
        r = o.signedintArg_andstructTestStruct5Arg_(-42, (1, 2.5))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedintArg_andstructTestStruct5Arg_(-42, (2, 4.5))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4.5))
        r = o.signedintArg_andstructTestStruct5Arg_(0, (1, 2.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedintArg_andstructTestStruct5Arg_(0, (2, 4.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = o.signedintArg_andstructTestStruct5Arg_(42, (1, 2.5))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedintArg_andstructTestStruct5Arg_(42, (2, 4.5))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = o.signedintArg_andstructTestStruct5Arg_(1 << 30, (1, 2.5))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedintArg_andstructTestStruct5Arg_(1 << 30, (2, 4.5))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4.5))


    def testsignedlongAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andboolArg_(-(1<<30), YES)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], YES)
        r = o.signedlongArg_andboolArg_(-(1<<30), NO)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NO)
        r = o.signedlongArg_andboolArg_(-42, YES)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = o.signedlongArg_andboolArg_(-42, NO)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = o.signedlongArg_andboolArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.signedlongArg_andboolArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.signedlongArg_andboolArg_(42, YES)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = o.signedlongArg_andboolArg_(42, NO)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = o.signedlongArg_andboolArg_(1 << 30, YES)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = o.signedlongArg_andboolArg_(1 << 30, NO)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testsignedlongAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andBOOLArg_(-(1<<30), YES)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], YES)
        r = o.signedlongArg_andBOOLArg_(-(1<<30), NO)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NO)
        r = o.signedlongArg_andBOOLArg_(-42, YES)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = o.signedlongArg_andBOOLArg_(-42, NO)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = o.signedlongArg_andBOOLArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.signedlongArg_andBOOLArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.signedlongArg_andBOOLArg_(42, YES)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = o.signedlongArg_andBOOLArg_(42, NO)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = o.signedlongArg_andBOOLArg_(1 << 30, YES)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = o.signedlongArg_andBOOLArg_(1 << 30, NO)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testsignedlongAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andcharArg_(-(1<<30), -128)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -128)
        r = o.signedlongArg_andcharArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andcharArg_(-(1<<30), 127)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 127)
        r = o.signedlongArg_andcharArg_(-42, -128)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -128)
        r = o.signedlongArg_andcharArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andcharArg_(-42, 127)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 127)
        r = o.signedlongArg_andcharArg_(0, -128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = o.signedlongArg_andcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andcharArg_(0, 127)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = o.signedlongArg_andcharArg_(42, -128)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = o.signedlongArg_andcharArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andcharArg_(42, 127)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = o.signedlongArg_andcharArg_(1 << 30, -128)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -128)
        r = o.signedlongArg_andcharArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andcharArg_(1 << 30, 127)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 127)


    def testsignedlongAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andsignedshortArg_(-(1<<30), -(1<<14))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<14))
        r = o.signedlongArg_andsignedshortArg_(-(1<<30), -42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedshortArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedshortArg_(-(1<<30), 42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedshortArg_(-(1<<30), 1 << 14)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 14)
        r = o.signedlongArg_andsignedshortArg_(-42, -(1<<14))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedlongArg_andsignedshortArg_(-42, -42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedshortArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedshortArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedshortArg_(-42, 1 << 14)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 14)
        r = o.signedlongArg_andsignedshortArg_(0, -(1<<14))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedlongArg_andsignedshortArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedshortArg_(0, 1 << 14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = o.signedlongArg_andsignedshortArg_(42, -(1<<14))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedlongArg_andsignedshortArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedshortArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedshortArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedshortArg_(42, 1 << 14)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = o.signedlongArg_andsignedshortArg_(1 << 30, -(1<<14))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedlongArg_andsignedshortArg_(1 << 30, -42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedshortArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedshortArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedshortArg_(1 << 30, 1 << 14)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 14)


    def testsignedlongAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andsignedintArg_(-(1<<30), -(1<<30))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlongArg_andsignedintArg_(-(1<<30), -42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedintArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedintArg_(-(1<<30), 42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedintArg_(-(1<<30), 1 << 30)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlongArg_andsignedintArg_(-42, -(1<<30))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlongArg_andsignedintArg_(-42, -42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedintArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedintArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedintArg_(-42, 1 << 30)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlongArg_andsignedintArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlongArg_andsignedintArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlongArg_andsignedintArg_(42, -(1<<30))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlongArg_andsignedintArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedintArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedintArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedintArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlongArg_andsignedintArg_(1 << 30, -(1<<30))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlongArg_andsignedintArg_(1 << 30, -42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedintArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedintArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedintArg_(1 << 30, 1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testsignedlongAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andsignedlongArg_(-(1<<30), -(1<<30))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlongArg_andsignedlongArg_(-(1<<30), -42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedlongArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedlongArg_(-(1<<30), 42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedlongArg_(-(1<<30), 1 << 30)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlongArg_andsignedlongArg_(-42, -(1<<30))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlongArg_andsignedlongArg_(-42, -42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedlongArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedlongArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedlongArg_(-42, 1 << 30)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlongArg_andsignedlongArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlongArg_andsignedlongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlongArg_andsignedlongArg_(42, -(1<<30))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlongArg_andsignedlongArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedlongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedlongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedlongArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlongArg_andsignedlongArg_(1 << 30, -(1<<30))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlongArg_andsignedlongArg_(1 << 30, -42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedlongArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedlongArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedlongArg_(1 << 30, 1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testsignedlongAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andsignedlonglongArg_(-(1<<30), -(1 << 60))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedlongArg_andsignedlonglongArg_(-(1<<30), -42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedlonglongArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedlonglongArg_(-(1<<30), 42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedlonglongArg_(-(1<<30), 1 << 60)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 60)
        r = o.signedlongArg_andsignedlonglongArg_(-42, -(1 << 60))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedlongArg_andsignedlonglongArg_(-42, -42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedlonglongArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedlonglongArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedlonglongArg_(-42, 1 << 60)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 60)
        r = o.signedlongArg_andsignedlonglongArg_(0, -(1 << 60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedlongArg_andsignedlonglongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedlonglongArg_(0, 1 << 60)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = o.signedlongArg_andsignedlonglongArg_(42, -(1 << 60))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedlongArg_andsignedlonglongArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedlonglongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedlonglongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedlonglongArg_(42, 1 << 60)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = o.signedlongArg_andsignedlonglongArg_(1 << 30, -(1 << 60))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedlongArg_andsignedlonglongArg_(1 << 30, -42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = o.signedlongArg_andsignedlonglongArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andsignedlonglongArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andsignedlonglongArg_(1 << 30, 1 << 60)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 60)


    def testsignedlongAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andunsignedcharArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedcharArg_(-(1<<30), 128)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 128)
        r = o.signedlongArg_andunsignedcharArg_(-(1<<30), 255)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 255)
        r = o.signedlongArg_andunsignedcharArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedcharArg_(-42, 128)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 128)
        r = o.signedlongArg_andunsignedcharArg_(-42, 255)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 255)
        r = o.signedlongArg_andunsignedcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedcharArg_(0, 128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = o.signedlongArg_andunsignedcharArg_(0, 255)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = o.signedlongArg_andunsignedcharArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedcharArg_(42, 128)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = o.signedlongArg_andunsignedcharArg_(42, 255)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = o.signedlongArg_andunsignedcharArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedcharArg_(1 << 30, 128)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 128)
        r = o.signedlongArg_andunsignedcharArg_(1 << 30, 255)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 255)


    def testsignedlongAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andunsignedshortArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedshortArg_(-(1<<30), 42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedshortArg_(-(1<<30), 1<<14)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1<<14)
        r = o.signedlongArg_andunsignedshortArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedshortArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedshortArg_(-42, 1<<14)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1<<14)
        r = o.signedlongArg_andunsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedshortArg_(0, 1<<14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = o.signedlongArg_andunsignedshortArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedshortArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedshortArg_(42, 1<<14)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = o.signedlongArg_andunsignedshortArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedshortArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedshortArg_(1 << 30, 1<<14)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1<<14)


    def testsignedlongAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andunsignedintArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedintArg_(-(1<<30), 42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedintArg_(-(1<<30), 1 << 30)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlongArg_andunsignedintArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedintArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedintArg_(-42, 1 << 30)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlongArg_andunsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlongArg_andunsignedintArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedintArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedintArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlongArg_andunsignedintArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedintArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedintArg_(1 << 30, 1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testsignedlongAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andunsignedlongArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedlongArg_(-(1<<30), 42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedlongArg_(-(1<<30), 1 << 30)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlongArg_andunsignedlongArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedlongArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedlongArg_(-42, 1 << 30)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlongArg_andunsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlongArg_andunsignedlongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedlongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedlongArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlongArg_andunsignedlongArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedlongArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedlongArg_(1 << 30, 1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testsignedlongAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andunsignedlonglongArg_(-(1<<30), 0)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedlonglongArg_(-(1<<30), 42)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedlonglongArg_(-(1<<30), 1 << 62)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 62)
        r = o.signedlongArg_andunsignedlonglongArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedlonglongArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedlonglongArg_(-42, 1 << 62)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 62)
        r = o.signedlongArg_andunsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedlonglongArg_(0, 1 << 62)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = o.signedlongArg_andunsignedlonglongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedlonglongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedlonglongArg_(42, 1 << 62)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = o.signedlongArg_andunsignedlonglongArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.signedlongArg_andunsignedlonglongArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.signedlongArg_andunsignedlonglongArg_(1 << 30, 1 << 62)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 62)


    def testsignedlongAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andfloatArg_(-(1<<30), 0.128)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlongArg_andfloatArg_(-(1<<30), 1.0)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlongArg_andfloatArg_(-(1<<30), 42.0)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlongArg_andfloatArg_(-(1<<30), 1e10)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedlongArg_andfloatArg_(-42, 0.128)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlongArg_andfloatArg_(-42, 1.0)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlongArg_andfloatArg_(-42, 42.0)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlongArg_andfloatArg_(-42, 1e10)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedlongArg_andfloatArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlongArg_andfloatArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlongArg_andfloatArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlongArg_andfloatArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedlongArg_andfloatArg_(42, 0.128)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlongArg_andfloatArg_(42, 1.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlongArg_andfloatArg_(42, 42.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlongArg_andfloatArg_(42, 1e10)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedlongArg_andfloatArg_(1 << 30, 0.128)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlongArg_andfloatArg_(1 << 30, 1.0)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlongArg_andfloatArg_(1 << 30, 42.0)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlongArg_andfloatArg_(1 << 30, 1e10)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testsignedlongAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_anddoubleArg_(-(1<<30), 0.128)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlongArg_anddoubleArg_(-(1<<30), 1.0)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlongArg_anddoubleArg_(-(1<<30), 42.0)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlongArg_anddoubleArg_(-(1<<30), 1e10)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedlongArg_anddoubleArg_(-42, 0.128)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlongArg_anddoubleArg_(-42, 1.0)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlongArg_anddoubleArg_(-42, 42.0)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlongArg_anddoubleArg_(-42, 1e10)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedlongArg_anddoubleArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlongArg_anddoubleArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlongArg_anddoubleArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlongArg_anddoubleArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedlongArg_anddoubleArg_(42, 0.128)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlongArg_anddoubleArg_(42, 1.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlongArg_anddoubleArg_(42, 42.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlongArg_anddoubleArg_(42, 1e10)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedlongArg_anddoubleArg_(1 << 30, 0.128)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlongArg_anddoubleArg_(1 << 30, 1.0)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlongArg_anddoubleArg_(1 << 30, 42.0)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlongArg_anddoubleArg_(1 << 30, 1e10)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testsignedlongAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andidArg_(-(1<<30), NSPriorDayDesignations)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.signedlongArg_andidArg_(-42, NSPriorDayDesignations)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.signedlongArg_andidArg_(0, NSPriorDayDesignations)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.signedlongArg_andidArg_(42, NSPriorDayDesignations)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.signedlongArg_andidArg_(1 << 30, NSPriorDayDesignations)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testsignedlongAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andcharPtrArg_(-(1<<30), b"hello")
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], b"hello")
        r = o.signedlongArg_andcharPtrArg_(-(1<<30), b"world")
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], b"world")
        r = o.signedlongArg_andcharPtrArg_(-(1<<30), b"foobar")
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], b"foobar")
        r = o.signedlongArg_andcharPtrArg_(-42, b"hello")
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], b"hello")
        r = o.signedlongArg_andcharPtrArg_(-42, b"world")
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], b"world")
        r = o.signedlongArg_andcharPtrArg_(-42, b"foobar")
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], b"foobar")
        r = o.signedlongArg_andcharPtrArg_(0, b"hello")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"hello")
        r = o.signedlongArg_andcharPtrArg_(0, b"world")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"world")
        r = o.signedlongArg_andcharPtrArg_(0, b"foobar")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"foobar")
        r = o.signedlongArg_andcharPtrArg_(42, b"hello")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"hello")
        r = o.signedlongArg_andcharPtrArg_(42, b"world")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"world")
        r = o.signedlongArg_andcharPtrArg_(42, b"foobar")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"foobar")
        r = o.signedlongArg_andcharPtrArg_(1 << 30, b"hello")
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], b"hello")
        r = o.signedlongArg_andcharPtrArg_(1 << 30, b"world")
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], b"world")
        r = o.signedlongArg_andcharPtrArg_(1 << 30, b"foobar")
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], b"foobar")


    def testsignedlongAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andNSPointArg_(-(1<<30), (1, 2))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2))
        r = o.signedlongArg_andNSPointArg_(-(1<<30), (3, 4))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (3, 4))
        r = o.signedlongArg_andNSPointArg_(-42, (1, 2))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = o.signedlongArg_andNSPointArg_(-42, (3, 4))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (3, 4))
        r = o.signedlongArg_andNSPointArg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.signedlongArg_andNSPointArg_(0, (3, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = o.signedlongArg_andNSPointArg_(42, (1, 2))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = o.signedlongArg_andNSPointArg_(42, (3, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = o.signedlongArg_andNSPointArg_(1 << 30, (1, 2))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = o.signedlongArg_andNSPointArg_(1 << 30, (3, 4))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (3, 4))


    def testsignedlongAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andNSRectArg_(-(1<<30), ((1, 2), (3, 4)))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedlongArg_andNSRectArg_(-(1<<30), ((7, 8), (9, 10)))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.signedlongArg_andNSRectArg_(-42, ((1, 2), (3, 4)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedlongArg_andNSRectArg_(-42, ((7, 8), (9, 10)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.signedlongArg_andNSRectArg_(0, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedlongArg_andNSRectArg_(0, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.signedlongArg_andNSRectArg_(42, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedlongArg_andNSRectArg_(42, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.signedlongArg_andNSRectArg_(1 << 30, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedlongArg_andNSRectArg_(1 << 30, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testsignedlongAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andstructTestStruct1Arg_(-(1<<30), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlongArg_andstructTestStruct1Arg_(-(1<<30), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedlongArg_andstructTestStruct1Arg_(-42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlongArg_andstructTestStruct1Arg_(-42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedlongArg_andstructTestStruct1Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlongArg_andstructTestStruct1Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedlongArg_andstructTestStruct1Arg_(42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlongArg_andstructTestStruct1Arg_(42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedlongArg_andstructTestStruct1Arg_(1 << 30, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlongArg_andstructTestStruct1Arg_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testsignedlongAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andstructTestStruct2Arg_(-(1<<30), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlongArg_andstructTestStruct2Arg_(-(1<<30), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedlongArg_andstructTestStruct2Arg_(-42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlongArg_andstructTestStruct2Arg_(-42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedlongArg_andstructTestStruct2Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlongArg_andstructTestStruct2Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedlongArg_andstructTestStruct2Arg_(42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlongArg_andstructTestStruct2Arg_(42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedlongArg_andstructTestStruct2Arg_(1 << 30, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlongArg_andstructTestStruct2Arg_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testsignedlongAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andstructTestStruct3Arg_(-(1<<30), (1, 2))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2))
        r = o.signedlongArg_andstructTestStruct3Arg_(-(1<<30), (2, 4))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4))
        r = o.signedlongArg_andstructTestStruct3Arg_(-42, (1, 2))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = o.signedlongArg_andstructTestStruct3Arg_(-42, (2, 4))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = o.signedlongArg_andstructTestStruct3Arg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.signedlongArg_andstructTestStruct3Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.signedlongArg_andstructTestStruct3Arg_(42, (1, 2))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = o.signedlongArg_andstructTestStruct3Arg_(42, (2, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = o.signedlongArg_andstructTestStruct3Arg_(1 << 30, (1, 2))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = o.signedlongArg_andstructTestStruct3Arg_(1 << 30, (2, 4))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testsignedlongAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andstructTestStruct4Arg_(-(1<<30), (1, 1<<60))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedlongArg_andstructTestStruct4Arg_(-(1<<30), (2, 4))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4))
        r = o.signedlongArg_andstructTestStruct4Arg_(-42, (1, 1<<60))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedlongArg_andstructTestStruct4Arg_(-42, (2, 4))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = o.signedlongArg_andstructTestStruct4Arg_(0, (1, 1<<60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedlongArg_andstructTestStruct4Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.signedlongArg_andstructTestStruct4Arg_(42, (1, 1<<60))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedlongArg_andstructTestStruct4Arg_(42, (2, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = o.signedlongArg_andstructTestStruct4Arg_(1 << 30, (1, 1<<60))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedlongArg_andstructTestStruct4Arg_(1 << 30, (2, 4))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testsignedlongAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongArg_andstructTestStruct5Arg_(-(1<<30), (1, 2.5))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedlongArg_andstructTestStruct5Arg_(-(1<<30), (2, 4.5))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4.5))
        r = o.signedlongArg_andstructTestStruct5Arg_(-42, (1, 2.5))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedlongArg_andstructTestStruct5Arg_(-42, (2, 4.5))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4.5))
        r = o.signedlongArg_andstructTestStruct5Arg_(0, (1, 2.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedlongArg_andstructTestStruct5Arg_(0, (2, 4.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = o.signedlongArg_andstructTestStruct5Arg_(42, (1, 2.5))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedlongArg_andstructTestStruct5Arg_(42, (2, 4.5))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = o.signedlongArg_andstructTestStruct5Arg_(1 << 30, (1, 2.5))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedlongArg_andstructTestStruct5Arg_(1 << 30, (2, 4.5))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4.5))


    def testsignedlonglongAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andboolArg_(-(1 << 60), YES)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], YES)
        r = o.signedlonglongArg_andboolArg_(-(1 << 60), NO)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], NO)
        r = o.signedlonglongArg_andboolArg_(-42, YES)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = o.signedlonglongArg_andboolArg_(-42, NO)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = o.signedlonglongArg_andboolArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.signedlonglongArg_andboolArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.signedlonglongArg_andboolArg_(42, YES)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = o.signedlonglongArg_andboolArg_(42, NO)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = o.signedlonglongArg_andboolArg_(1 << 60, YES)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], YES)
        r = o.signedlonglongArg_andboolArg_(1 << 60, NO)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], NO)


    def testsignedlonglongAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andBOOLArg_(-(1 << 60), YES)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], YES)
        r = o.signedlonglongArg_andBOOLArg_(-(1 << 60), NO)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], NO)
        r = o.signedlonglongArg_andBOOLArg_(-42, YES)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = o.signedlonglongArg_andBOOLArg_(-42, NO)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = o.signedlonglongArg_andBOOLArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.signedlonglongArg_andBOOLArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.signedlonglongArg_andBOOLArg_(42, YES)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = o.signedlonglongArg_andBOOLArg_(42, NO)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = o.signedlonglongArg_andBOOLArg_(1 << 60, YES)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], YES)
        r = o.signedlonglongArg_andBOOLArg_(1 << 60, NO)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], NO)


    def testsignedlonglongAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andcharArg_(-(1 << 60), -128)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -128)
        r = o.signedlonglongArg_andcharArg_(-(1 << 60), 0)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andcharArg_(-(1 << 60), 127)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 127)
        r = o.signedlonglongArg_andcharArg_(-42, -128)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -128)
        r = o.signedlonglongArg_andcharArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andcharArg_(-42, 127)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 127)
        r = o.signedlonglongArg_andcharArg_(0, -128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = o.signedlonglongArg_andcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andcharArg_(0, 127)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = o.signedlonglongArg_andcharArg_(42, -128)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = o.signedlonglongArg_andcharArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andcharArg_(42, 127)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = o.signedlonglongArg_andcharArg_(1 << 60, -128)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -128)
        r = o.signedlonglongArg_andcharArg_(1 << 60, 0)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andcharArg_(1 << 60, 127)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 127)


    def testsignedlonglongAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andsignedshortArg_(-(1 << 60), -(1<<14))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -(1<<14))
        r = o.signedlonglongArg_andsignedshortArg_(-(1 << 60), -42)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedshortArg_(-(1 << 60), 0)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedshortArg_(-(1 << 60), 42)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedshortArg_(-(1 << 60), 1 << 14)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 14)
        r = o.signedlonglongArg_andsignedshortArg_(-42, -(1<<14))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedlonglongArg_andsignedshortArg_(-42, -42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedshortArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedshortArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedshortArg_(-42, 1 << 14)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 14)
        r = o.signedlonglongArg_andsignedshortArg_(0, -(1<<14))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedlonglongArg_andsignedshortArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedshortArg_(0, 1 << 14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = o.signedlonglongArg_andsignedshortArg_(42, -(1<<14))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedlonglongArg_andsignedshortArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedshortArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedshortArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedshortArg_(42, 1 << 14)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = o.signedlonglongArg_andsignedshortArg_(1 << 60, -(1<<14))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedlonglongArg_andsignedshortArg_(1 << 60, -42)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedshortArg_(1 << 60, 0)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedshortArg_(1 << 60, 42)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedshortArg_(1 << 60, 1 << 14)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 14)


    def testsignedlonglongAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andsignedintArg_(-(1 << 60), -(1<<30))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlonglongArg_andsignedintArg_(-(1 << 60), -42)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedintArg_(-(1 << 60), 0)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedintArg_(-(1 << 60), 42)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedintArg_(-(1 << 60), 1 << 30)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlonglongArg_andsignedintArg_(-42, -(1<<30))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlonglongArg_andsignedintArg_(-42, -42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedintArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedintArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedintArg_(-42, 1 << 30)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlonglongArg_andsignedintArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlonglongArg_andsignedintArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlonglongArg_andsignedintArg_(42, -(1<<30))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlonglongArg_andsignedintArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedintArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedintArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedintArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlonglongArg_andsignedintArg_(1 << 60, -(1<<30))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlonglongArg_andsignedintArg_(1 << 60, -42)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedintArg_(1 << 60, 0)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedintArg_(1 << 60, 42)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedintArg_(1 << 60, 1 << 30)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 30)


    def testsignedlonglongAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andsignedlongArg_(-(1 << 60), -(1<<30))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlonglongArg_andsignedlongArg_(-(1 << 60), -42)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedlongArg_(-(1 << 60), 0)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedlongArg_(-(1 << 60), 42)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedlongArg_(-(1 << 60), 1 << 30)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlonglongArg_andsignedlongArg_(-42, -(1<<30))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlonglongArg_andsignedlongArg_(-42, -42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedlongArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedlongArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedlongArg_(-42, 1 << 30)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlonglongArg_andsignedlongArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlonglongArg_andsignedlongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlonglongArg_andsignedlongArg_(42, -(1<<30))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlonglongArg_andsignedlongArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedlongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedlongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedlongArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlonglongArg_andsignedlongArg_(1 << 60, -(1<<30))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlonglongArg_andsignedlongArg_(1 << 60, -42)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedlongArg_(1 << 60, 0)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedlongArg_(1 << 60, 42)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedlongArg_(1 << 60, 1 << 30)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 30)


    def testsignedlonglongAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andsignedlonglongArg_(-(1 << 60), -(1 << 60))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedlonglongArg_andsignedlonglongArg_(-(1 << 60), -42)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedlonglongArg_(-(1 << 60), 0)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedlonglongArg_(-(1 << 60), 42)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedlonglongArg_(-(1 << 60), 1 << 60)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 60)
        r = o.signedlonglongArg_andsignedlonglongArg_(-42, -(1 << 60))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedlonglongArg_andsignedlonglongArg_(-42, -42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedlonglongArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedlonglongArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedlonglongArg_(-42, 1 << 60)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 60)
        r = o.signedlonglongArg_andsignedlonglongArg_(0, -(1 << 60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedlonglongArg_andsignedlonglongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedlonglongArg_(0, 1 << 60)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = o.signedlonglongArg_andsignedlonglongArg_(42, -(1 << 60))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedlonglongArg_andsignedlonglongArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedlonglongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedlonglongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedlonglongArg_(42, 1 << 60)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = o.signedlonglongArg_andsignedlonglongArg_(1 << 60, -(1 << 60))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedlonglongArg_andsignedlonglongArg_(1 << 60, -42)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongArg_andsignedlonglongArg_(1 << 60, 0)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andsignedlonglongArg_(1 << 60, 42)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andsignedlonglongArg_(1 << 60, 1 << 60)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 60)


    def testsignedlonglongAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andunsignedcharArg_(-(1 << 60), 0)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedcharArg_(-(1 << 60), 128)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 128)
        r = o.signedlonglongArg_andunsignedcharArg_(-(1 << 60), 255)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 255)
        r = o.signedlonglongArg_andunsignedcharArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedcharArg_(-42, 128)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 128)
        r = o.signedlonglongArg_andunsignedcharArg_(-42, 255)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 255)
        r = o.signedlonglongArg_andunsignedcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedcharArg_(0, 128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = o.signedlonglongArg_andunsignedcharArg_(0, 255)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = o.signedlonglongArg_andunsignedcharArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedcharArg_(42, 128)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = o.signedlonglongArg_andunsignedcharArg_(42, 255)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = o.signedlonglongArg_andunsignedcharArg_(1 << 60, 0)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedcharArg_(1 << 60, 128)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 128)
        r = o.signedlonglongArg_andunsignedcharArg_(1 << 60, 255)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 255)


    def testsignedlonglongAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andunsignedshortArg_(-(1 << 60), 0)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedshortArg_(-(1 << 60), 42)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedshortArg_(-(1 << 60), 1<<14)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1<<14)
        r = o.signedlonglongArg_andunsignedshortArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedshortArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedshortArg_(-42, 1<<14)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1<<14)
        r = o.signedlonglongArg_andunsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedshortArg_(0, 1<<14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = o.signedlonglongArg_andunsignedshortArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedshortArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedshortArg_(42, 1<<14)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = o.signedlonglongArg_andunsignedshortArg_(1 << 60, 0)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedshortArg_(1 << 60, 42)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedshortArg_(1 << 60, 1<<14)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1<<14)


    def testsignedlonglongAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andunsignedintArg_(-(1 << 60), 0)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedintArg_(-(1 << 60), 42)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedintArg_(-(1 << 60), 1 << 30)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlonglongArg_andunsignedintArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedintArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedintArg_(-42, 1 << 30)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlonglongArg_andunsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlonglongArg_andunsignedintArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedintArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedintArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlonglongArg_andunsignedintArg_(1 << 60, 0)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedintArg_(1 << 60, 42)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedintArg_(1 << 60, 1 << 30)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 30)


    def testsignedlonglongAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andunsignedlongArg_(-(1 << 60), 0)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedlongArg_(-(1 << 60), 42)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedlongArg_(-(1 << 60), 1 << 30)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlonglongArg_andunsignedlongArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedlongArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedlongArg_(-42, 1 << 30)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlonglongArg_andunsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlonglongArg_andunsignedlongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedlongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedlongArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.signedlonglongArg_andunsignedlongArg_(1 << 60, 0)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedlongArg_(1 << 60, 42)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedlongArg_(1 << 60, 1 << 30)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 30)


    def testsignedlonglongAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andunsignedlonglongArg_(-(1 << 60), 0)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedlonglongArg_(-(1 << 60), 42)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedlonglongArg_(-(1 << 60), 1 << 62)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 62)
        r = o.signedlonglongArg_andunsignedlonglongArg_(-42, 0)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedlonglongArg_(-42, 42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedlonglongArg_(-42, 1 << 62)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 62)
        r = o.signedlonglongArg_andunsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedlonglongArg_(0, 1 << 62)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = o.signedlonglongArg_andunsignedlonglongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedlonglongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedlonglongArg_(42, 1 << 62)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = o.signedlonglongArg_andunsignedlonglongArg_(1 << 60, 0)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongArg_andunsignedlonglongArg_(1 << 60, 42)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongArg_andunsignedlonglongArg_(1 << 60, 1 << 62)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 62)


    def testsignedlonglongAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andfloatArg_(-(1 << 60), 0.128)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlonglongArg_andfloatArg_(-(1 << 60), 1.0)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlonglongArg_andfloatArg_(-(1 << 60), 42.0)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlonglongArg_andfloatArg_(-(1 << 60), 1e10)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedlonglongArg_andfloatArg_(-42, 0.128)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlonglongArg_andfloatArg_(-42, 1.0)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlonglongArg_andfloatArg_(-42, 42.0)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlonglongArg_andfloatArg_(-42, 1e10)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedlonglongArg_andfloatArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlonglongArg_andfloatArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlonglongArg_andfloatArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlonglongArg_andfloatArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedlonglongArg_andfloatArg_(42, 0.128)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlonglongArg_andfloatArg_(42, 1.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlonglongArg_andfloatArg_(42, 42.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlonglongArg_andfloatArg_(42, 1e10)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedlonglongArg_andfloatArg_(1 << 60, 0.128)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlonglongArg_andfloatArg_(1 << 60, 1.0)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlonglongArg_andfloatArg_(1 << 60, 42.0)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlonglongArg_andfloatArg_(1 << 60, 1e10)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 1e10)


    def testsignedlonglongAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_anddoubleArg_(-(1 << 60), 0.128)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlonglongArg_anddoubleArg_(-(1 << 60), 1.0)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlonglongArg_anddoubleArg_(-(1 << 60), 42.0)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlonglongArg_anddoubleArg_(-(1 << 60), 1e10)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedlonglongArg_anddoubleArg_(-42, 0.128)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlonglongArg_anddoubleArg_(-42, 1.0)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlonglongArg_anddoubleArg_(-42, 42.0)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlonglongArg_anddoubleArg_(-42, 1e10)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedlonglongArg_anddoubleArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlonglongArg_anddoubleArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlonglongArg_anddoubleArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlonglongArg_anddoubleArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedlonglongArg_anddoubleArg_(42, 0.128)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlonglongArg_anddoubleArg_(42, 1.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlonglongArg_anddoubleArg_(42, 42.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlonglongArg_anddoubleArg_(42, 1e10)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.signedlonglongArg_anddoubleArg_(1 << 60, 0.128)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.signedlonglongArg_anddoubleArg_(1 << 60, 1.0)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.signedlonglongArg_anddoubleArg_(1 << 60, 42.0)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.signedlonglongArg_anddoubleArg_(1 << 60, 1e10)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 1e10)


    def testsignedlonglongAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andidArg_(-(1 << 60), NSPriorDayDesignations)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.signedlonglongArg_andidArg_(-42, NSPriorDayDesignations)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.signedlonglongArg_andidArg_(0, NSPriorDayDesignations)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.signedlonglongArg_andidArg_(42, NSPriorDayDesignations)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.signedlonglongArg_andidArg_(1 << 60, NSPriorDayDesignations)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testsignedlonglongAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andcharPtrArg_(-(1 << 60), b"hello")
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], b"hello")
        r = o.signedlonglongArg_andcharPtrArg_(-(1 << 60), b"world")
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], b"world")
        r = o.signedlonglongArg_andcharPtrArg_(-(1 << 60), b"foobar")
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], b"foobar")
        r = o.signedlonglongArg_andcharPtrArg_(-42, b"hello")
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], b"hello")
        r = o.signedlonglongArg_andcharPtrArg_(-42, b"world")
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], b"world")
        r = o.signedlonglongArg_andcharPtrArg_(-42, b"foobar")
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], b"foobar")
        r = o.signedlonglongArg_andcharPtrArg_(0, b"hello")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"hello")
        r = o.signedlonglongArg_andcharPtrArg_(0, b"world")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"world")
        r = o.signedlonglongArg_andcharPtrArg_(0, b"foobar")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"foobar")
        r = o.signedlonglongArg_andcharPtrArg_(42, b"hello")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"hello")
        r = o.signedlonglongArg_andcharPtrArg_(42, b"world")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"world")
        r = o.signedlonglongArg_andcharPtrArg_(42, b"foobar")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"foobar")
        r = o.signedlonglongArg_andcharPtrArg_(1 << 60, b"hello")
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], b"hello")
        r = o.signedlonglongArg_andcharPtrArg_(1 << 60, b"world")
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], b"world")
        r = o.signedlonglongArg_andcharPtrArg_(1 << 60, b"foobar")
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], b"foobar")


    def testsignedlonglongAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andNSPointArg_(-(1 << 60), (1, 2))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 2))
        r = o.signedlonglongArg_andNSPointArg_(-(1 << 60), (3, 4))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (3, 4))
        r = o.signedlonglongArg_andNSPointArg_(-42, (1, 2))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = o.signedlonglongArg_andNSPointArg_(-42, (3, 4))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (3, 4))
        r = o.signedlonglongArg_andNSPointArg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.signedlonglongArg_andNSPointArg_(0, (3, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = o.signedlonglongArg_andNSPointArg_(42, (1, 2))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = o.signedlonglongArg_andNSPointArg_(42, (3, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = o.signedlonglongArg_andNSPointArg_(1 << 60, (1, 2))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 2))
        r = o.signedlonglongArg_andNSPointArg_(1 << 60, (3, 4))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (3, 4))


    def testsignedlonglongAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andNSRectArg_(-(1 << 60), ((1, 2), (3, 4)))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedlonglongArg_andNSRectArg_(-(1 << 60), ((7, 8), (9, 10)))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.signedlonglongArg_andNSRectArg_(-42, ((1, 2), (3, 4)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedlonglongArg_andNSRectArg_(-42, ((7, 8), (9, 10)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.signedlonglongArg_andNSRectArg_(0, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedlonglongArg_andNSRectArg_(0, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.signedlonglongArg_andNSRectArg_(42, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedlonglongArg_andNSRectArg_(42, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.signedlonglongArg_andNSRectArg_(1 << 60, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.signedlonglongArg_andNSRectArg_(1 << 60, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testsignedlonglongAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andstructTestStruct1Arg_(-(1 << 60), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlonglongArg_andstructTestStruct1Arg_(-(1 << 60), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedlonglongArg_andstructTestStruct1Arg_(-42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlonglongArg_andstructTestStruct1Arg_(-42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedlonglongArg_andstructTestStruct1Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlonglongArg_andstructTestStruct1Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedlonglongArg_andstructTestStruct1Arg_(42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlonglongArg_andstructTestStruct1Arg_(42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedlonglongArg_andstructTestStruct1Arg_(1 << 60, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlonglongArg_andstructTestStruct1Arg_(1 << 60, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testsignedlonglongAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andstructTestStruct2Arg_(-(1 << 60), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlonglongArg_andstructTestStruct2Arg_(-(1 << 60), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedlonglongArg_andstructTestStruct2Arg_(-42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlonglongArg_andstructTestStruct2Arg_(-42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedlonglongArg_andstructTestStruct2Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlonglongArg_andstructTestStruct2Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedlonglongArg_andstructTestStruct2Arg_(42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlonglongArg_andstructTestStruct2Arg_(42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.signedlonglongArg_andstructTestStruct2Arg_(1 << 60, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.signedlonglongArg_andstructTestStruct2Arg_(1 << 60, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testsignedlonglongAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andstructTestStruct3Arg_(-(1 << 60), (1, 2))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 2))
        r = o.signedlonglongArg_andstructTestStruct3Arg_(-(1 << 60), (2, 4))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (2, 4))
        r = o.signedlonglongArg_andstructTestStruct3Arg_(-42, (1, 2))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = o.signedlonglongArg_andstructTestStruct3Arg_(-42, (2, 4))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = o.signedlonglongArg_andstructTestStruct3Arg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.signedlonglongArg_andstructTestStruct3Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.signedlonglongArg_andstructTestStruct3Arg_(42, (1, 2))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = o.signedlonglongArg_andstructTestStruct3Arg_(42, (2, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = o.signedlonglongArg_andstructTestStruct3Arg_(1 << 60, (1, 2))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 2))
        r = o.signedlonglongArg_andstructTestStruct3Arg_(1 << 60, (2, 4))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (2, 4))


    def testsignedlonglongAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andstructTestStruct4Arg_(-(1 << 60), (1, 1<<60))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedlonglongArg_andstructTestStruct4Arg_(-(1 << 60), (2, 4))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (2, 4))
        r = o.signedlonglongArg_andstructTestStruct4Arg_(-42, (1, 1<<60))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedlonglongArg_andstructTestStruct4Arg_(-42, (2, 4))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = o.signedlonglongArg_andstructTestStruct4Arg_(0, (1, 1<<60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedlonglongArg_andstructTestStruct4Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.signedlonglongArg_andstructTestStruct4Arg_(42, (1, 1<<60))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedlonglongArg_andstructTestStruct4Arg_(42, (2, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = o.signedlonglongArg_andstructTestStruct4Arg_(1 << 60, (1, 1<<60))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.signedlonglongArg_andstructTestStruct4Arg_(1 << 60, (2, 4))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (2, 4))


    def testsignedlonglongAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongArg_andstructTestStruct5Arg_(-(1 << 60), (1, 2.5))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedlonglongArg_andstructTestStruct5Arg_(-(1 << 60), (2, 4.5))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (2, 4.5))
        r = o.signedlonglongArg_andstructTestStruct5Arg_(-42, (1, 2.5))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedlonglongArg_andstructTestStruct5Arg_(-42, (2, 4.5))
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4.5))
        r = o.signedlonglongArg_andstructTestStruct5Arg_(0, (1, 2.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedlonglongArg_andstructTestStruct5Arg_(0, (2, 4.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = o.signedlonglongArg_andstructTestStruct5Arg_(42, (1, 2.5))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedlonglongArg_andstructTestStruct5Arg_(42, (2, 4.5))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = o.signedlonglongArg_andstructTestStruct5Arg_(1 << 60, (1, 2.5))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 2.5))
        r = o.signedlonglongArg_andstructTestStruct5Arg_(1 << 60, (2, 4.5))
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (2, 4.5))


    def testunsignedcharAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andboolArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.unsignedcharArg_andboolArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.unsignedcharArg_andboolArg_(128, YES)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], YES)
        r = o.unsignedcharArg_andboolArg_(128, NO)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], NO)
        r = o.unsignedcharArg_andboolArg_(255, YES)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], YES)
        r = o.unsignedcharArg_andboolArg_(255, NO)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], NO)


    def testunsignedcharAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andBOOLArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.unsignedcharArg_andBOOLArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.unsignedcharArg_andBOOLArg_(128, YES)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], YES)
        r = o.unsignedcharArg_andBOOLArg_(128, NO)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], NO)
        r = o.unsignedcharArg_andBOOLArg_(255, YES)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], YES)
        r = o.unsignedcharArg_andBOOLArg_(255, NO)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], NO)


    def testunsignedcharAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andcharArg_(0, -128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = o.unsignedcharArg_andcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andcharArg_(0, 127)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = o.unsignedcharArg_andcharArg_(128, -128)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -128)
        r = o.unsignedcharArg_andcharArg_(128, 0)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andcharArg_(128, 127)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 127)
        r = o.unsignedcharArg_andcharArg_(255, -128)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -128)
        r = o.unsignedcharArg_andcharArg_(255, 0)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andcharArg_(255, 127)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 127)


    def testunsignedcharAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andsignedshortArg_(0, -(1<<14))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = o.unsignedcharArg_andsignedshortArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedcharArg_andsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andsignedshortArg_(0, 1 << 14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = o.unsignedcharArg_andsignedshortArg_(128, -(1<<14))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -(1<<14))
        r = o.unsignedcharArg_andsignedshortArg_(128, -42)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -42)
        r = o.unsignedcharArg_andsignedshortArg_(128, 0)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andsignedshortArg_(128, 42)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andsignedshortArg_(128, 1 << 14)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 14)
        r = o.unsignedcharArg_andsignedshortArg_(255, -(1<<14))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -(1<<14))
        r = o.unsignedcharArg_andsignedshortArg_(255, -42)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -42)
        r = o.unsignedcharArg_andsignedshortArg_(255, 0)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andsignedshortArg_(255, 42)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andsignedshortArg_(255, 1 << 14)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 14)


    def testunsignedcharAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andsignedintArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedcharArg_andsignedintArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedcharArg_andsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedcharArg_andsignedintArg_(128, -(1<<30))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedcharArg_andsignedintArg_(128, -42)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -42)
        r = o.unsignedcharArg_andsignedintArg_(128, 0)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andsignedintArg_(128, 42)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andsignedintArg_(128, 1 << 30)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedcharArg_andsignedintArg_(255, -(1<<30))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedcharArg_andsignedintArg_(255, -42)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -42)
        r = o.unsignedcharArg_andsignedintArg_(255, 0)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andsignedintArg_(255, 42)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andsignedintArg_(255, 1 << 30)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedcharAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andsignedlongArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedcharArg_andsignedlongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedcharArg_andsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedcharArg_andsignedlongArg_(128, -(1<<30))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedcharArg_andsignedlongArg_(128, -42)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -42)
        r = o.unsignedcharArg_andsignedlongArg_(128, 0)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andsignedlongArg_(128, 42)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andsignedlongArg_(128, 1 << 30)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedcharArg_andsignedlongArg_(255, -(1<<30))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedcharArg_andsignedlongArg_(255, -42)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -42)
        r = o.unsignedcharArg_andsignedlongArg_(255, 0)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andsignedlongArg_(255, 42)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andsignedlongArg_(255, 1 << 30)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedcharAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andsignedlonglongArg_(0, -(1 << 60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = o.unsignedcharArg_andsignedlonglongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedcharArg_andsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andsignedlonglongArg_(0, 1 << 60)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = o.unsignedcharArg_andsignedlonglongArg_(128, -(1 << 60))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -(1 << 60))
        r = o.unsignedcharArg_andsignedlonglongArg_(128, -42)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -42)
        r = o.unsignedcharArg_andsignedlonglongArg_(128, 0)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andsignedlonglongArg_(128, 42)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andsignedlonglongArg_(128, 1 << 60)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 60)
        r = o.unsignedcharArg_andsignedlonglongArg_(255, -(1 << 60))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -(1 << 60))
        r = o.unsignedcharArg_andsignedlonglongArg_(255, -42)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -42)
        r = o.unsignedcharArg_andsignedlonglongArg_(255, 0)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andsignedlonglongArg_(255, 42)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andsignedlonglongArg_(255, 1 << 60)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 60)


    def testunsignedcharAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andunsignedcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andunsignedcharArg_(0, 128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = o.unsignedcharArg_andunsignedcharArg_(0, 255)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = o.unsignedcharArg_andunsignedcharArg_(128, 0)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andunsignedcharArg_(128, 128)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 128)
        r = o.unsignedcharArg_andunsignedcharArg_(128, 255)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 255)
        r = o.unsignedcharArg_andunsignedcharArg_(255, 0)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andunsignedcharArg_(255, 128)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 128)
        r = o.unsignedcharArg_andunsignedcharArg_(255, 255)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 255)


    def testunsignedcharAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andunsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andunsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andunsignedshortArg_(0, 1<<14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = o.unsignedcharArg_andunsignedshortArg_(128, 0)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andunsignedshortArg_(128, 42)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andunsignedshortArg_(128, 1<<14)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1<<14)
        r = o.unsignedcharArg_andunsignedshortArg_(255, 0)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andunsignedshortArg_(255, 42)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andunsignedshortArg_(255, 1<<14)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1<<14)


    def testunsignedcharAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andunsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andunsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andunsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedcharArg_andunsignedintArg_(128, 0)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andunsignedintArg_(128, 42)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andunsignedintArg_(128, 1 << 30)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedcharArg_andunsignedintArg_(255, 0)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andunsignedintArg_(255, 42)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andunsignedintArg_(255, 1 << 30)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedcharAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andunsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andunsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andunsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedcharArg_andunsignedlongArg_(128, 0)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andunsignedlongArg_(128, 42)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andunsignedlongArg_(128, 1 << 30)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedcharArg_andunsignedlongArg_(255, 0)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andunsignedlongArg_(255, 42)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andunsignedlongArg_(255, 1 << 30)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedcharAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andunsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andunsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andunsignedlonglongArg_(0, 1 << 62)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = o.unsignedcharArg_andunsignedlonglongArg_(128, 0)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andunsignedlonglongArg_(128, 42)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andunsignedlonglongArg_(128, 1 << 62)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 62)
        r = o.unsignedcharArg_andunsignedlonglongArg_(255, 0)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharArg_andunsignedlonglongArg_(255, 42)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = o.unsignedcharArg_andunsignedlonglongArg_(255, 1 << 62)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 62)


    def testunsignedcharAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andfloatArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedcharArg_andfloatArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedcharArg_andfloatArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedcharArg_andfloatArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedcharArg_andfloatArg_(128, 0.128)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedcharArg_andfloatArg_(128, 1.0)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedcharArg_andfloatArg_(128, 42.0)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedcharArg_andfloatArg_(128, 1e10)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedcharArg_andfloatArg_(255, 0.128)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedcharArg_andfloatArg_(255, 1.0)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedcharArg_andfloatArg_(255, 42.0)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedcharArg_andfloatArg_(255, 1e10)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 1e10)


    def testunsignedcharAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_anddoubleArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedcharArg_anddoubleArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedcharArg_anddoubleArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedcharArg_anddoubleArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedcharArg_anddoubleArg_(128, 0.128)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedcharArg_anddoubleArg_(128, 1.0)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedcharArg_anddoubleArg_(128, 42.0)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedcharArg_anddoubleArg_(128, 1e10)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedcharArg_anddoubleArg_(255, 0.128)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedcharArg_anddoubleArg_(255, 1.0)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedcharArg_anddoubleArg_(255, 42.0)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedcharArg_anddoubleArg_(255, 1e10)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 1e10)


    def testunsignedcharAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andidArg_(0, NSPriorDayDesignations)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.unsignedcharArg_andidArg_(128, NSPriorDayDesignations)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.unsignedcharArg_andidArg_(255, NSPriorDayDesignations)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testunsignedcharAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andcharPtrArg_(0, b"hello")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"hello")
        r = o.unsignedcharArg_andcharPtrArg_(0, b"world")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"world")
        r = o.unsignedcharArg_andcharPtrArg_(0, b"foobar")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"foobar")
        r = o.unsignedcharArg_andcharPtrArg_(128, b"hello")
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], b"hello")
        r = o.unsignedcharArg_andcharPtrArg_(128, b"world")
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], b"world")
        r = o.unsignedcharArg_andcharPtrArg_(128, b"foobar")
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], b"foobar")
        r = o.unsignedcharArg_andcharPtrArg_(255, b"hello")
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], b"hello")
        r = o.unsignedcharArg_andcharPtrArg_(255, b"world")
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], b"world")
        r = o.unsignedcharArg_andcharPtrArg_(255, b"foobar")
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], b"foobar")


    def testunsignedcharAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andNSPointArg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedcharArg_andNSPointArg_(0, (3, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = o.unsignedcharArg_andNSPointArg_(128, (1, 2))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedcharArg_andNSPointArg_(128, (3, 4))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (3, 4))
        r = o.unsignedcharArg_andNSPointArg_(255, (1, 2))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedcharArg_andNSPointArg_(255, (3, 4))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (3, 4))


    def testunsignedcharAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andNSRectArg_(0, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.unsignedcharArg_andNSRectArg_(0, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.unsignedcharArg_andNSRectArg_(128, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.unsignedcharArg_andNSRectArg_(128, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.unsignedcharArg_andNSRectArg_(255, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.unsignedcharArg_andNSRectArg_(255, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testunsignedcharAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andstructTestStruct1Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedcharArg_andstructTestStruct1Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedcharArg_andstructTestStruct1Arg_(128, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedcharArg_andstructTestStruct1Arg_(128, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedcharArg_andstructTestStruct1Arg_(255, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedcharArg_andstructTestStruct1Arg_(255, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testunsignedcharAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andstructTestStruct2Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedcharArg_andstructTestStruct2Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedcharArg_andstructTestStruct2Arg_(128, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedcharArg_andstructTestStruct2Arg_(128, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedcharArg_andstructTestStruct2Arg_(255, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedcharArg_andstructTestStruct2Arg_(255, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testunsignedcharAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andstructTestStruct3Arg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedcharArg_andstructTestStruct3Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedcharArg_andstructTestStruct3Arg_(128, (1, 2))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedcharArg_andstructTestStruct3Arg_(128, (2, 4))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedcharArg_andstructTestStruct3Arg_(255, (1, 2))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedcharArg_andstructTestStruct3Arg_(255, (2, 4))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (2, 4))


    def testunsignedcharAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andstructTestStruct4Arg_(0, (1, 1<<60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.unsignedcharArg_andstructTestStruct4Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedcharArg_andstructTestStruct4Arg_(128, (1, 1<<60))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.unsignedcharArg_andstructTestStruct4Arg_(128, (2, 4))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedcharArg_andstructTestStruct4Arg_(255, (1, 1<<60))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.unsignedcharArg_andstructTestStruct4Arg_(255, (2, 4))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (2, 4))


    def testunsignedcharAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharArg_andstructTestStruct5Arg_(0, (1, 2.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = o.unsignedcharArg_andstructTestStruct5Arg_(0, (2, 4.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = o.unsignedcharArg_andstructTestStruct5Arg_(128, (1, 2.5))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 2.5))
        r = o.unsignedcharArg_andstructTestStruct5Arg_(128, (2, 4.5))
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (2, 4.5))
        r = o.unsignedcharArg_andstructTestStruct5Arg_(255, (1, 2.5))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 2.5))
        r = o.unsignedcharArg_andstructTestStruct5Arg_(255, (2, 4.5))
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (2, 4.5))


    def testunsignedshortAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andboolArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.unsignedshortArg_andboolArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.unsignedshortArg_andboolArg_(42, YES)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = o.unsignedshortArg_andboolArg_(42, NO)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = o.unsignedshortArg_andboolArg_(1<<14, YES)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], YES)
        r = o.unsignedshortArg_andboolArg_(1<<14, NO)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], NO)


    def testunsignedshortAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andBOOLArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.unsignedshortArg_andBOOLArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.unsignedshortArg_andBOOLArg_(42, YES)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = o.unsignedshortArg_andBOOLArg_(42, NO)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = o.unsignedshortArg_andBOOLArg_(1<<14, YES)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], YES)
        r = o.unsignedshortArg_andBOOLArg_(1<<14, NO)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], NO)


    def testunsignedshortAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andcharArg_(0, -128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = o.unsignedshortArg_andcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andcharArg_(0, 127)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = o.unsignedshortArg_andcharArg_(42, -128)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = o.unsignedshortArg_andcharArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andcharArg_(42, 127)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = o.unsignedshortArg_andcharArg_(1<<14, -128)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -128)
        r = o.unsignedshortArg_andcharArg_(1<<14, 0)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andcharArg_(1<<14, 127)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 127)


    def testunsignedshortAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andsignedshortArg_(0, -(1<<14))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = o.unsignedshortArg_andsignedshortArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedshortArg_andsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andsignedshortArg_(0, 1 << 14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = o.unsignedshortArg_andsignedshortArg_(42, -(1<<14))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = o.unsignedshortArg_andsignedshortArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.unsignedshortArg_andsignedshortArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andsignedshortArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andsignedshortArg_(42, 1 << 14)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = o.unsignedshortArg_andsignedshortArg_(1<<14, -(1<<14))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -(1<<14))
        r = o.unsignedshortArg_andsignedshortArg_(1<<14, -42)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -42)
        r = o.unsignedshortArg_andsignedshortArg_(1<<14, 0)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andsignedshortArg_(1<<14, 42)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andsignedshortArg_(1<<14, 1 << 14)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 14)


    def testunsignedshortAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andsignedintArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedshortArg_andsignedintArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedshortArg_andsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedshortArg_andsignedintArg_(42, -(1<<30))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedshortArg_andsignedintArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.unsignedshortArg_andsignedintArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andsignedintArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andsignedintArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedshortArg_andsignedintArg_(1<<14, -(1<<30))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedshortArg_andsignedintArg_(1<<14, -42)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -42)
        r = o.unsignedshortArg_andsignedintArg_(1<<14, 0)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andsignedintArg_(1<<14, 42)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andsignedintArg_(1<<14, 1 << 30)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedshortAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andsignedlongArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedshortArg_andsignedlongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedshortArg_andsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedshortArg_andsignedlongArg_(42, -(1<<30))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedshortArg_andsignedlongArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.unsignedshortArg_andsignedlongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andsignedlongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andsignedlongArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedshortArg_andsignedlongArg_(1<<14, -(1<<30))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedshortArg_andsignedlongArg_(1<<14, -42)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -42)
        r = o.unsignedshortArg_andsignedlongArg_(1<<14, 0)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andsignedlongArg_(1<<14, 42)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andsignedlongArg_(1<<14, 1 << 30)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedshortAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andsignedlonglongArg_(0, -(1 << 60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = o.unsignedshortArg_andsignedlonglongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedshortArg_andsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andsignedlonglongArg_(0, 1 << 60)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = o.unsignedshortArg_andsignedlonglongArg_(42, -(1 << 60))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = o.unsignedshortArg_andsignedlonglongArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.unsignedshortArg_andsignedlonglongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andsignedlonglongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andsignedlonglongArg_(42, 1 << 60)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = o.unsignedshortArg_andsignedlonglongArg_(1<<14, -(1 << 60))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -(1 << 60))
        r = o.unsignedshortArg_andsignedlonglongArg_(1<<14, -42)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -42)
        r = o.unsignedshortArg_andsignedlonglongArg_(1<<14, 0)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andsignedlonglongArg_(1<<14, 42)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andsignedlonglongArg_(1<<14, 1 << 60)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 60)


    def testunsignedshortAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andunsignedcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andunsignedcharArg_(0, 128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = o.unsignedshortArg_andunsignedcharArg_(0, 255)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = o.unsignedshortArg_andunsignedcharArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andunsignedcharArg_(42, 128)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = o.unsignedshortArg_andunsignedcharArg_(42, 255)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = o.unsignedshortArg_andunsignedcharArg_(1<<14, 0)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andunsignedcharArg_(1<<14, 128)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 128)
        r = o.unsignedshortArg_andunsignedcharArg_(1<<14, 255)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 255)


    def testunsignedshortAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andunsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andunsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andunsignedshortArg_(0, 1<<14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = o.unsignedshortArg_andunsignedshortArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andunsignedshortArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andunsignedshortArg_(42, 1<<14)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = o.unsignedshortArg_andunsignedshortArg_(1<<14, 0)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andunsignedshortArg_(1<<14, 42)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andunsignedshortArg_(1<<14, 1<<14)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1<<14)


    def testunsignedshortAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andunsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andunsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andunsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedshortArg_andunsignedintArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andunsignedintArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andunsignedintArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedshortArg_andunsignedintArg_(1<<14, 0)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andunsignedintArg_(1<<14, 42)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andunsignedintArg_(1<<14, 1 << 30)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedshortAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andunsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andunsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andunsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedshortArg_andunsignedlongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andunsignedlongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andunsignedlongArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedshortArg_andunsignedlongArg_(1<<14, 0)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andunsignedlongArg_(1<<14, 42)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andunsignedlongArg_(1<<14, 1 << 30)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedshortAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andunsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andunsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andunsignedlonglongArg_(0, 1 << 62)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = o.unsignedshortArg_andunsignedlonglongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andunsignedlonglongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andunsignedlonglongArg_(42, 1 << 62)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = o.unsignedshortArg_andunsignedlonglongArg_(1<<14, 0)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortArg_andunsignedlonglongArg_(1<<14, 42)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortArg_andunsignedlonglongArg_(1<<14, 1 << 62)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 62)


    def testunsignedshortAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andfloatArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedshortArg_andfloatArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedshortArg_andfloatArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedshortArg_andfloatArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedshortArg_andfloatArg_(42, 0.128)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedshortArg_andfloatArg_(42, 1.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedshortArg_andfloatArg_(42, 42.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedshortArg_andfloatArg_(42, 1e10)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedshortArg_andfloatArg_(1<<14, 0.128)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedshortArg_andfloatArg_(1<<14, 1.0)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedshortArg_andfloatArg_(1<<14, 42.0)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedshortArg_andfloatArg_(1<<14, 1e10)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 1e10)


    def testunsignedshortAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_anddoubleArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedshortArg_anddoubleArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedshortArg_anddoubleArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedshortArg_anddoubleArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedshortArg_anddoubleArg_(42, 0.128)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedshortArg_anddoubleArg_(42, 1.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedshortArg_anddoubleArg_(42, 42.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedshortArg_anddoubleArg_(42, 1e10)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedshortArg_anddoubleArg_(1<<14, 0.128)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedshortArg_anddoubleArg_(1<<14, 1.0)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedshortArg_anddoubleArg_(1<<14, 42.0)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedshortArg_anddoubleArg_(1<<14, 1e10)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 1e10)


    def testunsignedshortAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andidArg_(0, NSPriorDayDesignations)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.unsignedshortArg_andidArg_(42, NSPriorDayDesignations)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.unsignedshortArg_andidArg_(1<<14, NSPriorDayDesignations)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testunsignedshortAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andcharPtrArg_(0, b"hello")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"hello")
        r = o.unsignedshortArg_andcharPtrArg_(0, b"world")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"world")
        r = o.unsignedshortArg_andcharPtrArg_(0, b"foobar")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"foobar")
        r = o.unsignedshortArg_andcharPtrArg_(42, b"hello")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"hello")
        r = o.unsignedshortArg_andcharPtrArg_(42, b"world")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"world")
        r = o.unsignedshortArg_andcharPtrArg_(42, b"foobar")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"foobar")
        r = o.unsignedshortArg_andcharPtrArg_(1<<14, b"hello")
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], b"hello")
        r = o.unsignedshortArg_andcharPtrArg_(1<<14, b"world")
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], b"world")
        r = o.unsignedshortArg_andcharPtrArg_(1<<14, b"foobar")
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], b"foobar")


    def testunsignedshortAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andNSPointArg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedshortArg_andNSPointArg_(0, (3, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = o.unsignedshortArg_andNSPointArg_(42, (1, 2))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedshortArg_andNSPointArg_(42, (3, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = o.unsignedshortArg_andNSPointArg_(1<<14, (1, 2))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedshortArg_andNSPointArg_(1<<14, (3, 4))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (3, 4))


    def testunsignedshortAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andNSRectArg_(0, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.unsignedshortArg_andNSRectArg_(0, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.unsignedshortArg_andNSRectArg_(42, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.unsignedshortArg_andNSRectArg_(42, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.unsignedshortArg_andNSRectArg_(1<<14, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.unsignedshortArg_andNSRectArg_(1<<14, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testunsignedshortAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andstructTestStruct1Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedshortArg_andstructTestStruct1Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedshortArg_andstructTestStruct1Arg_(42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedshortArg_andstructTestStruct1Arg_(42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedshortArg_andstructTestStruct1Arg_(1<<14, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedshortArg_andstructTestStruct1Arg_(1<<14, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testunsignedshortAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andstructTestStruct2Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedshortArg_andstructTestStruct2Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedshortArg_andstructTestStruct2Arg_(42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedshortArg_andstructTestStruct2Arg_(42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedshortArg_andstructTestStruct2Arg_(1<<14, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedshortArg_andstructTestStruct2Arg_(1<<14, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testunsignedshortAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andstructTestStruct3Arg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedshortArg_andstructTestStruct3Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedshortArg_andstructTestStruct3Arg_(42, (1, 2))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedshortArg_andstructTestStruct3Arg_(42, (2, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedshortArg_andstructTestStruct3Arg_(1<<14, (1, 2))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedshortArg_andstructTestStruct3Arg_(1<<14, (2, 4))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (2, 4))


    def testunsignedshortAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andstructTestStruct4Arg_(0, (1, 1<<60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.unsignedshortArg_andstructTestStruct4Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedshortArg_andstructTestStruct4Arg_(42, (1, 1<<60))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.unsignedshortArg_andstructTestStruct4Arg_(42, (2, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedshortArg_andstructTestStruct4Arg_(1<<14, (1, 1<<60))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.unsignedshortArg_andstructTestStruct4Arg_(1<<14, (2, 4))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (2, 4))


    def testunsignedshortAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortArg_andstructTestStruct5Arg_(0, (1, 2.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = o.unsignedshortArg_andstructTestStruct5Arg_(0, (2, 4.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = o.unsignedshortArg_andstructTestStruct5Arg_(42, (1, 2.5))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = o.unsignedshortArg_andstructTestStruct5Arg_(42, (2, 4.5))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = o.unsignedshortArg_andstructTestStruct5Arg_(1<<14, (1, 2.5))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 2.5))
        r = o.unsignedshortArg_andstructTestStruct5Arg_(1<<14, (2, 4.5))
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (2, 4.5))


    def testunsignedintAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andboolArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.unsignedintArg_andboolArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.unsignedintArg_andboolArg_(42, YES)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = o.unsignedintArg_andboolArg_(42, NO)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = o.unsignedintArg_andboolArg_(1 << 30, YES)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = o.unsignedintArg_andboolArg_(1 << 30, NO)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testunsignedintAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andBOOLArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.unsignedintArg_andBOOLArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.unsignedintArg_andBOOLArg_(42, YES)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = o.unsignedintArg_andBOOLArg_(42, NO)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = o.unsignedintArg_andBOOLArg_(1 << 30, YES)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = o.unsignedintArg_andBOOLArg_(1 << 30, NO)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testunsignedintAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andcharArg_(0, -128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = o.unsignedintArg_andcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andcharArg_(0, 127)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = o.unsignedintArg_andcharArg_(42, -128)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = o.unsignedintArg_andcharArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andcharArg_(42, 127)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = o.unsignedintArg_andcharArg_(1 << 30, -128)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -128)
        r = o.unsignedintArg_andcharArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andcharArg_(1 << 30, 127)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 127)


    def testunsignedintAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andsignedshortArg_(0, -(1<<14))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = o.unsignedintArg_andsignedshortArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedintArg_andsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andsignedshortArg_(0, 1 << 14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = o.unsignedintArg_andsignedshortArg_(42, -(1<<14))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = o.unsignedintArg_andsignedshortArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.unsignedintArg_andsignedshortArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andsignedshortArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andsignedshortArg_(42, 1 << 14)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = o.unsignedintArg_andsignedshortArg_(1 << 30, -(1<<14))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<14))
        r = o.unsignedintArg_andsignedshortArg_(1 << 30, -42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = o.unsignedintArg_andsignedshortArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andsignedshortArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andsignedshortArg_(1 << 30, 1 << 14)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 14)


    def testunsignedintAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andsignedintArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedintArg_andsignedintArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedintArg_andsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedintArg_andsignedintArg_(42, -(1<<30))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedintArg_andsignedintArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.unsignedintArg_andsignedintArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andsignedintArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andsignedintArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedintArg_andsignedintArg_(1 << 30, -(1<<30))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedintArg_andsignedintArg_(1 << 30, -42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = o.unsignedintArg_andsignedintArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andsignedintArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andsignedintArg_(1 << 30, 1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedintAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andsignedlongArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedintArg_andsignedlongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedintArg_andsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedintArg_andsignedlongArg_(42, -(1<<30))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedintArg_andsignedlongArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.unsignedintArg_andsignedlongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andsignedlongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andsignedlongArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedintArg_andsignedlongArg_(1 << 30, -(1<<30))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedintArg_andsignedlongArg_(1 << 30, -42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = o.unsignedintArg_andsignedlongArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andsignedlongArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andsignedlongArg_(1 << 30, 1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedintAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andsignedlonglongArg_(0, -(1 << 60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = o.unsignedintArg_andsignedlonglongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedintArg_andsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andsignedlonglongArg_(0, 1 << 60)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = o.unsignedintArg_andsignedlonglongArg_(42, -(1 << 60))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = o.unsignedintArg_andsignedlonglongArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.unsignedintArg_andsignedlonglongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andsignedlonglongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andsignedlonglongArg_(42, 1 << 60)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = o.unsignedintArg_andsignedlonglongArg_(1 << 30, -(1 << 60))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1 << 60))
        r = o.unsignedintArg_andsignedlonglongArg_(1 << 30, -42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = o.unsignedintArg_andsignedlonglongArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andsignedlonglongArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andsignedlonglongArg_(1 << 30, 1 << 60)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 60)


    def testunsignedintAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andunsignedcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andunsignedcharArg_(0, 128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = o.unsignedintArg_andunsignedcharArg_(0, 255)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = o.unsignedintArg_andunsignedcharArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andunsignedcharArg_(42, 128)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = o.unsignedintArg_andunsignedcharArg_(42, 255)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = o.unsignedintArg_andunsignedcharArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andunsignedcharArg_(1 << 30, 128)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 128)
        r = o.unsignedintArg_andunsignedcharArg_(1 << 30, 255)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 255)


    def testunsignedintAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andunsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andunsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andunsignedshortArg_(0, 1<<14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = o.unsignedintArg_andunsignedshortArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andunsignedshortArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andunsignedshortArg_(42, 1<<14)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = o.unsignedintArg_andunsignedshortArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andunsignedshortArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andunsignedshortArg_(1 << 30, 1<<14)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1<<14)


    def testunsignedintAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andunsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andunsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andunsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedintArg_andunsignedintArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andunsignedintArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andunsignedintArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedintArg_andunsignedintArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andunsignedintArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andunsignedintArg_(1 << 30, 1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedintAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andunsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andunsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andunsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedintArg_andunsignedlongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andunsignedlongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andunsignedlongArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedintArg_andunsignedlongArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andunsignedlongArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andunsignedlongArg_(1 << 30, 1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedintAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andunsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andunsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andunsignedlonglongArg_(0, 1 << 62)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = o.unsignedintArg_andunsignedlonglongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andunsignedlonglongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andunsignedlonglongArg_(42, 1 << 62)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = o.unsignedintArg_andunsignedlonglongArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedintArg_andunsignedlonglongArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.unsignedintArg_andunsignedlonglongArg_(1 << 30, 1 << 62)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 62)


    def testunsignedintAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andfloatArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedintArg_andfloatArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedintArg_andfloatArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedintArg_andfloatArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedintArg_andfloatArg_(42, 0.128)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedintArg_andfloatArg_(42, 1.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedintArg_andfloatArg_(42, 42.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedintArg_andfloatArg_(42, 1e10)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedintArg_andfloatArg_(1 << 30, 0.128)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedintArg_andfloatArg_(1 << 30, 1.0)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedintArg_andfloatArg_(1 << 30, 42.0)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedintArg_andfloatArg_(1 << 30, 1e10)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testunsignedintAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_anddoubleArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedintArg_anddoubleArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedintArg_anddoubleArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedintArg_anddoubleArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedintArg_anddoubleArg_(42, 0.128)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedintArg_anddoubleArg_(42, 1.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedintArg_anddoubleArg_(42, 42.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedintArg_anddoubleArg_(42, 1e10)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedintArg_anddoubleArg_(1 << 30, 0.128)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedintArg_anddoubleArg_(1 << 30, 1.0)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedintArg_anddoubleArg_(1 << 30, 42.0)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedintArg_anddoubleArg_(1 << 30, 1e10)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testunsignedintAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andidArg_(0, NSPriorDayDesignations)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.unsignedintArg_andidArg_(42, NSPriorDayDesignations)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.unsignedintArg_andidArg_(1 << 30, NSPriorDayDesignations)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testunsignedintAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andcharPtrArg_(0, b"hello")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"hello")
        r = o.unsignedintArg_andcharPtrArg_(0, b"world")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"world")
        r = o.unsignedintArg_andcharPtrArg_(0, b"foobar")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"foobar")
        r = o.unsignedintArg_andcharPtrArg_(42, b"hello")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"hello")
        r = o.unsignedintArg_andcharPtrArg_(42, b"world")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"world")
        r = o.unsignedintArg_andcharPtrArg_(42, b"foobar")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"foobar")
        r = o.unsignedintArg_andcharPtrArg_(1 << 30, b"hello")
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], b"hello")
        r = o.unsignedintArg_andcharPtrArg_(1 << 30, b"world")
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], b"world")
        r = o.unsignedintArg_andcharPtrArg_(1 << 30, b"foobar")
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], b"foobar")


    def testunsignedintAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andNSPointArg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedintArg_andNSPointArg_(0, (3, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = o.unsignedintArg_andNSPointArg_(42, (1, 2))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedintArg_andNSPointArg_(42, (3, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = o.unsignedintArg_andNSPointArg_(1 << 30, (1, 2))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedintArg_andNSPointArg_(1 << 30, (3, 4))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (3, 4))


    def testunsignedintAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andNSRectArg_(0, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.unsignedintArg_andNSRectArg_(0, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.unsignedintArg_andNSRectArg_(42, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.unsignedintArg_andNSRectArg_(42, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.unsignedintArg_andNSRectArg_(1 << 30, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.unsignedintArg_andNSRectArg_(1 << 30, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testunsignedintAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andstructTestStruct1Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedintArg_andstructTestStruct1Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedintArg_andstructTestStruct1Arg_(42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedintArg_andstructTestStruct1Arg_(42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedintArg_andstructTestStruct1Arg_(1 << 30, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedintArg_andstructTestStruct1Arg_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testunsignedintAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andstructTestStruct2Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedintArg_andstructTestStruct2Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedintArg_andstructTestStruct2Arg_(42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedintArg_andstructTestStruct2Arg_(42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedintArg_andstructTestStruct2Arg_(1 << 30, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedintArg_andstructTestStruct2Arg_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testunsignedintAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andstructTestStruct3Arg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedintArg_andstructTestStruct3Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedintArg_andstructTestStruct3Arg_(42, (1, 2))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedintArg_andstructTestStruct3Arg_(42, (2, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedintArg_andstructTestStruct3Arg_(1 << 30, (1, 2))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedintArg_andstructTestStruct3Arg_(1 << 30, (2, 4))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testunsignedintAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andstructTestStruct4Arg_(0, (1, 1<<60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.unsignedintArg_andstructTestStruct4Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedintArg_andstructTestStruct4Arg_(42, (1, 1<<60))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.unsignedintArg_andstructTestStruct4Arg_(42, (2, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedintArg_andstructTestStruct4Arg_(1 << 30, (1, 1<<60))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.unsignedintArg_andstructTestStruct4Arg_(1 << 30, (2, 4))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testunsignedintAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintArg_andstructTestStruct5Arg_(0, (1, 2.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = o.unsignedintArg_andstructTestStruct5Arg_(0, (2, 4.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = o.unsignedintArg_andstructTestStruct5Arg_(42, (1, 2.5))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = o.unsignedintArg_andstructTestStruct5Arg_(42, (2, 4.5))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = o.unsignedintArg_andstructTestStruct5Arg_(1 << 30, (1, 2.5))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2.5))
        r = o.unsignedintArg_andstructTestStruct5Arg_(1 << 30, (2, 4.5))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4.5))


    def testunsignedlongAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andboolArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.unsignedlongArg_andboolArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.unsignedlongArg_andboolArg_(42, YES)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = o.unsignedlongArg_andboolArg_(42, NO)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = o.unsignedlongArg_andboolArg_(1 << 30, YES)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = o.unsignedlongArg_andboolArg_(1 << 30, NO)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testunsignedlongAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andBOOLArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.unsignedlongArg_andBOOLArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.unsignedlongArg_andBOOLArg_(42, YES)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = o.unsignedlongArg_andBOOLArg_(42, NO)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = o.unsignedlongArg_andBOOLArg_(1 << 30, YES)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = o.unsignedlongArg_andBOOLArg_(1 << 30, NO)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testunsignedlongAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andcharArg_(0, -128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = o.unsignedlongArg_andcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andcharArg_(0, 127)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = o.unsignedlongArg_andcharArg_(42, -128)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = o.unsignedlongArg_andcharArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andcharArg_(42, 127)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = o.unsignedlongArg_andcharArg_(1 << 30, -128)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -128)
        r = o.unsignedlongArg_andcharArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andcharArg_(1 << 30, 127)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 127)


    def testunsignedlongAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andsignedshortArg_(0, -(1<<14))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = o.unsignedlongArg_andsignedshortArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedlongArg_andsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andsignedshortArg_(0, 1 << 14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = o.unsignedlongArg_andsignedshortArg_(42, -(1<<14))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = o.unsignedlongArg_andsignedshortArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.unsignedlongArg_andsignedshortArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andsignedshortArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andsignedshortArg_(42, 1 << 14)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = o.unsignedlongArg_andsignedshortArg_(1 << 30, -(1<<14))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<14))
        r = o.unsignedlongArg_andsignedshortArg_(1 << 30, -42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = o.unsignedlongArg_andsignedshortArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andsignedshortArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andsignedshortArg_(1 << 30, 1 << 14)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 14)


    def testunsignedlongAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andsignedintArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedlongArg_andsignedintArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedlongArg_andsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedlongArg_andsignedintArg_(42, -(1<<30))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedlongArg_andsignedintArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.unsignedlongArg_andsignedintArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andsignedintArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andsignedintArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedlongArg_andsignedintArg_(1 << 30, -(1<<30))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedlongArg_andsignedintArg_(1 << 30, -42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = o.unsignedlongArg_andsignedintArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andsignedintArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andsignedintArg_(1 << 30, 1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedlongAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andsignedlongArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedlongArg_andsignedlongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedlongArg_andsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedlongArg_andsignedlongArg_(42, -(1<<30))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedlongArg_andsignedlongArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.unsignedlongArg_andsignedlongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andsignedlongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andsignedlongArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedlongArg_andsignedlongArg_(1 << 30, -(1<<30))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedlongArg_andsignedlongArg_(1 << 30, -42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = o.unsignedlongArg_andsignedlongArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andsignedlongArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andsignedlongArg_(1 << 30, 1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedlongAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andsignedlonglongArg_(0, -(1 << 60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = o.unsignedlongArg_andsignedlonglongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedlongArg_andsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andsignedlonglongArg_(0, 1 << 60)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = o.unsignedlongArg_andsignedlonglongArg_(42, -(1 << 60))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = o.unsignedlongArg_andsignedlonglongArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.unsignedlongArg_andsignedlonglongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andsignedlonglongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andsignedlonglongArg_(42, 1 << 60)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = o.unsignedlongArg_andsignedlonglongArg_(1 << 30, -(1 << 60))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1 << 60))
        r = o.unsignedlongArg_andsignedlonglongArg_(1 << 30, -42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = o.unsignedlongArg_andsignedlonglongArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andsignedlonglongArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andsignedlonglongArg_(1 << 30, 1 << 60)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 60)


    def testunsignedlongAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andunsignedcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andunsignedcharArg_(0, 128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = o.unsignedlongArg_andunsignedcharArg_(0, 255)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = o.unsignedlongArg_andunsignedcharArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andunsignedcharArg_(42, 128)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = o.unsignedlongArg_andunsignedcharArg_(42, 255)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = o.unsignedlongArg_andunsignedcharArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andunsignedcharArg_(1 << 30, 128)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 128)
        r = o.unsignedlongArg_andunsignedcharArg_(1 << 30, 255)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 255)


    def testunsignedlongAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andunsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andunsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andunsignedshortArg_(0, 1<<14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = o.unsignedlongArg_andunsignedshortArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andunsignedshortArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andunsignedshortArg_(42, 1<<14)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = o.unsignedlongArg_andunsignedshortArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andunsignedshortArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andunsignedshortArg_(1 << 30, 1<<14)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1<<14)


    def testunsignedlongAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andunsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andunsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andunsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedlongArg_andunsignedintArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andunsignedintArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andunsignedintArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedlongArg_andunsignedintArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andunsignedintArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andunsignedintArg_(1 << 30, 1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedlongAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andunsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andunsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andunsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedlongArg_andunsignedlongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andunsignedlongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andunsignedlongArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedlongArg_andunsignedlongArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andunsignedlongArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andunsignedlongArg_(1 << 30, 1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedlongAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andunsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andunsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andunsignedlonglongArg_(0, 1 << 62)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = o.unsignedlongArg_andunsignedlonglongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andunsignedlonglongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andunsignedlonglongArg_(42, 1 << 62)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = o.unsignedlongArg_andunsignedlonglongArg_(1 << 30, 0)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongArg_andunsignedlonglongArg_(1 << 30, 42)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongArg_andunsignedlonglongArg_(1 << 30, 1 << 62)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 62)


    def testunsignedlongAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andfloatArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedlongArg_andfloatArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedlongArg_andfloatArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedlongArg_andfloatArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedlongArg_andfloatArg_(42, 0.128)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedlongArg_andfloatArg_(42, 1.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedlongArg_andfloatArg_(42, 42.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedlongArg_andfloatArg_(42, 1e10)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedlongArg_andfloatArg_(1 << 30, 0.128)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedlongArg_andfloatArg_(1 << 30, 1.0)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedlongArg_andfloatArg_(1 << 30, 42.0)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedlongArg_andfloatArg_(1 << 30, 1e10)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testunsignedlongAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_anddoubleArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedlongArg_anddoubleArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedlongArg_anddoubleArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedlongArg_anddoubleArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedlongArg_anddoubleArg_(42, 0.128)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedlongArg_anddoubleArg_(42, 1.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedlongArg_anddoubleArg_(42, 42.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedlongArg_anddoubleArg_(42, 1e10)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedlongArg_anddoubleArg_(1 << 30, 0.128)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedlongArg_anddoubleArg_(1 << 30, 1.0)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedlongArg_anddoubleArg_(1 << 30, 42.0)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedlongArg_anddoubleArg_(1 << 30, 1e10)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testunsignedlongAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andidArg_(0, NSPriorDayDesignations)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.unsignedlongArg_andidArg_(42, NSPriorDayDesignations)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.unsignedlongArg_andidArg_(1 << 30, NSPriorDayDesignations)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testunsignedlongAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andcharPtrArg_(0, b"hello")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"hello")
        r = o.unsignedlongArg_andcharPtrArg_(0, b"world")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"world")
        r = o.unsignedlongArg_andcharPtrArg_(0, b"foobar")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"foobar")
        r = o.unsignedlongArg_andcharPtrArg_(42, b"hello")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"hello")
        r = o.unsignedlongArg_andcharPtrArg_(42, b"world")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"world")
        r = o.unsignedlongArg_andcharPtrArg_(42, b"foobar")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"foobar")
        r = o.unsignedlongArg_andcharPtrArg_(1 << 30, b"hello")
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], b"hello")
        r = o.unsignedlongArg_andcharPtrArg_(1 << 30, b"world")
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], b"world")
        r = o.unsignedlongArg_andcharPtrArg_(1 << 30, b"foobar")
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], b"foobar")


    def testunsignedlongAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andNSPointArg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedlongArg_andNSPointArg_(0, (3, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = o.unsignedlongArg_andNSPointArg_(42, (1, 2))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedlongArg_andNSPointArg_(42, (3, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = o.unsignedlongArg_andNSPointArg_(1 << 30, (1, 2))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedlongArg_andNSPointArg_(1 << 30, (3, 4))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (3, 4))


    def testunsignedlongAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andNSRectArg_(0, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.unsignedlongArg_andNSRectArg_(0, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.unsignedlongArg_andNSRectArg_(42, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.unsignedlongArg_andNSRectArg_(42, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.unsignedlongArg_andNSRectArg_(1 << 30, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.unsignedlongArg_andNSRectArg_(1 << 30, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testunsignedlongAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andstructTestStruct1Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedlongArg_andstructTestStruct1Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedlongArg_andstructTestStruct1Arg_(42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedlongArg_andstructTestStruct1Arg_(42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedlongArg_andstructTestStruct1Arg_(1 << 30, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedlongArg_andstructTestStruct1Arg_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testunsignedlongAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andstructTestStruct2Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedlongArg_andstructTestStruct2Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedlongArg_andstructTestStruct2Arg_(42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedlongArg_andstructTestStruct2Arg_(42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedlongArg_andstructTestStruct2Arg_(1 << 30, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedlongArg_andstructTestStruct2Arg_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testunsignedlongAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andstructTestStruct3Arg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedlongArg_andstructTestStruct3Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedlongArg_andstructTestStruct3Arg_(42, (1, 2))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedlongArg_andstructTestStruct3Arg_(42, (2, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedlongArg_andstructTestStruct3Arg_(1 << 30, (1, 2))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedlongArg_andstructTestStruct3Arg_(1 << 30, (2, 4))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testunsignedlongAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andstructTestStruct4Arg_(0, (1, 1<<60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.unsignedlongArg_andstructTestStruct4Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedlongArg_andstructTestStruct4Arg_(42, (1, 1<<60))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.unsignedlongArg_andstructTestStruct4Arg_(42, (2, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedlongArg_andstructTestStruct4Arg_(1 << 30, (1, 1<<60))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.unsignedlongArg_andstructTestStruct4Arg_(1 << 30, (2, 4))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testunsignedlongAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongArg_andstructTestStruct5Arg_(0, (1, 2.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = o.unsignedlongArg_andstructTestStruct5Arg_(0, (2, 4.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = o.unsignedlongArg_andstructTestStruct5Arg_(42, (1, 2.5))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = o.unsignedlongArg_andstructTestStruct5Arg_(42, (2, 4.5))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = o.unsignedlongArg_andstructTestStruct5Arg_(1 << 30, (1, 2.5))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2.5))
        r = o.unsignedlongArg_andstructTestStruct5Arg_(1 << 30, (2, 4.5))
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4.5))


    def testunsignedlonglongAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andboolArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.unsignedlonglongArg_andboolArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.unsignedlonglongArg_andboolArg_(42, YES)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = o.unsignedlonglongArg_andboolArg_(42, NO)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = o.unsignedlonglongArg_andboolArg_(1 << 62, YES)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], YES)
        r = o.unsignedlonglongArg_andboolArg_(1 << 62, NO)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], NO)


    def testunsignedlonglongAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andBOOLArg_(0, YES)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = o.unsignedlonglongArg_andBOOLArg_(0, NO)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = o.unsignedlonglongArg_andBOOLArg_(42, YES)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = o.unsignedlonglongArg_andBOOLArg_(42, NO)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = o.unsignedlonglongArg_andBOOLArg_(1 << 62, YES)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], YES)
        r = o.unsignedlonglongArg_andBOOLArg_(1 << 62, NO)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], NO)


    def testunsignedlonglongAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andcharArg_(0, -128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = o.unsignedlonglongArg_andcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andcharArg_(0, 127)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = o.unsignedlonglongArg_andcharArg_(42, -128)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = o.unsignedlonglongArg_andcharArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andcharArg_(42, 127)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = o.unsignedlonglongArg_andcharArg_(1 << 62, -128)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -128)
        r = o.unsignedlonglongArg_andcharArg_(1 << 62, 0)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andcharArg_(1 << 62, 127)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 127)


    def testunsignedlonglongAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andsignedshortArg_(0, -(1<<14))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = o.unsignedlonglongArg_andsignedshortArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedlonglongArg_andsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andsignedshortArg_(0, 1 << 14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = o.unsignedlonglongArg_andsignedshortArg_(42, -(1<<14))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = o.unsignedlonglongArg_andsignedshortArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.unsignedlonglongArg_andsignedshortArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andsignedshortArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andsignedshortArg_(42, 1 << 14)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = o.unsignedlonglongArg_andsignedshortArg_(1 << 62, -(1<<14))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -(1<<14))
        r = o.unsignedlonglongArg_andsignedshortArg_(1 << 62, -42)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -42)
        r = o.unsignedlonglongArg_andsignedshortArg_(1 << 62, 0)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andsignedshortArg_(1 << 62, 42)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andsignedshortArg_(1 << 62, 1 << 14)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 14)


    def testunsignedlonglongAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andsignedintArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedlonglongArg_andsignedintArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedlonglongArg_andsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedlonglongArg_andsignedintArg_(42, -(1<<30))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedlonglongArg_andsignedintArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.unsignedlonglongArg_andsignedintArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andsignedintArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andsignedintArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedlonglongArg_andsignedintArg_(1 << 62, -(1<<30))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedlonglongArg_andsignedintArg_(1 << 62, -42)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -42)
        r = o.unsignedlonglongArg_andsignedintArg_(1 << 62, 0)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andsignedintArg_(1 << 62, 42)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andsignedintArg_(1 << 62, 1 << 30)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedlonglongAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andsignedlongArg_(0, -(1<<30))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedlonglongArg_andsignedlongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedlonglongArg_andsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedlonglongArg_andsignedlongArg_(42, -(1<<30))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedlonglongArg_andsignedlongArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.unsignedlonglongArg_andsignedlongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andsignedlongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andsignedlongArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedlonglongArg_andsignedlongArg_(1 << 62, -(1<<30))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -(1<<30))
        r = o.unsignedlonglongArg_andsignedlongArg_(1 << 62, -42)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -42)
        r = o.unsignedlonglongArg_andsignedlongArg_(1 << 62, 0)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andsignedlongArg_(1 << 62, 42)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andsignedlongArg_(1 << 62, 1 << 30)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedlonglongAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andsignedlonglongArg_(0, -(1 << 60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = o.unsignedlonglongArg_andsignedlonglongArg_(0, -42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = o.unsignedlonglongArg_andsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andsignedlonglongArg_(0, 1 << 60)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = o.unsignedlonglongArg_andsignedlonglongArg_(42, -(1 << 60))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = o.unsignedlonglongArg_andsignedlonglongArg_(42, -42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.unsignedlonglongArg_andsignedlonglongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andsignedlonglongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andsignedlonglongArg_(42, 1 << 60)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = o.unsignedlonglongArg_andsignedlonglongArg_(1 << 62, -(1 << 60))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -(1 << 60))
        r = o.unsignedlonglongArg_andsignedlonglongArg_(1 << 62, -42)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -42)
        r = o.unsignedlonglongArg_andsignedlonglongArg_(1 << 62, 0)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andsignedlonglongArg_(1 << 62, 42)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andsignedlonglongArg_(1 << 62, 1 << 60)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 60)


    def testunsignedlonglongAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andunsignedcharArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andunsignedcharArg_(0, 128)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = o.unsignedlonglongArg_andunsignedcharArg_(0, 255)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = o.unsignedlonglongArg_andunsignedcharArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andunsignedcharArg_(42, 128)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = o.unsignedlonglongArg_andunsignedcharArg_(42, 255)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = o.unsignedlonglongArg_andunsignedcharArg_(1 << 62, 0)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andunsignedcharArg_(1 << 62, 128)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 128)
        r = o.unsignedlonglongArg_andunsignedcharArg_(1 << 62, 255)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 255)


    def testunsignedlonglongAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andunsignedshortArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andunsignedshortArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andunsignedshortArg_(0, 1<<14)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = o.unsignedlonglongArg_andunsignedshortArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andunsignedshortArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andunsignedshortArg_(42, 1<<14)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = o.unsignedlonglongArg_andunsignedshortArg_(1 << 62, 0)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andunsignedshortArg_(1 << 62, 42)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andunsignedshortArg_(1 << 62, 1<<14)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1<<14)


    def testunsignedlonglongAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andunsignedintArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andunsignedintArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andunsignedintArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedlonglongArg_andunsignedintArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andunsignedintArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andunsignedintArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedlonglongArg_andunsignedintArg_(1 << 62, 0)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andunsignedintArg_(1 << 62, 42)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andunsignedintArg_(1 << 62, 1 << 30)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedlonglongAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andunsignedlongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andunsignedlongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andunsignedlongArg_(0, 1 << 30)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedlonglongArg_andunsignedlongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andunsignedlongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andunsignedlongArg_(42, 1 << 30)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = o.unsignedlonglongArg_andunsignedlongArg_(1 << 62, 0)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andunsignedlongArg_(1 << 62, 42)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andunsignedlongArg_(1 << 62, 1 << 30)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedlonglongAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andunsignedlonglongArg_(0, 0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andunsignedlonglongArg_(0, 42)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andunsignedlonglongArg_(0, 1 << 62)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = o.unsignedlonglongArg_andunsignedlonglongArg_(42, 0)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andunsignedlonglongArg_(42, 42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andunsignedlonglongArg_(42, 1 << 62)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = o.unsignedlonglongArg_andunsignedlonglongArg_(1 << 62, 0)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongArg_andunsignedlonglongArg_(1 << 62, 42)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongArg_andunsignedlonglongArg_(1 << 62, 1 << 62)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 62)


    def testunsignedlonglongAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andfloatArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedlonglongArg_andfloatArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedlonglongArg_andfloatArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedlonglongArg_andfloatArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedlonglongArg_andfloatArg_(42, 0.128)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedlonglongArg_andfloatArg_(42, 1.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedlonglongArg_andfloatArg_(42, 42.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedlonglongArg_andfloatArg_(42, 1e10)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedlonglongArg_andfloatArg_(1 << 62, 0.128)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedlonglongArg_andfloatArg_(1 << 62, 1.0)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedlonglongArg_andfloatArg_(1 << 62, 42.0)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedlonglongArg_andfloatArg_(1 << 62, 1e10)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 1e10)


    def testunsignedlonglongAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_anddoubleArg_(0, 0.128)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedlonglongArg_anddoubleArg_(0, 1.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedlonglongArg_anddoubleArg_(0, 42.0)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedlonglongArg_anddoubleArg_(0, 1e10)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedlonglongArg_anddoubleArg_(42, 0.128)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedlonglongArg_anddoubleArg_(42, 1.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedlonglongArg_anddoubleArg_(42, 42.0)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedlonglongArg_anddoubleArg_(42, 1e10)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.unsignedlonglongArg_anddoubleArg_(1 << 62, 0.128)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.unsignedlonglongArg_anddoubleArg_(1 << 62, 1.0)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.unsignedlonglongArg_anddoubleArg_(1 << 62, 42.0)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.unsignedlonglongArg_anddoubleArg_(1 << 62, 1e10)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 1e10)


    def testunsignedlonglongAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andidArg_(0, NSPriorDayDesignations)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.unsignedlonglongArg_andidArg_(42, NSPriorDayDesignations)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.unsignedlonglongArg_andidArg_(1 << 62, NSPriorDayDesignations)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testunsignedlonglongAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andcharPtrArg_(0, b"hello")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"hello")
        r = o.unsignedlonglongArg_andcharPtrArg_(0, b"world")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"world")
        r = o.unsignedlonglongArg_andcharPtrArg_(0, b"foobar")
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], b"foobar")
        r = o.unsignedlonglongArg_andcharPtrArg_(42, b"hello")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"hello")
        r = o.unsignedlonglongArg_andcharPtrArg_(42, b"world")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"world")
        r = o.unsignedlonglongArg_andcharPtrArg_(42, b"foobar")
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], b"foobar")
        r = o.unsignedlonglongArg_andcharPtrArg_(1 << 62, b"hello")
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], b"hello")
        r = o.unsignedlonglongArg_andcharPtrArg_(1 << 62, b"world")
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], b"world")
        r = o.unsignedlonglongArg_andcharPtrArg_(1 << 62, b"foobar")
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], b"foobar")


    def testunsignedlonglongAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andNSPointArg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedlonglongArg_andNSPointArg_(0, (3, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = o.unsignedlonglongArg_andNSPointArg_(42, (1, 2))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedlonglongArg_andNSPointArg_(42, (3, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = o.unsignedlonglongArg_andNSPointArg_(1 << 62, (1, 2))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedlonglongArg_andNSPointArg_(1 << 62, (3, 4))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (3, 4))


    def testunsignedlonglongAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andNSRectArg_(0, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.unsignedlonglongArg_andNSRectArg_(0, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.unsignedlonglongArg_andNSRectArg_(42, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.unsignedlonglongArg_andNSRectArg_(42, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.unsignedlonglongArg_andNSRectArg_(1 << 62, ((1, 2), (3, 4)))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.unsignedlonglongArg_andNSRectArg_(1 << 62, ((7, 8), (9, 10)))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testunsignedlonglongAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andstructTestStruct1Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedlonglongArg_andstructTestStruct1Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedlonglongArg_andstructTestStruct1Arg_(42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedlonglongArg_andstructTestStruct1Arg_(42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedlonglongArg_andstructTestStruct1Arg_(1 << 62, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedlonglongArg_andstructTestStruct1Arg_(1 << 62, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testunsignedlonglongAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andstructTestStruct2Arg_(0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedlonglongArg_andstructTestStruct2Arg_(0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedlonglongArg_andstructTestStruct2Arg_(42, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedlonglongArg_andstructTestStruct2Arg_(42, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.unsignedlonglongArg_andstructTestStruct2Arg_(1 << 62, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.unsignedlonglongArg_andstructTestStruct2Arg_(1 << 62, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testunsignedlonglongAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andstructTestStruct3Arg_(0, (1, 2))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedlonglongArg_andstructTestStruct3Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedlonglongArg_andstructTestStruct3Arg_(42, (1, 2))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedlonglongArg_andstructTestStruct3Arg_(42, (2, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedlonglongArg_andstructTestStruct3Arg_(1 << 62, (1, 2))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 2))
        r = o.unsignedlonglongArg_andstructTestStruct3Arg_(1 << 62, (2, 4))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (2, 4))


    def testunsignedlonglongAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andstructTestStruct4Arg_(0, (1, 1<<60))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.unsignedlonglongArg_andstructTestStruct4Arg_(0, (2, 4))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedlonglongArg_andstructTestStruct4Arg_(42, (1, 1<<60))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.unsignedlonglongArg_andstructTestStruct4Arg_(42, (2, 4))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = o.unsignedlonglongArg_andstructTestStruct4Arg_(1 << 62, (1, 1<<60))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.unsignedlonglongArg_andstructTestStruct4Arg_(1 << 62, (2, 4))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (2, 4))


    def testunsignedlonglongAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongArg_andstructTestStruct5Arg_(0, (1, 2.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = o.unsignedlonglongArg_andstructTestStruct5Arg_(0, (2, 4.5))
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = o.unsignedlonglongArg_andstructTestStruct5Arg_(42, (1, 2.5))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = o.unsignedlonglongArg_andstructTestStruct5Arg_(42, (2, 4.5))
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = o.unsignedlonglongArg_andstructTestStruct5Arg_(1 << 62, (1, 2.5))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 2.5))
        r = o.unsignedlonglongArg_andstructTestStruct5Arg_(1 << 62, (2, 4.5))
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (2, 4.5))


    def testfloatAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andboolArg_(0.128, YES)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], YES)
        r = o.floatArg_andboolArg_(0.128, NO)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NO)
        r = o.floatArg_andboolArg_(1.0, YES)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], YES)
        r = o.floatArg_andboolArg_(1.0, NO)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NO)
        r = o.floatArg_andboolArg_(42.0, YES)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], YES)
        r = o.floatArg_andboolArg_(42.0, NO)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NO)
        r = o.floatArg_andboolArg_(1e10, YES)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], YES)
        r = o.floatArg_andboolArg_(1e10, NO)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NO)


    def testfloatAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andBOOLArg_(0.128, YES)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], YES)
        r = o.floatArg_andBOOLArg_(0.128, NO)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NO)
        r = o.floatArg_andBOOLArg_(1.0, YES)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], YES)
        r = o.floatArg_andBOOLArg_(1.0, NO)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NO)
        r = o.floatArg_andBOOLArg_(42.0, YES)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], YES)
        r = o.floatArg_andBOOLArg_(42.0, NO)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NO)
        r = o.floatArg_andBOOLArg_(1e10, YES)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], YES)
        r = o.floatArg_andBOOLArg_(1e10, NO)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NO)


    def testfloatAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andcharArg_(0.128, -128)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -128)
        r = o.floatArg_andcharArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andcharArg_(0.128, 127)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 127)
        r = o.floatArg_andcharArg_(1.0, -128)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -128)
        r = o.floatArg_andcharArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andcharArg_(1.0, 127)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 127)
        r = o.floatArg_andcharArg_(42.0, -128)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -128)
        r = o.floatArg_andcharArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andcharArg_(42.0, 127)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 127)
        r = o.floatArg_andcharArg_(1e10, -128)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -128)
        r = o.floatArg_andcharArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andcharArg_(1e10, 127)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 127)


    def testfloatAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andsignedshortArg_(0.128, -(1<<14))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<14))
        r = o.floatArg_andsignedshortArg_(0.128, -42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = o.floatArg_andsignedshortArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andsignedshortArg_(0.128, 42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andsignedshortArg_(0.128, 1 << 14)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 14)
        r = o.floatArg_andsignedshortArg_(1.0, -(1<<14))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<14))
        r = o.floatArg_andsignedshortArg_(1.0, -42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = o.floatArg_andsignedshortArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andsignedshortArg_(1.0, 42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andsignedshortArg_(1.0, 1 << 14)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 14)
        r = o.floatArg_andsignedshortArg_(42.0, -(1<<14))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<14))
        r = o.floatArg_andsignedshortArg_(42.0, -42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = o.floatArg_andsignedshortArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andsignedshortArg_(42.0, 42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andsignedshortArg_(42.0, 1 << 14)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 14)
        r = o.floatArg_andsignedshortArg_(1e10, -(1<<14))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<14))
        r = o.floatArg_andsignedshortArg_(1e10, -42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = o.floatArg_andsignedshortArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andsignedshortArg_(1e10, 42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andsignedshortArg_(1e10, 1 << 14)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 14)


    def testfloatAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andsignedintArg_(0.128, -(1<<30))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<30))
        r = o.floatArg_andsignedintArg_(0.128, -42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = o.floatArg_andsignedintArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andsignedintArg_(0.128, 42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andsignedintArg_(0.128, 1 << 30)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = o.floatArg_andsignedintArg_(1.0, -(1<<30))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<30))
        r = o.floatArg_andsignedintArg_(1.0, -42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = o.floatArg_andsignedintArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andsignedintArg_(1.0, 42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andsignedintArg_(1.0, 1 << 30)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = o.floatArg_andsignedintArg_(42.0, -(1<<30))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<30))
        r = o.floatArg_andsignedintArg_(42.0, -42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = o.floatArg_andsignedintArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andsignedintArg_(42.0, 42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andsignedintArg_(42.0, 1 << 30)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = o.floatArg_andsignedintArg_(1e10, -(1<<30))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<30))
        r = o.floatArg_andsignedintArg_(1e10, -42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = o.floatArg_andsignedintArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andsignedintArg_(1e10, 42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andsignedintArg_(1e10, 1 << 30)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testfloatAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andsignedlongArg_(0.128, -(1<<30))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<30))
        r = o.floatArg_andsignedlongArg_(0.128, -42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = o.floatArg_andsignedlongArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andsignedlongArg_(0.128, 42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andsignedlongArg_(0.128, 1 << 30)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = o.floatArg_andsignedlongArg_(1.0, -(1<<30))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<30))
        r = o.floatArg_andsignedlongArg_(1.0, -42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = o.floatArg_andsignedlongArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andsignedlongArg_(1.0, 42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andsignedlongArg_(1.0, 1 << 30)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = o.floatArg_andsignedlongArg_(42.0, -(1<<30))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<30))
        r = o.floatArg_andsignedlongArg_(42.0, -42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = o.floatArg_andsignedlongArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andsignedlongArg_(42.0, 42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andsignedlongArg_(42.0, 1 << 30)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = o.floatArg_andsignedlongArg_(1e10, -(1<<30))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<30))
        r = o.floatArg_andsignedlongArg_(1e10, -42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = o.floatArg_andsignedlongArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andsignedlongArg_(1e10, 42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andsignedlongArg_(1e10, 1 << 30)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testfloatAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andsignedlonglongArg_(0.128, -(1 << 60))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1 << 60))
        r = o.floatArg_andsignedlonglongArg_(0.128, -42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = o.floatArg_andsignedlonglongArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andsignedlonglongArg_(0.128, 42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andsignedlonglongArg_(0.128, 1 << 60)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 60)
        r = o.floatArg_andsignedlonglongArg_(1.0, -(1 << 60))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1 << 60))
        r = o.floatArg_andsignedlonglongArg_(1.0, -42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = o.floatArg_andsignedlonglongArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andsignedlonglongArg_(1.0, 42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andsignedlonglongArg_(1.0, 1 << 60)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 60)
        r = o.floatArg_andsignedlonglongArg_(42.0, -(1 << 60))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1 << 60))
        r = o.floatArg_andsignedlonglongArg_(42.0, -42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = o.floatArg_andsignedlonglongArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andsignedlonglongArg_(42.0, 42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andsignedlonglongArg_(42.0, 1 << 60)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 60)
        r = o.floatArg_andsignedlonglongArg_(1e10, -(1 << 60))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1 << 60))
        r = o.floatArg_andsignedlonglongArg_(1e10, -42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = o.floatArg_andsignedlonglongArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andsignedlonglongArg_(1e10, 42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andsignedlonglongArg_(1e10, 1 << 60)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 60)


    def testfloatAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andunsignedcharArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedcharArg_(0.128, 128)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 128)
        r = o.floatArg_andunsignedcharArg_(0.128, 255)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 255)
        r = o.floatArg_andunsignedcharArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedcharArg_(1.0, 128)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 128)
        r = o.floatArg_andunsignedcharArg_(1.0, 255)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 255)
        r = o.floatArg_andunsignedcharArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedcharArg_(42.0, 128)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 128)
        r = o.floatArg_andunsignedcharArg_(42.0, 255)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 255)
        r = o.floatArg_andunsignedcharArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedcharArg_(1e10, 128)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 128)
        r = o.floatArg_andunsignedcharArg_(1e10, 255)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 255)


    def testfloatAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andunsignedshortArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedshortArg_(0.128, 42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andunsignedshortArg_(0.128, 1<<14)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1<<14)
        r = o.floatArg_andunsignedshortArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedshortArg_(1.0, 42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andunsignedshortArg_(1.0, 1<<14)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1<<14)
        r = o.floatArg_andunsignedshortArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedshortArg_(42.0, 42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andunsignedshortArg_(42.0, 1<<14)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1<<14)
        r = o.floatArg_andunsignedshortArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedshortArg_(1e10, 42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andunsignedshortArg_(1e10, 1<<14)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1<<14)


    def testfloatAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andunsignedintArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedintArg_(0.128, 42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andunsignedintArg_(0.128, 1 << 30)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = o.floatArg_andunsignedintArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedintArg_(1.0, 42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andunsignedintArg_(1.0, 1 << 30)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = o.floatArg_andunsignedintArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedintArg_(42.0, 42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andunsignedintArg_(42.0, 1 << 30)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = o.floatArg_andunsignedintArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedintArg_(1e10, 42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andunsignedintArg_(1e10, 1 << 30)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testfloatAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andunsignedlongArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedlongArg_(0.128, 42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andunsignedlongArg_(0.128, 1 << 30)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = o.floatArg_andunsignedlongArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedlongArg_(1.0, 42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andunsignedlongArg_(1.0, 1 << 30)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = o.floatArg_andunsignedlongArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedlongArg_(42.0, 42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andunsignedlongArg_(42.0, 1 << 30)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = o.floatArg_andunsignedlongArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedlongArg_(1e10, 42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andunsignedlongArg_(1e10, 1 << 30)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testfloatAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andunsignedlonglongArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedlonglongArg_(0.128, 42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andunsignedlonglongArg_(0.128, 1 << 62)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 62)
        r = o.floatArg_andunsignedlonglongArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedlonglongArg_(1.0, 42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andunsignedlonglongArg_(1.0, 1 << 62)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 62)
        r = o.floatArg_andunsignedlonglongArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedlonglongArg_(42.0, 42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andunsignedlonglongArg_(42.0, 1 << 62)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 62)
        r = o.floatArg_andunsignedlonglongArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.floatArg_andunsignedlonglongArg_(1e10, 42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = o.floatArg_andunsignedlonglongArg_(1e10, 1 << 62)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 62)


    def testfloatAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andfloatArg_(0.128, 0.128)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.floatArg_andfloatArg_(0.128, 1.0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.floatArg_andfloatArg_(0.128, 42.0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.floatArg_andfloatArg_(0.128, 1e10)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.floatArg_andfloatArg_(1.0, 0.128)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.floatArg_andfloatArg_(1.0, 1.0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.floatArg_andfloatArg_(1.0, 42.0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.floatArg_andfloatArg_(1.0, 1e10)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.floatArg_andfloatArg_(42.0, 0.128)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.floatArg_andfloatArg_(42.0, 1.0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.floatArg_andfloatArg_(42.0, 42.0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.floatArg_andfloatArg_(42.0, 1e10)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.floatArg_andfloatArg_(1e10, 0.128)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.floatArg_andfloatArg_(1e10, 1.0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.floatArg_andfloatArg_(1e10, 42.0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.floatArg_andfloatArg_(1e10, 1e10)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1e10)


    def testfloatAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_anddoubleArg_(0.128, 0.128)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.floatArg_anddoubleArg_(0.128, 1.0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.floatArg_anddoubleArg_(0.128, 42.0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.floatArg_anddoubleArg_(0.128, 1e10)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.floatArg_anddoubleArg_(1.0, 0.128)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.floatArg_anddoubleArg_(1.0, 1.0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.floatArg_anddoubleArg_(1.0, 42.0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.floatArg_anddoubleArg_(1.0, 1e10)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.floatArg_anddoubleArg_(42.0, 0.128)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.floatArg_anddoubleArg_(42.0, 1.0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.floatArg_anddoubleArg_(42.0, 42.0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.floatArg_anddoubleArg_(42.0, 1e10)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.floatArg_anddoubleArg_(1e10, 0.128)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.floatArg_anddoubleArg_(1e10, 1.0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.floatArg_anddoubleArg_(1e10, 42.0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.floatArg_anddoubleArg_(1e10, 1e10)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1e10)


    def testfloatAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andidArg_(0.128, NSPriorDayDesignations)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.floatArg_andidArg_(1.0, NSPriorDayDesignations)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.floatArg_andidArg_(42.0, NSPriorDayDesignations)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.floatArg_andidArg_(1e10, NSPriorDayDesignations)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testfloatAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andcharPtrArg_(0.128, b"hello")
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], b"hello")
        r = o.floatArg_andcharPtrArg_(0.128, b"world")
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], b"world")
        r = o.floatArg_andcharPtrArg_(0.128, b"foobar")
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], b"foobar")
        r = o.floatArg_andcharPtrArg_(1.0, b"hello")
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], b"hello")
        r = o.floatArg_andcharPtrArg_(1.0, b"world")
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], b"world")
        r = o.floatArg_andcharPtrArg_(1.0, b"foobar")
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], b"foobar")
        r = o.floatArg_andcharPtrArg_(42.0, b"hello")
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], b"hello")
        r = o.floatArg_andcharPtrArg_(42.0, b"world")
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], b"world")
        r = o.floatArg_andcharPtrArg_(42.0, b"foobar")
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], b"foobar")
        r = o.floatArg_andcharPtrArg_(1e10, b"hello")
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], b"hello")
        r = o.floatArg_andcharPtrArg_(1e10, b"world")
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], b"world")
        r = o.floatArg_andcharPtrArg_(1e10, b"foobar")
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], b"foobar")


    def testfloatAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andNSPointArg_(0.128, (1, 2))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2))
        r = o.floatArg_andNSPointArg_(0.128, (3, 4))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (3, 4))
        r = o.floatArg_andNSPointArg_(1.0, (1, 2))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2))
        r = o.floatArg_andNSPointArg_(1.0, (3, 4))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (3, 4))
        r = o.floatArg_andNSPointArg_(42.0, (1, 2))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2))
        r = o.floatArg_andNSPointArg_(42.0, (3, 4))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (3, 4))
        r = o.floatArg_andNSPointArg_(1e10, (1, 2))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2))
        r = o.floatArg_andNSPointArg_(1e10, (3, 4))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (3, 4))


    def testfloatAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andNSRectArg_(0.128, ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.floatArg_andNSRectArg_(0.128, ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.floatArg_andNSRectArg_(1.0, ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.floatArg_andNSRectArg_(1.0, ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.floatArg_andNSRectArg_(42.0, ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.floatArg_andNSRectArg_(42.0, ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.floatArg_andNSRectArg_(1e10, ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.floatArg_andNSRectArg_(1e10, ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testfloatAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andstructTestStruct1Arg_(0.128, (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.floatArg_andstructTestStruct1Arg_(0.128, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.floatArg_andstructTestStruct1Arg_(1.0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.floatArg_andstructTestStruct1Arg_(1.0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.floatArg_andstructTestStruct1Arg_(42.0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.floatArg_andstructTestStruct1Arg_(42.0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.floatArg_andstructTestStruct1Arg_(1e10, (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.floatArg_andstructTestStruct1Arg_(1e10, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testfloatAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andstructTestStruct2Arg_(0.128, (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.floatArg_andstructTestStruct2Arg_(0.128, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.floatArg_andstructTestStruct2Arg_(1.0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.floatArg_andstructTestStruct2Arg_(1.0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.floatArg_andstructTestStruct2Arg_(42.0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.floatArg_andstructTestStruct2Arg_(42.0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.floatArg_andstructTestStruct2Arg_(1e10, (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.floatArg_andstructTestStruct2Arg_(1e10, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testfloatAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andstructTestStruct3Arg_(0.128, (1, 2))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2))
        r = o.floatArg_andstructTestStruct3Arg_(0.128, (2, 4))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4))
        r = o.floatArg_andstructTestStruct3Arg_(1.0, (1, 2))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2))
        r = o.floatArg_andstructTestStruct3Arg_(1.0, (2, 4))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4))
        r = o.floatArg_andstructTestStruct3Arg_(42.0, (1, 2))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2))
        r = o.floatArg_andstructTestStruct3Arg_(42.0, (2, 4))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4))
        r = o.floatArg_andstructTestStruct3Arg_(1e10, (1, 2))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2))
        r = o.floatArg_andstructTestStruct3Arg_(1e10, (2, 4))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4))


    def testfloatAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andstructTestStruct4Arg_(0.128, (1, 1<<60))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.floatArg_andstructTestStruct4Arg_(0.128, (2, 4))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4))
        r = o.floatArg_andstructTestStruct4Arg_(1.0, (1, 1<<60))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.floatArg_andstructTestStruct4Arg_(1.0, (2, 4))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4))
        r = o.floatArg_andstructTestStruct4Arg_(42.0, (1, 1<<60))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.floatArg_andstructTestStruct4Arg_(42.0, (2, 4))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4))
        r = o.floatArg_andstructTestStruct4Arg_(1e10, (1, 1<<60))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.floatArg_andstructTestStruct4Arg_(1e10, (2, 4))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4))


    def testfloatAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatArg_andstructTestStruct5Arg_(0.128, (1, 2.5))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2.5))
        r = o.floatArg_andstructTestStruct5Arg_(0.128, (2, 4.5))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4.5))
        r = o.floatArg_andstructTestStruct5Arg_(1.0, (1, 2.5))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2.5))
        r = o.floatArg_andstructTestStruct5Arg_(1.0, (2, 4.5))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4.5))
        r = o.floatArg_andstructTestStruct5Arg_(42.0, (1, 2.5))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2.5))
        r = o.floatArg_andstructTestStruct5Arg_(42.0, (2, 4.5))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4.5))
        r = o.floatArg_andstructTestStruct5Arg_(1e10, (1, 2.5))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2.5))
        r = o.floatArg_andstructTestStruct5Arg_(1e10, (2, 4.5))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4.5))


    def testdoubleAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andboolArg_(0.128, YES)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], YES)
        r = o.doubleArg_andboolArg_(0.128, NO)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NO)
        r = o.doubleArg_andboolArg_(1.0, YES)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], YES)
        r = o.doubleArg_andboolArg_(1.0, NO)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NO)
        r = o.doubleArg_andboolArg_(42.0, YES)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], YES)
        r = o.doubleArg_andboolArg_(42.0, NO)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NO)
        r = o.doubleArg_andboolArg_(1e10, YES)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], YES)
        r = o.doubleArg_andboolArg_(1e10, NO)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NO)


    def testdoubleAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andBOOLArg_(0.128, YES)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], YES)
        r = o.doubleArg_andBOOLArg_(0.128, NO)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NO)
        r = o.doubleArg_andBOOLArg_(1.0, YES)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], YES)
        r = o.doubleArg_andBOOLArg_(1.0, NO)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NO)
        r = o.doubleArg_andBOOLArg_(42.0, YES)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], YES)
        r = o.doubleArg_andBOOLArg_(42.0, NO)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NO)
        r = o.doubleArg_andBOOLArg_(1e10, YES)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], YES)
        r = o.doubleArg_andBOOLArg_(1e10, NO)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NO)


    def testdoubleAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andcharArg_(0.128, -128)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -128)
        r = o.doubleArg_andcharArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andcharArg_(0.128, 127)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 127)
        r = o.doubleArg_andcharArg_(1.0, -128)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -128)
        r = o.doubleArg_andcharArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andcharArg_(1.0, 127)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 127)
        r = o.doubleArg_andcharArg_(42.0, -128)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -128)
        r = o.doubleArg_andcharArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andcharArg_(42.0, 127)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 127)
        r = o.doubleArg_andcharArg_(1e10, -128)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -128)
        r = o.doubleArg_andcharArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andcharArg_(1e10, 127)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 127)


    def testdoubleAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andsignedshortArg_(0.128, -(1<<14))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<14))
        r = o.doubleArg_andsignedshortArg_(0.128, -42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = o.doubleArg_andsignedshortArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andsignedshortArg_(0.128, 42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andsignedshortArg_(0.128, 1 << 14)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 14)
        r = o.doubleArg_andsignedshortArg_(1.0, -(1<<14))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<14))
        r = o.doubleArg_andsignedshortArg_(1.0, -42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = o.doubleArg_andsignedshortArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andsignedshortArg_(1.0, 42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andsignedshortArg_(1.0, 1 << 14)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 14)
        r = o.doubleArg_andsignedshortArg_(42.0, -(1<<14))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<14))
        r = o.doubleArg_andsignedshortArg_(42.0, -42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = o.doubleArg_andsignedshortArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andsignedshortArg_(42.0, 42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andsignedshortArg_(42.0, 1 << 14)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 14)
        r = o.doubleArg_andsignedshortArg_(1e10, -(1<<14))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<14))
        r = o.doubleArg_andsignedshortArg_(1e10, -42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = o.doubleArg_andsignedshortArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andsignedshortArg_(1e10, 42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andsignedshortArg_(1e10, 1 << 14)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 14)


    def testdoubleAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andsignedintArg_(0.128, -(1<<30))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<30))
        r = o.doubleArg_andsignedintArg_(0.128, -42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = o.doubleArg_andsignedintArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andsignedintArg_(0.128, 42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andsignedintArg_(0.128, 1 << 30)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = o.doubleArg_andsignedintArg_(1.0, -(1<<30))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<30))
        r = o.doubleArg_andsignedintArg_(1.0, -42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = o.doubleArg_andsignedintArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andsignedintArg_(1.0, 42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andsignedintArg_(1.0, 1 << 30)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = o.doubleArg_andsignedintArg_(42.0, -(1<<30))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<30))
        r = o.doubleArg_andsignedintArg_(42.0, -42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = o.doubleArg_andsignedintArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andsignedintArg_(42.0, 42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andsignedintArg_(42.0, 1 << 30)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = o.doubleArg_andsignedintArg_(1e10, -(1<<30))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<30))
        r = o.doubleArg_andsignedintArg_(1e10, -42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = o.doubleArg_andsignedintArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andsignedintArg_(1e10, 42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andsignedintArg_(1e10, 1 << 30)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testdoubleAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andsignedlongArg_(0.128, -(1<<30))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<30))
        r = o.doubleArg_andsignedlongArg_(0.128, -42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = o.doubleArg_andsignedlongArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andsignedlongArg_(0.128, 42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andsignedlongArg_(0.128, 1 << 30)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = o.doubleArg_andsignedlongArg_(1.0, -(1<<30))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<30))
        r = o.doubleArg_andsignedlongArg_(1.0, -42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = o.doubleArg_andsignedlongArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andsignedlongArg_(1.0, 42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andsignedlongArg_(1.0, 1 << 30)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = o.doubleArg_andsignedlongArg_(42.0, -(1<<30))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<30))
        r = o.doubleArg_andsignedlongArg_(42.0, -42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = o.doubleArg_andsignedlongArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andsignedlongArg_(42.0, 42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andsignedlongArg_(42.0, 1 << 30)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = o.doubleArg_andsignedlongArg_(1e10, -(1<<30))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<30))
        r = o.doubleArg_andsignedlongArg_(1e10, -42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = o.doubleArg_andsignedlongArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andsignedlongArg_(1e10, 42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andsignedlongArg_(1e10, 1 << 30)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testdoubleAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andsignedlonglongArg_(0.128, -(1 << 60))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1 << 60))
        r = o.doubleArg_andsignedlonglongArg_(0.128, -42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = o.doubleArg_andsignedlonglongArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andsignedlonglongArg_(0.128, 42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andsignedlonglongArg_(0.128, 1 << 60)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 60)
        r = o.doubleArg_andsignedlonglongArg_(1.0, -(1 << 60))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1 << 60))
        r = o.doubleArg_andsignedlonglongArg_(1.0, -42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = o.doubleArg_andsignedlonglongArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andsignedlonglongArg_(1.0, 42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andsignedlonglongArg_(1.0, 1 << 60)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 60)
        r = o.doubleArg_andsignedlonglongArg_(42.0, -(1 << 60))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1 << 60))
        r = o.doubleArg_andsignedlonglongArg_(42.0, -42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = o.doubleArg_andsignedlonglongArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andsignedlonglongArg_(42.0, 42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andsignedlonglongArg_(42.0, 1 << 60)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 60)
        r = o.doubleArg_andsignedlonglongArg_(1e10, -(1 << 60))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1 << 60))
        r = o.doubleArg_andsignedlonglongArg_(1e10, -42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = o.doubleArg_andsignedlonglongArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andsignedlonglongArg_(1e10, 42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andsignedlonglongArg_(1e10, 1 << 60)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 60)


    def testdoubleAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andunsignedcharArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedcharArg_(0.128, 128)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 128)
        r = o.doubleArg_andunsignedcharArg_(0.128, 255)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 255)
        r = o.doubleArg_andunsignedcharArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedcharArg_(1.0, 128)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 128)
        r = o.doubleArg_andunsignedcharArg_(1.0, 255)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 255)
        r = o.doubleArg_andunsignedcharArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedcharArg_(42.0, 128)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 128)
        r = o.doubleArg_andunsignedcharArg_(42.0, 255)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 255)
        r = o.doubleArg_andunsignedcharArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedcharArg_(1e10, 128)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 128)
        r = o.doubleArg_andunsignedcharArg_(1e10, 255)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 255)


    def testdoubleAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andunsignedshortArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedshortArg_(0.128, 42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andunsignedshortArg_(0.128, 1<<14)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1<<14)
        r = o.doubleArg_andunsignedshortArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedshortArg_(1.0, 42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andunsignedshortArg_(1.0, 1<<14)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1<<14)
        r = o.doubleArg_andunsignedshortArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedshortArg_(42.0, 42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andunsignedshortArg_(42.0, 1<<14)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1<<14)
        r = o.doubleArg_andunsignedshortArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedshortArg_(1e10, 42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andunsignedshortArg_(1e10, 1<<14)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1<<14)


    def testdoubleAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andunsignedintArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedintArg_(0.128, 42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andunsignedintArg_(0.128, 1 << 30)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = o.doubleArg_andunsignedintArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedintArg_(1.0, 42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andunsignedintArg_(1.0, 1 << 30)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = o.doubleArg_andunsignedintArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedintArg_(42.0, 42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andunsignedintArg_(42.0, 1 << 30)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = o.doubleArg_andunsignedintArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedintArg_(1e10, 42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andunsignedintArg_(1e10, 1 << 30)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testdoubleAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andunsignedlongArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedlongArg_(0.128, 42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andunsignedlongArg_(0.128, 1 << 30)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = o.doubleArg_andunsignedlongArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedlongArg_(1.0, 42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andunsignedlongArg_(1.0, 1 << 30)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = o.doubleArg_andunsignedlongArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedlongArg_(42.0, 42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andunsignedlongArg_(42.0, 1 << 30)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = o.doubleArg_andunsignedlongArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedlongArg_(1e10, 42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andunsignedlongArg_(1e10, 1 << 30)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testdoubleAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andunsignedlonglongArg_(0.128, 0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedlonglongArg_(0.128, 42)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andunsignedlonglongArg_(0.128, 1 << 62)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 62)
        r = o.doubleArg_andunsignedlonglongArg_(1.0, 0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedlonglongArg_(1.0, 42)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andunsignedlonglongArg_(1.0, 1 << 62)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 62)
        r = o.doubleArg_andunsignedlonglongArg_(42.0, 0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedlonglongArg_(42.0, 42)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andunsignedlonglongArg_(42.0, 1 << 62)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 62)
        r = o.doubleArg_andunsignedlonglongArg_(1e10, 0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = o.doubleArg_andunsignedlonglongArg_(1e10, 42)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = o.doubleArg_andunsignedlonglongArg_(1e10, 1 << 62)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 62)


    def testdoubleAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andfloatArg_(0.128, 0.128)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.doubleArg_andfloatArg_(0.128, 1.0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.doubleArg_andfloatArg_(0.128, 42.0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.doubleArg_andfloatArg_(0.128, 1e10)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.doubleArg_andfloatArg_(1.0, 0.128)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.doubleArg_andfloatArg_(1.0, 1.0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.doubleArg_andfloatArg_(1.0, 42.0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.doubleArg_andfloatArg_(1.0, 1e10)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.doubleArg_andfloatArg_(42.0, 0.128)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.doubleArg_andfloatArg_(42.0, 1.0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.doubleArg_andfloatArg_(42.0, 42.0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.doubleArg_andfloatArg_(42.0, 1e10)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.doubleArg_andfloatArg_(1e10, 0.128)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.doubleArg_andfloatArg_(1e10, 1.0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.doubleArg_andfloatArg_(1e10, 42.0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.doubleArg_andfloatArg_(1e10, 1e10)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1e10)


    def testdoubleAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_anddoubleArg_(0.128, 0.128)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.doubleArg_anddoubleArg_(0.128, 1.0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.doubleArg_anddoubleArg_(0.128, 42.0)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.doubleArg_anddoubleArg_(0.128, 1e10)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.doubleArg_anddoubleArg_(1.0, 0.128)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.doubleArg_anddoubleArg_(1.0, 1.0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.doubleArg_anddoubleArg_(1.0, 42.0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.doubleArg_anddoubleArg_(1.0, 1e10)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.doubleArg_anddoubleArg_(42.0, 0.128)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.doubleArg_anddoubleArg_(42.0, 1.0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.doubleArg_anddoubleArg_(42.0, 42.0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.doubleArg_anddoubleArg_(42.0, 1e10)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = o.doubleArg_anddoubleArg_(1e10, 0.128)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.doubleArg_anddoubleArg_(1e10, 1.0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.doubleArg_anddoubleArg_(1e10, 42.0)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.doubleArg_anddoubleArg_(1e10, 1e10)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1e10)


    def testdoubleAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andidArg_(0.128, NSPriorDayDesignations)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.doubleArg_andidArg_(1.0, NSPriorDayDesignations)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.doubleArg_andidArg_(42.0, NSPriorDayDesignations)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.doubleArg_andidArg_(1e10, NSPriorDayDesignations)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testdoubleAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andcharPtrArg_(0.128, b"hello")
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], b"hello")
        r = o.doubleArg_andcharPtrArg_(0.128, b"world")
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], b"world")
        r = o.doubleArg_andcharPtrArg_(0.128, b"foobar")
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], b"foobar")
        r = o.doubleArg_andcharPtrArg_(1.0, b"hello")
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], b"hello")
        r = o.doubleArg_andcharPtrArg_(1.0, b"world")
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], b"world")
        r = o.doubleArg_andcharPtrArg_(1.0, b"foobar")
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], b"foobar")
        r = o.doubleArg_andcharPtrArg_(42.0, b"hello")
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], b"hello")
        r = o.doubleArg_andcharPtrArg_(42.0, b"world")
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], b"world")
        r = o.doubleArg_andcharPtrArg_(42.0, b"foobar")
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], b"foobar")
        r = o.doubleArg_andcharPtrArg_(1e10, b"hello")
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], b"hello")
        r = o.doubleArg_andcharPtrArg_(1e10, b"world")
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], b"world")
        r = o.doubleArg_andcharPtrArg_(1e10, b"foobar")
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], b"foobar")


    def testdoubleAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andNSPointArg_(0.128, (1, 2))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2))
        r = o.doubleArg_andNSPointArg_(0.128, (3, 4))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (3, 4))
        r = o.doubleArg_andNSPointArg_(1.0, (1, 2))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2))
        r = o.doubleArg_andNSPointArg_(1.0, (3, 4))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (3, 4))
        r = o.doubleArg_andNSPointArg_(42.0, (1, 2))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2))
        r = o.doubleArg_andNSPointArg_(42.0, (3, 4))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (3, 4))
        r = o.doubleArg_andNSPointArg_(1e10, (1, 2))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2))
        r = o.doubleArg_andNSPointArg_(1e10, (3, 4))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (3, 4))


    def testdoubleAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andNSRectArg_(0.128, ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.doubleArg_andNSRectArg_(0.128, ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.doubleArg_andNSRectArg_(1.0, ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.doubleArg_andNSRectArg_(1.0, ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.doubleArg_andNSRectArg_(42.0, ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.doubleArg_andNSRectArg_(42.0, ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.doubleArg_andNSRectArg_(1e10, ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.doubleArg_andNSRectArg_(1e10, ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testdoubleAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andstructTestStruct1Arg_(0.128, (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.doubleArg_andstructTestStruct1Arg_(0.128, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.doubleArg_andstructTestStruct1Arg_(1.0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.doubleArg_andstructTestStruct1Arg_(1.0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.doubleArg_andstructTestStruct1Arg_(42.0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.doubleArg_andstructTestStruct1Arg_(42.0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.doubleArg_andstructTestStruct1Arg_(1e10, (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.doubleArg_andstructTestStruct1Arg_(1e10, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testdoubleAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andstructTestStruct2Arg_(0.128, (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.doubleArg_andstructTestStruct2Arg_(0.128, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.doubleArg_andstructTestStruct2Arg_(1.0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.doubleArg_andstructTestStruct2Arg_(1.0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.doubleArg_andstructTestStruct2Arg_(42.0, (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.doubleArg_andstructTestStruct2Arg_(42.0, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.doubleArg_andstructTestStruct2Arg_(1e10, (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.doubleArg_andstructTestStruct2Arg_(1e10, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testdoubleAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andstructTestStruct3Arg_(0.128, (1, 2))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2))
        r = o.doubleArg_andstructTestStruct3Arg_(0.128, (2, 4))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4))
        r = o.doubleArg_andstructTestStruct3Arg_(1.0, (1, 2))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2))
        r = o.doubleArg_andstructTestStruct3Arg_(1.0, (2, 4))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4))
        r = o.doubleArg_andstructTestStruct3Arg_(42.0, (1, 2))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2))
        r = o.doubleArg_andstructTestStruct3Arg_(42.0, (2, 4))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4))
        r = o.doubleArg_andstructTestStruct3Arg_(1e10, (1, 2))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2))
        r = o.doubleArg_andstructTestStruct3Arg_(1e10, (2, 4))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4))


    def testdoubleAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andstructTestStruct4Arg_(0.128, (1, 1<<60))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.doubleArg_andstructTestStruct4Arg_(0.128, (2, 4))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4))
        r = o.doubleArg_andstructTestStruct4Arg_(1.0, (1, 1<<60))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.doubleArg_andstructTestStruct4Arg_(1.0, (2, 4))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4))
        r = o.doubleArg_andstructTestStruct4Arg_(42.0, (1, 1<<60))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.doubleArg_andstructTestStruct4Arg_(42.0, (2, 4))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4))
        r = o.doubleArg_andstructTestStruct4Arg_(1e10, (1, 1<<60))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.doubleArg_andstructTestStruct4Arg_(1e10, (2, 4))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4))


    def testdoubleAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleArg_andstructTestStruct5Arg_(0.128, (1, 2.5))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2.5))
        r = o.doubleArg_andstructTestStruct5Arg_(0.128, (2, 4.5))
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4.5))
        r = o.doubleArg_andstructTestStruct5Arg_(1.0, (1, 2.5))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2.5))
        r = o.doubleArg_andstructTestStruct5Arg_(1.0, (2, 4.5))
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4.5))
        r = o.doubleArg_andstructTestStruct5Arg_(42.0, (1, 2.5))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2.5))
        r = o.doubleArg_andstructTestStruct5Arg_(42.0, (2, 4.5))
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4.5))
        r = o.doubleArg_andstructTestStruct5Arg_(1e10, (1, 2.5))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2.5))
        r = o.doubleArg_andstructTestStruct5Arg_(1e10, (2, 4.5))
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4.5))


    def testidAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andboolArg_(NSPriorDayDesignations, YES)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], YES)
        r = o.idArg_andboolArg_(NSPriorDayDesignations, NO)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], NO)


    def testidAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andBOOLArg_(NSPriorDayDesignations, YES)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], YES)
        r = o.idArg_andBOOLArg_(NSPriorDayDesignations, NO)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], NO)


    def testidAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andcharArg_(NSPriorDayDesignations, -128)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -128)
        r = o.idArg_andcharArg_(NSPriorDayDesignations, 0)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = o.idArg_andcharArg_(NSPriorDayDesignations, 127)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 127)


    def testidAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andsignedshortArg_(NSPriorDayDesignations, -(1<<14))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -(1<<14))
        r = o.idArg_andsignedshortArg_(NSPriorDayDesignations, -42)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -42)
        r = o.idArg_andsignedshortArg_(NSPriorDayDesignations, 0)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = o.idArg_andsignedshortArg_(NSPriorDayDesignations, 42)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = o.idArg_andsignedshortArg_(NSPriorDayDesignations, 1 << 14)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 14)


    def testidAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andsignedintArg_(NSPriorDayDesignations, -(1<<30))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -(1<<30))
        r = o.idArg_andsignedintArg_(NSPriorDayDesignations, -42)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -42)
        r = o.idArg_andsignedintArg_(NSPriorDayDesignations, 0)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = o.idArg_andsignedintArg_(NSPriorDayDesignations, 42)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = o.idArg_andsignedintArg_(NSPriorDayDesignations, 1 << 30)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 30)


    def testidAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andsignedlongArg_(NSPriorDayDesignations, -(1<<30))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -(1<<30))
        r = o.idArg_andsignedlongArg_(NSPriorDayDesignations, -42)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -42)
        r = o.idArg_andsignedlongArg_(NSPriorDayDesignations, 0)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = o.idArg_andsignedlongArg_(NSPriorDayDesignations, 42)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = o.idArg_andsignedlongArg_(NSPriorDayDesignations, 1 << 30)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 30)


    def testidAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andsignedlonglongArg_(NSPriorDayDesignations, -(1 << 60))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -(1 << 60))
        r = o.idArg_andsignedlonglongArg_(NSPriorDayDesignations, -42)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -42)
        r = o.idArg_andsignedlonglongArg_(NSPriorDayDesignations, 0)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = o.idArg_andsignedlonglongArg_(NSPriorDayDesignations, 42)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = o.idArg_andsignedlonglongArg_(NSPriorDayDesignations, 1 << 60)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 60)


    def testidAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andunsignedcharArg_(NSPriorDayDesignations, 0)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = o.idArg_andunsignedcharArg_(NSPriorDayDesignations, 128)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 128)
        r = o.idArg_andunsignedcharArg_(NSPriorDayDesignations, 255)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 255)


    def testidAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andunsignedshortArg_(NSPriorDayDesignations, 0)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = o.idArg_andunsignedshortArg_(NSPriorDayDesignations, 42)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = o.idArg_andunsignedshortArg_(NSPriorDayDesignations, 1<<14)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1<<14)


    def testidAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andunsignedintArg_(NSPriorDayDesignations, 0)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = o.idArg_andunsignedintArg_(NSPriorDayDesignations, 42)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = o.idArg_andunsignedintArg_(NSPriorDayDesignations, 1 << 30)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 30)


    def testidAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andunsignedlongArg_(NSPriorDayDesignations, 0)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = o.idArg_andunsignedlongArg_(NSPriorDayDesignations, 42)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = o.idArg_andunsignedlongArg_(NSPriorDayDesignations, 1 << 30)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 30)


    def testidAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andunsignedlonglongArg_(NSPriorDayDesignations, 0)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = o.idArg_andunsignedlonglongArg_(NSPriorDayDesignations, 42)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = o.idArg_andunsignedlonglongArg_(NSPriorDayDesignations, 1 << 62)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 62)


    def testidAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andfloatArg_(NSPriorDayDesignations, 0.128)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.idArg_andfloatArg_(NSPriorDayDesignations, 1.0)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.idArg_andfloatArg_(NSPriorDayDesignations, 42.0)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.idArg_andfloatArg_(NSPriorDayDesignations, 1e10)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 1e10)


    def testidAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_anddoubleArg_(NSPriorDayDesignations, 0.128)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.idArg_anddoubleArg_(NSPriorDayDesignations, 1.0)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.idArg_anddoubleArg_(NSPriorDayDesignations, 42.0)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.idArg_anddoubleArg_(NSPriorDayDesignations, 1e10)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 1e10)


    def testidAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andidArg_(NSPriorDayDesignations, NSPriorDayDesignations)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testidAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andcharPtrArg_(NSPriorDayDesignations, b"hello")
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], b"hello")
        r = o.idArg_andcharPtrArg_(NSPriorDayDesignations, b"world")
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], b"world")
        r = o.idArg_andcharPtrArg_(NSPriorDayDesignations, b"foobar")
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], b"foobar")


    def testidAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andNSPointArg_(NSPriorDayDesignations, (1, 2))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 2))
        r = o.idArg_andNSPointArg_(NSPriorDayDesignations, (3, 4))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (3, 4))


    def testidAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andNSRectArg_(NSPriorDayDesignations, ((1, 2), (3, 4)))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.idArg_andNSRectArg_(NSPriorDayDesignations, ((7, 8), (9, 10)))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testidAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andstructTestStruct1Arg_(NSPriorDayDesignations, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.idArg_andstructTestStruct1Arg_(NSPriorDayDesignations, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testidAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andstructTestStruct2Arg_(NSPriorDayDesignations, (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.idArg_andstructTestStruct2Arg_(NSPriorDayDesignations, (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testidAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andstructTestStruct3Arg_(NSPriorDayDesignations, (1, 2))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 2))
        r = o.idArg_andstructTestStruct3Arg_(NSPriorDayDesignations, (2, 4))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (2, 4))


    def testidAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andstructTestStruct4Arg_(NSPriorDayDesignations, (1, 1<<60))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 1<<60))
        r = o.idArg_andstructTestStruct4Arg_(NSPriorDayDesignations, (2, 4))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (2, 4))


    def testidAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idArg_andstructTestStruct5Arg_(NSPriorDayDesignations, (1, 2.5))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 2.5))
        r = o.idArg_andstructTestStruct5Arg_(NSPriorDayDesignations, (2, 4.5))
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (2, 4.5))


    def testcharPtrAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andboolArg_(b"hello", YES)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], YES)
        r = o.charPtrArg_andboolArg_(b"hello", NO)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], NO)
        r = o.charPtrArg_andboolArg_(b"world", YES)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], YES)
        r = o.charPtrArg_andboolArg_(b"world", NO)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], NO)
        r = o.charPtrArg_andboolArg_(b"foobar", YES)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], YES)
        r = o.charPtrArg_andboolArg_(b"foobar", NO)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], NO)


    def testcharPtrAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andBOOLArg_(b"hello", YES)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], YES)
        r = o.charPtrArg_andBOOLArg_(b"hello", NO)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], NO)
        r = o.charPtrArg_andBOOLArg_(b"world", YES)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], YES)
        r = o.charPtrArg_andBOOLArg_(b"world", NO)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], NO)
        r = o.charPtrArg_andBOOLArg_(b"foobar", YES)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], YES)
        r = o.charPtrArg_andBOOLArg_(b"foobar", NO)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], NO)


    def testcharPtrAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andcharArg_(b"hello", -128)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], -128)
        r = o.charPtrArg_andcharArg_(b"hello", 0)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andcharArg_(b"hello", 127)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 127)
        r = o.charPtrArg_andcharArg_(b"world", -128)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], -128)
        r = o.charPtrArg_andcharArg_(b"world", 0)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andcharArg_(b"world", 127)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 127)
        r = o.charPtrArg_andcharArg_(b"foobar", -128)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], -128)
        r = o.charPtrArg_andcharArg_(b"foobar", 0)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andcharArg_(b"foobar", 127)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 127)


    def testcharPtrAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andsignedshortArg_(b"hello", -(1<<14))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], -(1<<14))
        r = o.charPtrArg_andsignedshortArg_(b"hello", -42)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], -42)
        r = o.charPtrArg_andsignedshortArg_(b"hello", 0)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andsignedshortArg_(b"hello", 42)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andsignedshortArg_(b"hello", 1 << 14)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 1 << 14)
        r = o.charPtrArg_andsignedshortArg_(b"world", -(1<<14))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], -(1<<14))
        r = o.charPtrArg_andsignedshortArg_(b"world", -42)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], -42)
        r = o.charPtrArg_andsignedshortArg_(b"world", 0)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andsignedshortArg_(b"world", 42)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andsignedshortArg_(b"world", 1 << 14)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 1 << 14)
        r = o.charPtrArg_andsignedshortArg_(b"foobar", -(1<<14))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], -(1<<14))
        r = o.charPtrArg_andsignedshortArg_(b"foobar", -42)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], -42)
        r = o.charPtrArg_andsignedshortArg_(b"foobar", 0)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andsignedshortArg_(b"foobar", 42)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andsignedshortArg_(b"foobar", 1 << 14)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 1 << 14)


    def testcharPtrAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andsignedintArg_(b"hello", -(1<<30))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], -(1<<30))
        r = o.charPtrArg_andsignedintArg_(b"hello", -42)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], -42)
        r = o.charPtrArg_andsignedintArg_(b"hello", 0)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andsignedintArg_(b"hello", 42)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andsignedintArg_(b"hello", 1 << 30)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 1 << 30)
        r = o.charPtrArg_andsignedintArg_(b"world", -(1<<30))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], -(1<<30))
        r = o.charPtrArg_andsignedintArg_(b"world", -42)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], -42)
        r = o.charPtrArg_andsignedintArg_(b"world", 0)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andsignedintArg_(b"world", 42)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andsignedintArg_(b"world", 1 << 30)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 1 << 30)
        r = o.charPtrArg_andsignedintArg_(b"foobar", -(1<<30))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], -(1<<30))
        r = o.charPtrArg_andsignedintArg_(b"foobar", -42)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], -42)
        r = o.charPtrArg_andsignedintArg_(b"foobar", 0)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andsignedintArg_(b"foobar", 42)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andsignedintArg_(b"foobar", 1 << 30)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 1 << 30)


    def testcharPtrAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andsignedlongArg_(b"hello", -(1<<30))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], -(1<<30))
        r = o.charPtrArg_andsignedlongArg_(b"hello", -42)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], -42)
        r = o.charPtrArg_andsignedlongArg_(b"hello", 0)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andsignedlongArg_(b"hello", 42)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andsignedlongArg_(b"hello", 1 << 30)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 1 << 30)
        r = o.charPtrArg_andsignedlongArg_(b"world", -(1<<30))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], -(1<<30))
        r = o.charPtrArg_andsignedlongArg_(b"world", -42)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], -42)
        r = o.charPtrArg_andsignedlongArg_(b"world", 0)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andsignedlongArg_(b"world", 42)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andsignedlongArg_(b"world", 1 << 30)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 1 << 30)
        r = o.charPtrArg_andsignedlongArg_(b"foobar", -(1<<30))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], -(1<<30))
        r = o.charPtrArg_andsignedlongArg_(b"foobar", -42)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], -42)
        r = o.charPtrArg_andsignedlongArg_(b"foobar", 0)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andsignedlongArg_(b"foobar", 42)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andsignedlongArg_(b"foobar", 1 << 30)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 1 << 30)


    def testcharPtrAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andsignedlonglongArg_(b"hello", -(1 << 60))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], -(1 << 60))
        r = o.charPtrArg_andsignedlonglongArg_(b"hello", -42)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], -42)
        r = o.charPtrArg_andsignedlonglongArg_(b"hello", 0)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andsignedlonglongArg_(b"hello", 42)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andsignedlonglongArg_(b"hello", 1 << 60)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 1 << 60)
        r = o.charPtrArg_andsignedlonglongArg_(b"world", -(1 << 60))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], -(1 << 60))
        r = o.charPtrArg_andsignedlonglongArg_(b"world", -42)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], -42)
        r = o.charPtrArg_andsignedlonglongArg_(b"world", 0)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andsignedlonglongArg_(b"world", 42)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andsignedlonglongArg_(b"world", 1 << 60)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 1 << 60)
        r = o.charPtrArg_andsignedlonglongArg_(b"foobar", -(1 << 60))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], -(1 << 60))
        r = o.charPtrArg_andsignedlonglongArg_(b"foobar", -42)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], -42)
        r = o.charPtrArg_andsignedlonglongArg_(b"foobar", 0)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andsignedlonglongArg_(b"foobar", 42)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andsignedlonglongArg_(b"foobar", 1 << 60)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 1 << 60)


    def testcharPtrAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andunsignedcharArg_(b"hello", 0)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andunsignedcharArg_(b"hello", 128)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 128)
        r = o.charPtrArg_andunsignedcharArg_(b"hello", 255)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 255)
        r = o.charPtrArg_andunsignedcharArg_(b"world", 0)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andunsignedcharArg_(b"world", 128)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 128)
        r = o.charPtrArg_andunsignedcharArg_(b"world", 255)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 255)
        r = o.charPtrArg_andunsignedcharArg_(b"foobar", 0)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andunsignedcharArg_(b"foobar", 128)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 128)
        r = o.charPtrArg_andunsignedcharArg_(b"foobar", 255)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 255)


    def testcharPtrAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andunsignedshortArg_(b"hello", 0)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andunsignedshortArg_(b"hello", 42)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andunsignedshortArg_(b"hello", 1<<14)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 1<<14)
        r = o.charPtrArg_andunsignedshortArg_(b"world", 0)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andunsignedshortArg_(b"world", 42)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andunsignedshortArg_(b"world", 1<<14)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 1<<14)
        r = o.charPtrArg_andunsignedshortArg_(b"foobar", 0)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andunsignedshortArg_(b"foobar", 42)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andunsignedshortArg_(b"foobar", 1<<14)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 1<<14)


    def testcharPtrAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andunsignedintArg_(b"hello", 0)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andunsignedintArg_(b"hello", 42)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andunsignedintArg_(b"hello", 1 << 30)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 1 << 30)
        r = o.charPtrArg_andunsignedintArg_(b"world", 0)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andunsignedintArg_(b"world", 42)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andunsignedintArg_(b"world", 1 << 30)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 1 << 30)
        r = o.charPtrArg_andunsignedintArg_(b"foobar", 0)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andunsignedintArg_(b"foobar", 42)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andunsignedintArg_(b"foobar", 1 << 30)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 1 << 30)


    def testcharPtrAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andunsignedlongArg_(b"hello", 0)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andunsignedlongArg_(b"hello", 42)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andunsignedlongArg_(b"hello", 1 << 30)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 1 << 30)
        r = o.charPtrArg_andunsignedlongArg_(b"world", 0)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andunsignedlongArg_(b"world", 42)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andunsignedlongArg_(b"world", 1 << 30)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 1 << 30)
        r = o.charPtrArg_andunsignedlongArg_(b"foobar", 0)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andunsignedlongArg_(b"foobar", 42)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andunsignedlongArg_(b"foobar", 1 << 30)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 1 << 30)


    def testcharPtrAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andunsignedlonglongArg_(b"hello", 0)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andunsignedlonglongArg_(b"hello", 42)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andunsignedlonglongArg_(b"hello", 1 << 62)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], 1 << 62)
        r = o.charPtrArg_andunsignedlonglongArg_(b"world", 0)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andunsignedlonglongArg_(b"world", 42)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andunsignedlonglongArg_(b"world", 1 << 62)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], 1 << 62)
        r = o.charPtrArg_andunsignedlonglongArg_(b"foobar", 0)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 0)
        r = o.charPtrArg_andunsignedlonglongArg_(b"foobar", 42)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 42)
        r = o.charPtrArg_andunsignedlonglongArg_(b"foobar", 1 << 62)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], 1 << 62)


    def testcharPtrAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andfloatArg_(b"hello", 0.128)
        self.assertEqual(r[0], b"hello")
        self.assertAlmostEqual(r[1], 0.128)
        r = o.charPtrArg_andfloatArg_(b"hello", 1.0)
        self.assertEqual(r[0], b"hello")
        self.assertAlmostEqual(r[1], 1.0)
        r = o.charPtrArg_andfloatArg_(b"hello", 42.0)
        self.assertEqual(r[0], b"hello")
        self.assertAlmostEqual(r[1], 42.0)
        r = o.charPtrArg_andfloatArg_(b"hello", 1e10)
        self.assertEqual(r[0], b"hello")
        self.assertAlmostEqual(r[1], 1e10)
        r = o.charPtrArg_andfloatArg_(b"world", 0.128)
        self.assertEqual(r[0], b"world")
        self.assertAlmostEqual(r[1], 0.128)
        r = o.charPtrArg_andfloatArg_(b"world", 1.0)
        self.assertEqual(r[0], b"world")
        self.assertAlmostEqual(r[1], 1.0)
        r = o.charPtrArg_andfloatArg_(b"world", 42.0)
        self.assertEqual(r[0], b"world")
        self.assertAlmostEqual(r[1], 42.0)
        r = o.charPtrArg_andfloatArg_(b"world", 1e10)
        self.assertEqual(r[0], b"world")
        self.assertAlmostEqual(r[1], 1e10)
        r = o.charPtrArg_andfloatArg_(b"foobar", 0.128)
        self.assertEqual(r[0], b"foobar")
        self.assertAlmostEqual(r[1], 0.128)
        r = o.charPtrArg_andfloatArg_(b"foobar", 1.0)
        self.assertEqual(r[0], b"foobar")
        self.assertAlmostEqual(r[1], 1.0)
        r = o.charPtrArg_andfloatArg_(b"foobar", 42.0)
        self.assertEqual(r[0], b"foobar")
        self.assertAlmostEqual(r[1], 42.0)
        r = o.charPtrArg_andfloatArg_(b"foobar", 1e10)
        self.assertEqual(r[0], b"foobar")
        self.assertAlmostEqual(r[1], 1e10)


    def testcharPtrAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_anddoubleArg_(b"hello", 0.128)
        self.assertEqual(r[0], b"hello")
        self.assertAlmostEqual(r[1], 0.128)
        r = o.charPtrArg_anddoubleArg_(b"hello", 1.0)
        self.assertEqual(r[0], b"hello")
        self.assertAlmostEqual(r[1], 1.0)
        r = o.charPtrArg_anddoubleArg_(b"hello", 42.0)
        self.assertEqual(r[0], b"hello")
        self.assertAlmostEqual(r[1], 42.0)
        r = o.charPtrArg_anddoubleArg_(b"hello", 1e10)
        self.assertEqual(r[0], b"hello")
        self.assertAlmostEqual(r[1], 1e10)
        r = o.charPtrArg_anddoubleArg_(b"world", 0.128)
        self.assertEqual(r[0], b"world")
        self.assertAlmostEqual(r[1], 0.128)
        r = o.charPtrArg_anddoubleArg_(b"world", 1.0)
        self.assertEqual(r[0], b"world")
        self.assertAlmostEqual(r[1], 1.0)
        r = o.charPtrArg_anddoubleArg_(b"world", 42.0)
        self.assertEqual(r[0], b"world")
        self.assertAlmostEqual(r[1], 42.0)
        r = o.charPtrArg_anddoubleArg_(b"world", 1e10)
        self.assertEqual(r[0], b"world")
        self.assertAlmostEqual(r[1], 1e10)
        r = o.charPtrArg_anddoubleArg_(b"foobar", 0.128)
        self.assertEqual(r[0], b"foobar")
        self.assertAlmostEqual(r[1], 0.128)
        r = o.charPtrArg_anddoubleArg_(b"foobar", 1.0)
        self.assertEqual(r[0], b"foobar")
        self.assertAlmostEqual(r[1], 1.0)
        r = o.charPtrArg_anddoubleArg_(b"foobar", 42.0)
        self.assertEqual(r[0], b"foobar")
        self.assertAlmostEqual(r[1], 42.0)
        r = o.charPtrArg_anddoubleArg_(b"foobar", 1e10)
        self.assertEqual(r[0], b"foobar")
        self.assertAlmostEqual(r[1], 1e10)


    def testcharPtrAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andidArg_(b"hello", NSPriorDayDesignations)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.charPtrArg_andidArg_(b"world", NSPriorDayDesignations)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.charPtrArg_andidArg_(b"foobar", NSPriorDayDesignations)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcharPtrAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andcharPtrArg_(b"hello", b"hello")
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], b"hello")
        r = o.charPtrArg_andcharPtrArg_(b"hello", b"world")
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], b"world")
        r = o.charPtrArg_andcharPtrArg_(b"hello", b"foobar")
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], b"foobar")
        r = o.charPtrArg_andcharPtrArg_(b"world", b"hello")
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], b"hello")
        r = o.charPtrArg_andcharPtrArg_(b"world", b"world")
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], b"world")
        r = o.charPtrArg_andcharPtrArg_(b"world", b"foobar")
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], b"foobar")
        r = o.charPtrArg_andcharPtrArg_(b"foobar", b"hello")
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], b"hello")
        r = o.charPtrArg_andcharPtrArg_(b"foobar", b"world")
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], b"world")
        r = o.charPtrArg_andcharPtrArg_(b"foobar", b"foobar")
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], b"foobar")


    def testcharPtrAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andNSPointArg_(b"hello", (1, 2))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], (1, 2))
        r = o.charPtrArg_andNSPointArg_(b"hello", (3, 4))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], (3, 4))
        r = o.charPtrArg_andNSPointArg_(b"world", (1, 2))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], (1, 2))
        r = o.charPtrArg_andNSPointArg_(b"world", (3, 4))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], (3, 4))
        r = o.charPtrArg_andNSPointArg_(b"foobar", (1, 2))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], (1, 2))
        r = o.charPtrArg_andNSPointArg_(b"foobar", (3, 4))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], (3, 4))


    def testcharPtrAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andNSRectArg_(b"hello", ((1, 2), (3, 4)))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.charPtrArg_andNSRectArg_(b"hello", ((7, 8), (9, 10)))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.charPtrArg_andNSRectArg_(b"world", ((1, 2), (3, 4)))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.charPtrArg_andNSRectArg_(b"world", ((7, 8), (9, 10)))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.charPtrArg_andNSRectArg_(b"foobar", ((1, 2), (3, 4)))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.charPtrArg_andNSRectArg_(b"foobar", ((7, 8), (9, 10)))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcharPtrAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andstructTestStruct1Arg_(b"hello", (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.charPtrArg_andstructTestStruct1Arg_(b"hello", (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.charPtrArg_andstructTestStruct1Arg_(b"world", (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.charPtrArg_andstructTestStruct1Arg_(b"world", (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.charPtrArg_andstructTestStruct1Arg_(b"foobar", (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.charPtrArg_andstructTestStruct1Arg_(b"foobar", (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcharPtrAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andstructTestStruct2Arg_(b"hello", (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.charPtrArg_andstructTestStruct2Arg_(b"hello", (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.charPtrArg_andstructTestStruct2Arg_(b"world", (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.charPtrArg_andstructTestStruct2Arg_(b"world", (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.charPtrArg_andstructTestStruct2Arg_(b"foobar", (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.charPtrArg_andstructTestStruct2Arg_(b"foobar", (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcharPtrAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andstructTestStruct3Arg_(b"hello", (1, 2))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], (1, 2))
        r = o.charPtrArg_andstructTestStruct3Arg_(b"hello", (2, 4))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], (2, 4))
        r = o.charPtrArg_andstructTestStruct3Arg_(b"world", (1, 2))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], (1, 2))
        r = o.charPtrArg_andstructTestStruct3Arg_(b"world", (2, 4))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], (2, 4))
        r = o.charPtrArg_andstructTestStruct3Arg_(b"foobar", (1, 2))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], (1, 2))
        r = o.charPtrArg_andstructTestStruct3Arg_(b"foobar", (2, 4))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], (2, 4))


    def testcharPtrAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andstructTestStruct4Arg_(b"hello", (1, 1<<60))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], (1, 1<<60))
        r = o.charPtrArg_andstructTestStruct4Arg_(b"hello", (2, 4))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], (2, 4))
        r = o.charPtrArg_andstructTestStruct4Arg_(b"world", (1, 1<<60))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], (1, 1<<60))
        r = o.charPtrArg_andstructTestStruct4Arg_(b"world", (2, 4))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], (2, 4))
        r = o.charPtrArg_andstructTestStruct4Arg_(b"foobar", (1, 1<<60))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], (1, 1<<60))
        r = o.charPtrArg_andstructTestStruct4Arg_(b"foobar", (2, 4))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], (2, 4))


    def testcharPtrAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrArg_andstructTestStruct5Arg_(b"hello", (1, 2.5))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], (1, 2.5))
        r = o.charPtrArg_andstructTestStruct5Arg_(b"hello", (2, 4.5))
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], (2, 4.5))
        r = o.charPtrArg_andstructTestStruct5Arg_(b"world", (1, 2.5))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], (1, 2.5))
        r = o.charPtrArg_andstructTestStruct5Arg_(b"world", (2, 4.5))
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], (2, 4.5))
        r = o.charPtrArg_andstructTestStruct5Arg_(b"foobar", (1, 2.5))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], (1, 2.5))
        r = o.charPtrArg_andstructTestStruct5Arg_(b"foobar", (2, 4.5))
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], (2, 4.5))


    def testNSPointAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andboolArg_((1, 2), YES)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], YES)
        r = o.NSPointArg_andboolArg_((1, 2), NO)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NO)
        r = o.NSPointArg_andboolArg_((3, 4), YES)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], YES)
        r = o.NSPointArg_andboolArg_((3, 4), NO)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], NO)


    def testNSPointAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andBOOLArg_((1, 2), YES)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], YES)
        r = o.NSPointArg_andBOOLArg_((1, 2), NO)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NO)
        r = o.NSPointArg_andBOOLArg_((3, 4), YES)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], YES)
        r = o.NSPointArg_andBOOLArg_((3, 4), NO)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], NO)


    def testNSPointAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andcharArg_((1, 2), -128)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -128)
        r = o.NSPointArg_andcharArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andcharArg_((1, 2), 127)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 127)
        r = o.NSPointArg_andcharArg_((3, 4), -128)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -128)
        r = o.NSPointArg_andcharArg_((3, 4), 0)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andcharArg_((3, 4), 127)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 127)


    def testNSPointAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andsignedshortArg_((1, 2), -(1<<14))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<14))
        r = o.NSPointArg_andsignedshortArg_((1, 2), -42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = o.NSPointArg_andsignedshortArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andsignedshortArg_((1, 2), 42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = o.NSPointArg_andsignedshortArg_((1, 2), 1 << 14)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 14)
        r = o.NSPointArg_andsignedshortArg_((3, 4), -(1<<14))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -(1<<14))
        r = o.NSPointArg_andsignedshortArg_((3, 4), -42)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -42)
        r = o.NSPointArg_andsignedshortArg_((3, 4), 0)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andsignedshortArg_((3, 4), 42)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = o.NSPointArg_andsignedshortArg_((3, 4), 1 << 14)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 14)


    def testNSPointAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andsignedintArg_((1, 2), -(1<<30))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<30))
        r = o.NSPointArg_andsignedintArg_((1, 2), -42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = o.NSPointArg_andsignedintArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andsignedintArg_((1, 2), 42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = o.NSPointArg_andsignedintArg_((1, 2), 1 << 30)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = o.NSPointArg_andsignedintArg_((3, 4), -(1<<30))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -(1<<30))
        r = o.NSPointArg_andsignedintArg_((3, 4), -42)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -42)
        r = o.NSPointArg_andsignedintArg_((3, 4), 0)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andsignedintArg_((3, 4), 42)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = o.NSPointArg_andsignedintArg_((3, 4), 1 << 30)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 30)


    def testNSPointAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andsignedlongArg_((1, 2), -(1<<30))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<30))
        r = o.NSPointArg_andsignedlongArg_((1, 2), -42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = o.NSPointArg_andsignedlongArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andsignedlongArg_((1, 2), 42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = o.NSPointArg_andsignedlongArg_((1, 2), 1 << 30)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = o.NSPointArg_andsignedlongArg_((3, 4), -(1<<30))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -(1<<30))
        r = o.NSPointArg_andsignedlongArg_((3, 4), -42)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -42)
        r = o.NSPointArg_andsignedlongArg_((3, 4), 0)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andsignedlongArg_((3, 4), 42)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = o.NSPointArg_andsignedlongArg_((3, 4), 1 << 30)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 30)


    def testNSPointAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andsignedlonglongArg_((1, 2), -(1 << 60))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1 << 60))
        r = o.NSPointArg_andsignedlonglongArg_((1, 2), -42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = o.NSPointArg_andsignedlonglongArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andsignedlonglongArg_((1, 2), 42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = o.NSPointArg_andsignedlonglongArg_((1, 2), 1 << 60)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 60)
        r = o.NSPointArg_andsignedlonglongArg_((3, 4), -(1 << 60))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -(1 << 60))
        r = o.NSPointArg_andsignedlonglongArg_((3, 4), -42)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -42)
        r = o.NSPointArg_andsignedlonglongArg_((3, 4), 0)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andsignedlonglongArg_((3, 4), 42)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = o.NSPointArg_andsignedlonglongArg_((3, 4), 1 << 60)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 60)


    def testNSPointAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andunsignedcharArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andunsignedcharArg_((1, 2), 128)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 128)
        r = o.NSPointArg_andunsignedcharArg_((1, 2), 255)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 255)
        r = o.NSPointArg_andunsignedcharArg_((3, 4), 0)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andunsignedcharArg_((3, 4), 128)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 128)
        r = o.NSPointArg_andunsignedcharArg_((3, 4), 255)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 255)


    def testNSPointAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andunsignedshortArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andunsignedshortArg_((1, 2), 42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = o.NSPointArg_andunsignedshortArg_((1, 2), 1<<14)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1<<14)
        r = o.NSPointArg_andunsignedshortArg_((3, 4), 0)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andunsignedshortArg_((3, 4), 42)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = o.NSPointArg_andunsignedshortArg_((3, 4), 1<<14)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1<<14)


    def testNSPointAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andunsignedintArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andunsignedintArg_((1, 2), 42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = o.NSPointArg_andunsignedintArg_((1, 2), 1 << 30)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = o.NSPointArg_andunsignedintArg_((3, 4), 0)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andunsignedintArg_((3, 4), 42)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = o.NSPointArg_andunsignedintArg_((3, 4), 1 << 30)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 30)


    def testNSPointAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andunsignedlongArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andunsignedlongArg_((1, 2), 42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = o.NSPointArg_andunsignedlongArg_((1, 2), 1 << 30)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = o.NSPointArg_andunsignedlongArg_((3, 4), 0)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andunsignedlongArg_((3, 4), 42)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = o.NSPointArg_andunsignedlongArg_((3, 4), 1 << 30)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 30)


    def testNSPointAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andunsignedlonglongArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andunsignedlonglongArg_((1, 2), 42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = o.NSPointArg_andunsignedlonglongArg_((1, 2), 1 << 62)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 62)
        r = o.NSPointArg_andunsignedlonglongArg_((3, 4), 0)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = o.NSPointArg_andunsignedlonglongArg_((3, 4), 42)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = o.NSPointArg_andunsignedlonglongArg_((3, 4), 1 << 62)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 62)


    def testNSPointAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andfloatArg_((1, 2), 0.128)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.NSPointArg_andfloatArg_((1, 2), 1.0)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.NSPointArg_andfloatArg_((1, 2), 42.0)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.NSPointArg_andfloatArg_((1, 2), 1e10)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.NSPointArg_andfloatArg_((3, 4), 0.128)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.NSPointArg_andfloatArg_((3, 4), 1.0)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.NSPointArg_andfloatArg_((3, 4), 42.0)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.NSPointArg_andfloatArg_((3, 4), 1e10)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def testNSPointAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_anddoubleArg_((1, 2), 0.128)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.NSPointArg_anddoubleArg_((1, 2), 1.0)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.NSPointArg_anddoubleArg_((1, 2), 42.0)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.NSPointArg_anddoubleArg_((1, 2), 1e10)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.NSPointArg_anddoubleArg_((3, 4), 0.128)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.NSPointArg_anddoubleArg_((3, 4), 1.0)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.NSPointArg_anddoubleArg_((3, 4), 42.0)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.NSPointArg_anddoubleArg_((3, 4), 1e10)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def testNSPointAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andidArg_((1, 2), NSPriorDayDesignations)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.NSPointArg_andidArg_((3, 4), NSPriorDayDesignations)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testNSPointAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andcharPtrArg_((1, 2), b"hello")
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], b"hello")
        r = o.NSPointArg_andcharPtrArg_((1, 2), b"world")
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], b"world")
        r = o.NSPointArg_andcharPtrArg_((1, 2), b"foobar")
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], b"foobar")
        r = o.NSPointArg_andcharPtrArg_((3, 4), b"hello")
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], b"hello")
        r = o.NSPointArg_andcharPtrArg_((3, 4), b"world")
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], b"world")
        r = o.NSPointArg_andcharPtrArg_((3, 4), b"foobar")
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], b"foobar")


    def testNSPointAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andNSPointArg_((1, 2), (1, 2))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2))
        r = o.NSPointArg_andNSPointArg_((1, 2), (3, 4))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (3, 4))
        r = o.NSPointArg_andNSPointArg_((3, 4), (1, 2))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2))
        r = o.NSPointArg_andNSPointArg_((3, 4), (3, 4))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (3, 4))


    def testNSPointAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andNSRectArg_((1, 2), ((1, 2), (3, 4)))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.NSPointArg_andNSRectArg_((1, 2), ((7, 8), (9, 10)))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.NSPointArg_andNSRectArg_((3, 4), ((1, 2), (3, 4)))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.NSPointArg_andNSRectArg_((3, 4), ((7, 8), (9, 10)))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testNSPointAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andstructTestStruct1Arg_((1, 2), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.NSPointArg_andstructTestStruct1Arg_((1, 2), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.NSPointArg_andstructTestStruct1Arg_((3, 4), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.NSPointArg_andstructTestStruct1Arg_((3, 4), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testNSPointAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andstructTestStruct2Arg_((1, 2), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.NSPointArg_andstructTestStruct2Arg_((1, 2), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.NSPointArg_andstructTestStruct2Arg_((3, 4), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.NSPointArg_andstructTestStruct2Arg_((3, 4), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testNSPointAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andstructTestStruct3Arg_((1, 2), (1, 2))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2))
        r = o.NSPointArg_andstructTestStruct3Arg_((1, 2), (2, 4))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4))
        r = o.NSPointArg_andstructTestStruct3Arg_((3, 4), (1, 2))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2))
        r = o.NSPointArg_andstructTestStruct3Arg_((3, 4), (2, 4))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (2, 4))


    def testNSPointAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andstructTestStruct4Arg_((1, 2), (1, 1<<60))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.NSPointArg_andstructTestStruct4Arg_((1, 2), (2, 4))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4))
        r = o.NSPointArg_andstructTestStruct4Arg_((3, 4), (1, 1<<60))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.NSPointArg_andstructTestStruct4Arg_((3, 4), (2, 4))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (2, 4))


    def testNSPointAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointArg_andstructTestStruct5Arg_((1, 2), (1, 2.5))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2.5))
        r = o.NSPointArg_andstructTestStruct5Arg_((1, 2), (2, 4.5))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4.5))
        r = o.NSPointArg_andstructTestStruct5Arg_((3, 4), (1, 2.5))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2.5))
        r = o.NSPointArg_andstructTestStruct5Arg_((3, 4), (2, 4.5))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (2, 4.5))


    def testNSRectAndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andboolArg_(((1, 2), (3, 4)), YES)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], YES)
        r = o.NSRectArg_andboolArg_(((1, 2), (3, 4)), NO)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], NO)
        r = o.NSRectArg_andboolArg_(((7, 8), (9, 10)), YES)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], YES)
        r = o.NSRectArg_andboolArg_(((7, 8), (9, 10)), NO)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], NO)


    def testNSRectAndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andBOOLArg_(((1, 2), (3, 4)), YES)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], YES)
        r = o.NSRectArg_andBOOLArg_(((1, 2), (3, 4)), NO)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], NO)
        r = o.NSRectArg_andBOOLArg_(((7, 8), (9, 10)), YES)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], YES)
        r = o.NSRectArg_andBOOLArg_(((7, 8), (9, 10)), NO)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], NO)


    def testNSRectAndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andcharArg_(((1, 2), (3, 4)), -128)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -128)
        r = o.NSRectArg_andcharArg_(((1, 2), (3, 4)), 0)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andcharArg_(((1, 2), (3, 4)), 127)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 127)
        r = o.NSRectArg_andcharArg_(((7, 8), (9, 10)), -128)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -128)
        r = o.NSRectArg_andcharArg_(((7, 8), (9, 10)), 0)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andcharArg_(((7, 8), (9, 10)), 127)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 127)


    def testNSRectAndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andsignedshortArg_(((1, 2), (3, 4)), -(1<<14))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -(1<<14))
        r = o.NSRectArg_andsignedshortArg_(((1, 2), (3, 4)), -42)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -42)
        r = o.NSRectArg_andsignedshortArg_(((1, 2), (3, 4)), 0)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andsignedshortArg_(((1, 2), (3, 4)), 42)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = o.NSRectArg_andsignedshortArg_(((1, 2), (3, 4)), 1 << 14)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 14)
        r = o.NSRectArg_andsignedshortArg_(((7, 8), (9, 10)), -(1<<14))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -(1<<14))
        r = o.NSRectArg_andsignedshortArg_(((7, 8), (9, 10)), -42)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -42)
        r = o.NSRectArg_andsignedshortArg_(((7, 8), (9, 10)), 0)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andsignedshortArg_(((7, 8), (9, 10)), 42)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = o.NSRectArg_andsignedshortArg_(((7, 8), (9, 10)), 1 << 14)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 14)


    def testNSRectAndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andsignedintArg_(((1, 2), (3, 4)), -(1<<30))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -(1<<30))
        r = o.NSRectArg_andsignedintArg_(((1, 2), (3, 4)), -42)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -42)
        r = o.NSRectArg_andsignedintArg_(((1, 2), (3, 4)), 0)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andsignedintArg_(((1, 2), (3, 4)), 42)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = o.NSRectArg_andsignedintArg_(((1, 2), (3, 4)), 1 << 30)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 30)
        r = o.NSRectArg_andsignedintArg_(((7, 8), (9, 10)), -(1<<30))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -(1<<30))
        r = o.NSRectArg_andsignedintArg_(((7, 8), (9, 10)), -42)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -42)
        r = o.NSRectArg_andsignedintArg_(((7, 8), (9, 10)), 0)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andsignedintArg_(((7, 8), (9, 10)), 42)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = o.NSRectArg_andsignedintArg_(((7, 8), (9, 10)), 1 << 30)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 30)


    def testNSRectAndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andsignedlongArg_(((1, 2), (3, 4)), -(1<<30))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -(1<<30))
        r = o.NSRectArg_andsignedlongArg_(((1, 2), (3, 4)), -42)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -42)
        r = o.NSRectArg_andsignedlongArg_(((1, 2), (3, 4)), 0)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andsignedlongArg_(((1, 2), (3, 4)), 42)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = o.NSRectArg_andsignedlongArg_(((1, 2), (3, 4)), 1 << 30)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 30)
        r = o.NSRectArg_andsignedlongArg_(((7, 8), (9, 10)), -(1<<30))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -(1<<30))
        r = o.NSRectArg_andsignedlongArg_(((7, 8), (9, 10)), -42)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -42)
        r = o.NSRectArg_andsignedlongArg_(((7, 8), (9, 10)), 0)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andsignedlongArg_(((7, 8), (9, 10)), 42)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = o.NSRectArg_andsignedlongArg_(((7, 8), (9, 10)), 1 << 30)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 30)


    def testNSRectAndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andsignedlonglongArg_(((1, 2), (3, 4)), -(1 << 60))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -(1 << 60))
        r = o.NSRectArg_andsignedlonglongArg_(((1, 2), (3, 4)), -42)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -42)
        r = o.NSRectArg_andsignedlonglongArg_(((1, 2), (3, 4)), 0)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andsignedlonglongArg_(((1, 2), (3, 4)), 42)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = o.NSRectArg_andsignedlonglongArg_(((1, 2), (3, 4)), 1 << 60)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 60)
        r = o.NSRectArg_andsignedlonglongArg_(((7, 8), (9, 10)), -(1 << 60))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -(1 << 60))
        r = o.NSRectArg_andsignedlonglongArg_(((7, 8), (9, 10)), -42)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -42)
        r = o.NSRectArg_andsignedlonglongArg_(((7, 8), (9, 10)), 0)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andsignedlonglongArg_(((7, 8), (9, 10)), 42)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = o.NSRectArg_andsignedlonglongArg_(((7, 8), (9, 10)), 1 << 60)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 60)


    def testNSRectAndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andunsignedcharArg_(((1, 2), (3, 4)), 0)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andunsignedcharArg_(((1, 2), (3, 4)), 128)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 128)
        r = o.NSRectArg_andunsignedcharArg_(((1, 2), (3, 4)), 255)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 255)
        r = o.NSRectArg_andunsignedcharArg_(((7, 8), (9, 10)), 0)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andunsignedcharArg_(((7, 8), (9, 10)), 128)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 128)
        r = o.NSRectArg_andunsignedcharArg_(((7, 8), (9, 10)), 255)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 255)


    def testNSRectAndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andunsignedshortArg_(((1, 2), (3, 4)), 0)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andunsignedshortArg_(((1, 2), (3, 4)), 42)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = o.NSRectArg_andunsignedshortArg_(((1, 2), (3, 4)), 1<<14)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1<<14)
        r = o.NSRectArg_andunsignedshortArg_(((7, 8), (9, 10)), 0)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andunsignedshortArg_(((7, 8), (9, 10)), 42)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = o.NSRectArg_andunsignedshortArg_(((7, 8), (9, 10)), 1<<14)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1<<14)


    def testNSRectAndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andunsignedintArg_(((1, 2), (3, 4)), 0)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andunsignedintArg_(((1, 2), (3, 4)), 42)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = o.NSRectArg_andunsignedintArg_(((1, 2), (3, 4)), 1 << 30)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 30)
        r = o.NSRectArg_andunsignedintArg_(((7, 8), (9, 10)), 0)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andunsignedintArg_(((7, 8), (9, 10)), 42)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = o.NSRectArg_andunsignedintArg_(((7, 8), (9, 10)), 1 << 30)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 30)


    def testNSRectAndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andunsignedlongArg_(((1, 2), (3, 4)), 0)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andunsignedlongArg_(((1, 2), (3, 4)), 42)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = o.NSRectArg_andunsignedlongArg_(((1, 2), (3, 4)), 1 << 30)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 30)
        r = o.NSRectArg_andunsignedlongArg_(((7, 8), (9, 10)), 0)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andunsignedlongArg_(((7, 8), (9, 10)), 42)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = o.NSRectArg_andunsignedlongArg_(((7, 8), (9, 10)), 1 << 30)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 30)


    def testNSRectAndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andunsignedlonglongArg_(((1, 2), (3, 4)), 0)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andunsignedlonglongArg_(((1, 2), (3, 4)), 42)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = o.NSRectArg_andunsignedlonglongArg_(((1, 2), (3, 4)), 1 << 62)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 62)
        r = o.NSRectArg_andunsignedlonglongArg_(((7, 8), (9, 10)), 0)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = o.NSRectArg_andunsignedlonglongArg_(((7, 8), (9, 10)), 42)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = o.NSRectArg_andunsignedlonglongArg_(((7, 8), (9, 10)), 1 << 62)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 62)


    def testNSRectAndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andfloatArg_(((1, 2), (3, 4)), 0.128)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.NSRectArg_andfloatArg_(((1, 2), (3, 4)), 1.0)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.NSRectArg_andfloatArg_(((1, 2), (3, 4)), 42.0)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.NSRectArg_andfloatArg_(((1, 2), (3, 4)), 1e10)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.NSRectArg_andfloatArg_(((7, 8), (9, 10)), 0.128)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.NSRectArg_andfloatArg_(((7, 8), (9, 10)), 1.0)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.NSRectArg_andfloatArg_(((7, 8), (9, 10)), 42.0)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.NSRectArg_andfloatArg_(((7, 8), (9, 10)), 1e10)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 1e10)


    def testNSRectAnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_anddoubleArg_(((1, 2), (3, 4)), 0.128)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.NSRectArg_anddoubleArg_(((1, 2), (3, 4)), 1.0)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.NSRectArg_anddoubleArg_(((1, 2), (3, 4)), 42.0)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.NSRectArg_anddoubleArg_(((1, 2), (3, 4)), 1e10)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.NSRectArg_anddoubleArg_(((7, 8), (9, 10)), 0.128)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.NSRectArg_anddoubleArg_(((7, 8), (9, 10)), 1.0)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.NSRectArg_anddoubleArg_(((7, 8), (9, 10)), 42.0)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.NSRectArg_anddoubleArg_(((7, 8), (9, 10)), 1e10)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 1e10)


    def testNSRectAndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andidArg_(((1, 2), (3, 4)), NSPriorDayDesignations)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.NSRectArg_andidArg_(((7, 8), (9, 10)), NSPriorDayDesignations)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testNSRectAndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andcharPtrArg_(((1, 2), (3, 4)), b"hello")
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], b"hello")
        r = o.NSRectArg_andcharPtrArg_(((1, 2), (3, 4)), b"world")
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], b"world")
        r = o.NSRectArg_andcharPtrArg_(((1, 2), (3, 4)), b"foobar")
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], b"foobar")
        r = o.NSRectArg_andcharPtrArg_(((7, 8), (9, 10)), b"hello")
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], b"hello")
        r = o.NSRectArg_andcharPtrArg_(((7, 8), (9, 10)), b"world")
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], b"world")
        r = o.NSRectArg_andcharPtrArg_(((7, 8), (9, 10)), b"foobar")
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], b"foobar")


    def testNSRectAndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andNSPointArg_(((1, 2), (3, 4)), (1, 2))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 2))
        r = o.NSRectArg_andNSPointArg_(((1, 2), (3, 4)), (3, 4))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (3, 4))
        r = o.NSRectArg_andNSPointArg_(((7, 8), (9, 10)), (1, 2))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 2))
        r = o.NSRectArg_andNSPointArg_(((7, 8), (9, 10)), (3, 4))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (3, 4))


    def testNSRectAndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andNSRectArg_(((1, 2), (3, 4)), ((1, 2), (3, 4)))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.NSRectArg_andNSRectArg_(((1, 2), (3, 4)), ((7, 8), (9, 10)))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.NSRectArg_andNSRectArg_(((7, 8), (9, 10)), ((1, 2), (3, 4)))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.NSRectArg_andNSRectArg_(((7, 8), (9, 10)), ((7, 8), (9, 10)))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testNSRectAndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andstructTestStruct1Arg_(((1, 2), (3, 4)), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.NSRectArg_andstructTestStruct1Arg_(((1, 2), (3, 4)), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.NSRectArg_andstructTestStruct1Arg_(((7, 8), (9, 10)), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.NSRectArg_andstructTestStruct1Arg_(((7, 8), (9, 10)), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testNSRectAndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andstructTestStruct2Arg_(((1, 2), (3, 4)), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.NSRectArg_andstructTestStruct2Arg_(((1, 2), (3, 4)), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.NSRectArg_andstructTestStruct2Arg_(((7, 8), (9, 10)), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.NSRectArg_andstructTestStruct2Arg_(((7, 8), (9, 10)), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testNSRectAndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andstructTestStruct3Arg_(((1, 2), (3, 4)), (1, 2))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 2))
        r = o.NSRectArg_andstructTestStruct3Arg_(((1, 2), (3, 4)), (2, 4))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (2, 4))
        r = o.NSRectArg_andstructTestStruct3Arg_(((7, 8), (9, 10)), (1, 2))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 2))
        r = o.NSRectArg_andstructTestStruct3Arg_(((7, 8), (9, 10)), (2, 4))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (2, 4))


    def testNSRectAndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andstructTestStruct4Arg_(((1, 2), (3, 4)), (1, 1<<60))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.NSRectArg_andstructTestStruct4Arg_(((1, 2), (3, 4)), (2, 4))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (2, 4))
        r = o.NSRectArg_andstructTestStruct4Arg_(((7, 8), (9, 10)), (1, 1<<60))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.NSRectArg_andstructTestStruct4Arg_(((7, 8), (9, 10)), (2, 4))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (2, 4))


    def testNSRectAndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectArg_andstructTestStruct5Arg_(((1, 2), (3, 4)), (1, 2.5))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 2.5))
        r = o.NSRectArg_andstructTestStruct5Arg_(((1, 2), (3, 4)), (2, 4.5))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (2, 4.5))
        r = o.NSRectArg_andstructTestStruct5Arg_(((7, 8), (9, 10)), (1, 2.5))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 2.5))
        r = o.NSRectArg_andstructTestStruct5Arg_(((7, 8), (9, 10)), (2, 4.5))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (2, 4.5))


    def teststructTestStruct1AndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andboolArg_((1, 2, (1, 2, 3, 4, 5)), YES)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct1Arg_andboolArg_((1, 2, (1, 2, 3, 4, 5)), NO)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NO)
        r = o.structTestStruct1Arg_andboolArg_((9, 8, (-1, -2, -3, -4, -5)), YES)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct1Arg_andboolArg_((9, 8, (-1, -2, -3, -4, -5)), NO)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NO)


    def teststructTestStruct1AndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andBOOLArg_((1, 2, (1, 2, 3, 4, 5)), YES)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct1Arg_andBOOLArg_((1, 2, (1, 2, 3, 4, 5)), NO)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NO)
        r = o.structTestStruct1Arg_andBOOLArg_((9, 8, (-1, -2, -3, -4, -5)), YES)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct1Arg_andBOOLArg_((9, 8, (-1, -2, -3, -4, -5)), NO)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NO)


    def teststructTestStruct1AndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andcharArg_((1, 2, (1, 2, 3, 4, 5)), -128)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -128)
        r = o.structTestStruct1Arg_andcharArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andcharArg_((1, 2, (1, 2, 3, 4, 5)), 127)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 127)
        r = o.structTestStruct1Arg_andcharArg_((9, 8, (-1, -2, -3, -4, -5)), -128)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -128)
        r = o.structTestStruct1Arg_andcharArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andcharArg_((9, 8, (-1, -2, -3, -4, -5)), 127)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 127)


    def teststructTestStruct1AndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andsignedshortArg_((1, 2, (1, 2, 3, 4, 5)), -(1<<14))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<14))
        r = o.structTestStruct1Arg_andsignedshortArg_((1, 2, (1, 2, 3, 4, 5)), -42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct1Arg_andsignedshortArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andsignedshortArg_((1, 2, (1, 2, 3, 4, 5)), 42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct1Arg_andsignedshortArg_((1, 2, (1, 2, 3, 4, 5)), 1 << 14)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 14)
        r = o.structTestStruct1Arg_andsignedshortArg_((9, 8, (-1, -2, -3, -4, -5)), -(1<<14))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<14))
        r = o.structTestStruct1Arg_andsignedshortArg_((9, 8, (-1, -2, -3, -4, -5)), -42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct1Arg_andsignedshortArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andsignedshortArg_((9, 8, (-1, -2, -3, -4, -5)), 42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct1Arg_andsignedshortArg_((9, 8, (-1, -2, -3, -4, -5)), 1 << 14)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 14)


    def teststructTestStruct1AndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andsignedintArg_((1, 2, (1, 2, 3, 4, 5)), -(1<<30))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct1Arg_andsignedintArg_((1, 2, (1, 2, 3, 4, 5)), -42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct1Arg_andsignedintArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andsignedintArg_((1, 2, (1, 2, 3, 4, 5)), 42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct1Arg_andsignedintArg_((1, 2, (1, 2, 3, 4, 5)), 1 << 30)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct1Arg_andsignedintArg_((9, 8, (-1, -2, -3, -4, -5)), -(1<<30))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct1Arg_andsignedintArg_((9, 8, (-1, -2, -3, -4, -5)), -42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct1Arg_andsignedintArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andsignedintArg_((9, 8, (-1, -2, -3, -4, -5)), 42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct1Arg_andsignedintArg_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct1AndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andsignedlongArg_((1, 2, (1, 2, 3, 4, 5)), -(1<<30))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct1Arg_andsignedlongArg_((1, 2, (1, 2, 3, 4, 5)), -42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct1Arg_andsignedlongArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andsignedlongArg_((1, 2, (1, 2, 3, 4, 5)), 42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct1Arg_andsignedlongArg_((1, 2, (1, 2, 3, 4, 5)), 1 << 30)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct1Arg_andsignedlongArg_((9, 8, (-1, -2, -3, -4, -5)), -(1<<30))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct1Arg_andsignedlongArg_((9, 8, (-1, -2, -3, -4, -5)), -42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct1Arg_andsignedlongArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andsignedlongArg_((9, 8, (-1, -2, -3, -4, -5)), 42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct1Arg_andsignedlongArg_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct1AndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andsignedlonglongArg_((1, 2, (1, 2, 3, 4, 5)), -(1 << 60))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1 << 60))
        r = o.structTestStruct1Arg_andsignedlonglongArg_((1, 2, (1, 2, 3, 4, 5)), -42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct1Arg_andsignedlonglongArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andsignedlonglongArg_((1, 2, (1, 2, 3, 4, 5)), 42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct1Arg_andsignedlonglongArg_((1, 2, (1, 2, 3, 4, 5)), 1 << 60)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 60)
        r = o.structTestStruct1Arg_andsignedlonglongArg_((9, 8, (-1, -2, -3, -4, -5)), -(1 << 60))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1 << 60))
        r = o.structTestStruct1Arg_andsignedlonglongArg_((9, 8, (-1, -2, -3, -4, -5)), -42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct1Arg_andsignedlonglongArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andsignedlonglongArg_((9, 8, (-1, -2, -3, -4, -5)), 42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct1Arg_andsignedlonglongArg_((9, 8, (-1, -2, -3, -4, -5)), 1 << 60)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 60)


    def teststructTestStruct1AndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andunsignedcharArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andunsignedcharArg_((1, 2, (1, 2, 3, 4, 5)), 128)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 128)
        r = o.structTestStruct1Arg_andunsignedcharArg_((1, 2, (1, 2, 3, 4, 5)), 255)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 255)
        r = o.structTestStruct1Arg_andunsignedcharArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andunsignedcharArg_((9, 8, (-1, -2, -3, -4, -5)), 128)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 128)
        r = o.structTestStruct1Arg_andunsignedcharArg_((9, 8, (-1, -2, -3, -4, -5)), 255)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 255)


    def teststructTestStruct1AndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andunsignedshortArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andunsignedshortArg_((1, 2, (1, 2, 3, 4, 5)), 42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct1Arg_andunsignedshortArg_((1, 2, (1, 2, 3, 4, 5)), 1<<14)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1<<14)
        r = o.structTestStruct1Arg_andunsignedshortArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andunsignedshortArg_((9, 8, (-1, -2, -3, -4, -5)), 42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct1Arg_andunsignedshortArg_((9, 8, (-1, -2, -3, -4, -5)), 1<<14)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1<<14)


    def teststructTestStruct1AndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andunsignedintArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andunsignedintArg_((1, 2, (1, 2, 3, 4, 5)), 42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct1Arg_andunsignedintArg_((1, 2, (1, 2, 3, 4, 5)), 1 << 30)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct1Arg_andunsignedintArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andunsignedintArg_((9, 8, (-1, -2, -3, -4, -5)), 42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct1Arg_andunsignedintArg_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct1AndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andunsignedlongArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andunsignedlongArg_((1, 2, (1, 2, 3, 4, 5)), 42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct1Arg_andunsignedlongArg_((1, 2, (1, 2, 3, 4, 5)), 1 << 30)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct1Arg_andunsignedlongArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andunsignedlongArg_((9, 8, (-1, -2, -3, -4, -5)), 42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct1Arg_andunsignedlongArg_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct1AndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andunsignedlonglongArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andunsignedlonglongArg_((1, 2, (1, 2, 3, 4, 5)), 42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct1Arg_andunsignedlonglongArg_((1, 2, (1, 2, 3, 4, 5)), 1 << 62)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 62)
        r = o.structTestStruct1Arg_andunsignedlonglongArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct1Arg_andunsignedlonglongArg_((9, 8, (-1, -2, -3, -4, -5)), 42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct1Arg_andunsignedlonglongArg_((9, 8, (-1, -2, -3, -4, -5)), 1 << 62)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 62)


    def teststructTestStruct1AndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andfloatArg_((1, 2, (1, 2, 3, 4, 5)), 0.128)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct1Arg_andfloatArg_((1, 2, (1, 2, 3, 4, 5)), 1.0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct1Arg_andfloatArg_((1, 2, (1, 2, 3, 4, 5)), 42.0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct1Arg_andfloatArg_((1, 2, (1, 2, 3, 4, 5)), 1e10)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.structTestStruct1Arg_andfloatArg_((9, 8, (-1, -2, -3, -4, -5)), 0.128)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct1Arg_andfloatArg_((9, 8, (-1, -2, -3, -4, -5)), 1.0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct1Arg_andfloatArg_((9, 8, (-1, -2, -3, -4, -5)), 42.0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct1Arg_andfloatArg_((9, 8, (-1, -2, -3, -4, -5)), 1e10)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1e10)


    def teststructTestStruct1AnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_anddoubleArg_((1, 2, (1, 2, 3, 4, 5)), 0.128)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct1Arg_anddoubleArg_((1, 2, (1, 2, 3, 4, 5)), 1.0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct1Arg_anddoubleArg_((1, 2, (1, 2, 3, 4, 5)), 42.0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct1Arg_anddoubleArg_((1, 2, (1, 2, 3, 4, 5)), 1e10)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.structTestStruct1Arg_anddoubleArg_((9, 8, (-1, -2, -3, -4, -5)), 0.128)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct1Arg_anddoubleArg_((9, 8, (-1, -2, -3, -4, -5)), 1.0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct1Arg_anddoubleArg_((9, 8, (-1, -2, -3, -4, -5)), 42.0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct1Arg_anddoubleArg_((9, 8, (-1, -2, -3, -4, -5)), 1e10)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1e10)


    def teststructTestStruct1AndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andidArg_((1, 2, (1, 2, 3, 4, 5)), NSPriorDayDesignations)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.structTestStruct1Arg_andidArg_((9, 8, (-1, -2, -3, -4, -5)), NSPriorDayDesignations)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def teststructTestStruct1AndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andcharPtrArg_((1, 2, (1, 2, 3, 4, 5)), b"hello")
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], b"hello")
        r = o.structTestStruct1Arg_andcharPtrArg_((1, 2, (1, 2, 3, 4, 5)), b"world")
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], b"world")
        r = o.structTestStruct1Arg_andcharPtrArg_((1, 2, (1, 2, 3, 4, 5)), b"foobar")
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], b"foobar")
        r = o.structTestStruct1Arg_andcharPtrArg_((9, 8, (-1, -2, -3, -4, -5)), b"hello")
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], b"hello")
        r = o.structTestStruct1Arg_andcharPtrArg_((9, 8, (-1, -2, -3, -4, -5)), b"world")
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], b"world")
        r = o.structTestStruct1Arg_andcharPtrArg_((9, 8, (-1, -2, -3, -4, -5)), b"foobar")
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], b"foobar")


    def teststructTestStruct1AndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andNSPointArg_((1, 2, (1, 2, 3, 4, 5)), (1, 2))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct1Arg_andNSPointArg_((1, 2, (1, 2, 3, 4, 5)), (3, 4))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (3, 4))
        r = o.structTestStruct1Arg_andNSPointArg_((9, 8, (-1, -2, -3, -4, -5)), (1, 2))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct1Arg_andNSPointArg_((9, 8, (-1, -2, -3, -4, -5)), (3, 4))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (3, 4))


    def teststructTestStruct1AndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andNSRectArg_((1, 2, (1, 2, 3, 4, 5)), ((1, 2), (3, 4)))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.structTestStruct1Arg_andNSRectArg_((1, 2, (1, 2, 3, 4, 5)), ((7, 8), (9, 10)))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.structTestStruct1Arg_andNSRectArg_((9, 8, (-1, -2, -3, -4, -5)), ((1, 2), (3, 4)))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.structTestStruct1Arg_andNSRectArg_((9, 8, (-1, -2, -3, -4, -5)), ((7, 8), (9, 10)))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def teststructTestStruct1AndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andstructTestStruct1Arg_((1, 2, (1, 2, 3, 4, 5)), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct1Arg_andstructTestStruct1Arg_((1, 2, (1, 2, 3, 4, 5)), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.structTestStruct1Arg_andstructTestStruct1Arg_((9, 8, (-1, -2, -3, -4, -5)), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct1Arg_andstructTestStruct1Arg_((9, 8, (-1, -2, -3, -4, -5)), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct1AndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andstructTestStruct2Arg_((1, 2, (1, 2, 3, 4, 5)), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct1Arg_andstructTestStruct2Arg_((1, 2, (1, 2, 3, 4, 5)), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.structTestStruct1Arg_andstructTestStruct2Arg_((9, 8, (-1, -2, -3, -4, -5)), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct1Arg_andstructTestStruct2Arg_((9, 8, (-1, -2, -3, -4, -5)), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct1AndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andstructTestStruct3Arg_((1, 2, (1, 2, 3, 4, 5)), (1, 2))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct1Arg_andstructTestStruct3Arg_((1, 2, (1, 2, 3, 4, 5)), (2, 4))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4))
        r = o.structTestStruct1Arg_andstructTestStruct3Arg_((9, 8, (-1, -2, -3, -4, -5)), (1, 2))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct1Arg_andstructTestStruct3Arg_((9, 8, (-1, -2, -3, -4, -5)), (2, 4))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4))


    def teststructTestStruct1AndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andstructTestStruct4Arg_((1, 2, (1, 2, 3, 4, 5)), (1, 1<<60))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.structTestStruct1Arg_andstructTestStruct4Arg_((1, 2, (1, 2, 3, 4, 5)), (2, 4))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4))
        r = o.structTestStruct1Arg_andstructTestStruct4Arg_((9, 8, (-1, -2, -3, -4, -5)), (1, 1<<60))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.structTestStruct1Arg_andstructTestStruct4Arg_((9, 8, (-1, -2, -3, -4, -5)), (2, 4))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4))


    def teststructTestStruct1AndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1Arg_andstructTestStruct5Arg_((1, 2, (1, 2, 3, 4, 5)), (1, 2.5))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2.5))
        r = o.structTestStruct1Arg_andstructTestStruct5Arg_((1, 2, (1, 2, 3, 4, 5)), (2, 4.5))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4.5))
        r = o.structTestStruct1Arg_andstructTestStruct5Arg_((9, 8, (-1, -2, -3, -4, -5)), (1, 2.5))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2.5))
        r = o.structTestStruct1Arg_andstructTestStruct5Arg_((9, 8, (-1, -2, -3, -4, -5)), (2, 4.5))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4.5))


    def teststructTestStruct2AndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andboolArg_((1, 2, (1, 2, 3, 4, 5)), YES)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct2Arg_andboolArg_((1, 2, (1, 2, 3, 4, 5)), NO)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NO)
        r = o.structTestStruct2Arg_andboolArg_((9, 8, (-1, -2, -3, -4, -5)), YES)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct2Arg_andboolArg_((9, 8, (-1, -2, -3, -4, -5)), NO)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NO)


    def teststructTestStruct2AndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andBOOLArg_((1, 2, (1, 2, 3, 4, 5)), YES)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct2Arg_andBOOLArg_((1, 2, (1, 2, 3, 4, 5)), NO)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NO)
        r = o.structTestStruct2Arg_andBOOLArg_((9, 8, (-1, -2, -3, -4, -5)), YES)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct2Arg_andBOOLArg_((9, 8, (-1, -2, -3, -4, -5)), NO)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NO)


    def teststructTestStruct2AndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andcharArg_((1, 2, (1, 2, 3, 4, 5)), -128)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -128)
        r = o.structTestStruct2Arg_andcharArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andcharArg_((1, 2, (1, 2, 3, 4, 5)), 127)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 127)
        r = o.structTestStruct2Arg_andcharArg_((9, 8, (-1, -2, -3, -4, -5)), -128)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -128)
        r = o.structTestStruct2Arg_andcharArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andcharArg_((9, 8, (-1, -2, -3, -4, -5)), 127)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 127)


    def teststructTestStruct2AndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andsignedshortArg_((1, 2, (1, 2, 3, 4, 5)), -(1<<14))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<14))
        r = o.structTestStruct2Arg_andsignedshortArg_((1, 2, (1, 2, 3, 4, 5)), -42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct2Arg_andsignedshortArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andsignedshortArg_((1, 2, (1, 2, 3, 4, 5)), 42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct2Arg_andsignedshortArg_((1, 2, (1, 2, 3, 4, 5)), 1 << 14)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 14)
        r = o.structTestStruct2Arg_andsignedshortArg_((9, 8, (-1, -2, -3, -4, -5)), -(1<<14))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<14))
        r = o.structTestStruct2Arg_andsignedshortArg_((9, 8, (-1, -2, -3, -4, -5)), -42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct2Arg_andsignedshortArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andsignedshortArg_((9, 8, (-1, -2, -3, -4, -5)), 42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct2Arg_andsignedshortArg_((9, 8, (-1, -2, -3, -4, -5)), 1 << 14)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 14)


    def teststructTestStruct2AndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andsignedintArg_((1, 2, (1, 2, 3, 4, 5)), -(1<<30))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct2Arg_andsignedintArg_((1, 2, (1, 2, 3, 4, 5)), -42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct2Arg_andsignedintArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andsignedintArg_((1, 2, (1, 2, 3, 4, 5)), 42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct2Arg_andsignedintArg_((1, 2, (1, 2, 3, 4, 5)), 1 << 30)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct2Arg_andsignedintArg_((9, 8, (-1, -2, -3, -4, -5)), -(1<<30))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct2Arg_andsignedintArg_((9, 8, (-1, -2, -3, -4, -5)), -42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct2Arg_andsignedintArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andsignedintArg_((9, 8, (-1, -2, -3, -4, -5)), 42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct2Arg_andsignedintArg_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct2AndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andsignedlongArg_((1, 2, (1, 2, 3, 4, 5)), -(1<<30))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct2Arg_andsignedlongArg_((1, 2, (1, 2, 3, 4, 5)), -42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct2Arg_andsignedlongArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andsignedlongArg_((1, 2, (1, 2, 3, 4, 5)), 42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct2Arg_andsignedlongArg_((1, 2, (1, 2, 3, 4, 5)), 1 << 30)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct2Arg_andsignedlongArg_((9, 8, (-1, -2, -3, -4, -5)), -(1<<30))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct2Arg_andsignedlongArg_((9, 8, (-1, -2, -3, -4, -5)), -42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct2Arg_andsignedlongArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andsignedlongArg_((9, 8, (-1, -2, -3, -4, -5)), 42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct2Arg_andsignedlongArg_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct2AndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andsignedlonglongArg_((1, 2, (1, 2, 3, 4, 5)), -(1 << 60))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1 << 60))
        r = o.structTestStruct2Arg_andsignedlonglongArg_((1, 2, (1, 2, 3, 4, 5)), -42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct2Arg_andsignedlonglongArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andsignedlonglongArg_((1, 2, (1, 2, 3, 4, 5)), 42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct2Arg_andsignedlonglongArg_((1, 2, (1, 2, 3, 4, 5)), 1 << 60)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 60)
        r = o.structTestStruct2Arg_andsignedlonglongArg_((9, 8, (-1, -2, -3, -4, -5)), -(1 << 60))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1 << 60))
        r = o.structTestStruct2Arg_andsignedlonglongArg_((9, 8, (-1, -2, -3, -4, -5)), -42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct2Arg_andsignedlonglongArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andsignedlonglongArg_((9, 8, (-1, -2, -3, -4, -5)), 42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct2Arg_andsignedlonglongArg_((9, 8, (-1, -2, -3, -4, -5)), 1 << 60)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 60)


    def teststructTestStruct2AndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andunsignedcharArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andunsignedcharArg_((1, 2, (1, 2, 3, 4, 5)), 128)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 128)
        r = o.structTestStruct2Arg_andunsignedcharArg_((1, 2, (1, 2, 3, 4, 5)), 255)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 255)
        r = o.structTestStruct2Arg_andunsignedcharArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andunsignedcharArg_((9, 8, (-1, -2, -3, -4, -5)), 128)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 128)
        r = o.structTestStruct2Arg_andunsignedcharArg_((9, 8, (-1, -2, -3, -4, -5)), 255)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 255)


    def teststructTestStruct2AndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andunsignedshortArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andunsignedshortArg_((1, 2, (1, 2, 3, 4, 5)), 42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct2Arg_andunsignedshortArg_((1, 2, (1, 2, 3, 4, 5)), 1<<14)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1<<14)
        r = o.structTestStruct2Arg_andunsignedshortArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andunsignedshortArg_((9, 8, (-1, -2, -3, -4, -5)), 42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct2Arg_andunsignedshortArg_((9, 8, (-1, -2, -3, -4, -5)), 1<<14)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1<<14)


    def teststructTestStruct2AndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andunsignedintArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andunsignedintArg_((1, 2, (1, 2, 3, 4, 5)), 42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct2Arg_andunsignedintArg_((1, 2, (1, 2, 3, 4, 5)), 1 << 30)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct2Arg_andunsignedintArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andunsignedintArg_((9, 8, (-1, -2, -3, -4, -5)), 42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct2Arg_andunsignedintArg_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct2AndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andunsignedlongArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andunsignedlongArg_((1, 2, (1, 2, 3, 4, 5)), 42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct2Arg_andunsignedlongArg_((1, 2, (1, 2, 3, 4, 5)), 1 << 30)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct2Arg_andunsignedlongArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andunsignedlongArg_((9, 8, (-1, -2, -3, -4, -5)), 42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct2Arg_andunsignedlongArg_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct2AndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andunsignedlonglongArg_((1, 2, (1, 2, 3, 4, 5)), 0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andunsignedlonglongArg_((1, 2, (1, 2, 3, 4, 5)), 42)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct2Arg_andunsignedlonglongArg_((1, 2, (1, 2, 3, 4, 5)), 1 << 62)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 62)
        r = o.structTestStruct2Arg_andunsignedlonglongArg_((9, 8, (-1, -2, -3, -4, -5)), 0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct2Arg_andunsignedlonglongArg_((9, 8, (-1, -2, -3, -4, -5)), 42)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct2Arg_andunsignedlonglongArg_((9, 8, (-1, -2, -3, -4, -5)), 1 << 62)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 62)


    def teststructTestStruct2AndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andfloatArg_((1, 2, (1, 2, 3, 4, 5)), 0.128)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct2Arg_andfloatArg_((1, 2, (1, 2, 3, 4, 5)), 1.0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct2Arg_andfloatArg_((1, 2, (1, 2, 3, 4, 5)), 42.0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct2Arg_andfloatArg_((1, 2, (1, 2, 3, 4, 5)), 1e10)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.structTestStruct2Arg_andfloatArg_((9, 8, (-1, -2, -3, -4, -5)), 0.128)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct2Arg_andfloatArg_((9, 8, (-1, -2, -3, -4, -5)), 1.0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct2Arg_andfloatArg_((9, 8, (-1, -2, -3, -4, -5)), 42.0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct2Arg_andfloatArg_((9, 8, (-1, -2, -3, -4, -5)), 1e10)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1e10)


    def teststructTestStruct2AnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_anddoubleArg_((1, 2, (1, 2, 3, 4, 5)), 0.128)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct2Arg_anddoubleArg_((1, 2, (1, 2, 3, 4, 5)), 1.0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct2Arg_anddoubleArg_((1, 2, (1, 2, 3, 4, 5)), 42.0)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct2Arg_anddoubleArg_((1, 2, (1, 2, 3, 4, 5)), 1e10)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.structTestStruct2Arg_anddoubleArg_((9, 8, (-1, -2, -3, -4, -5)), 0.128)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct2Arg_anddoubleArg_((9, 8, (-1, -2, -3, -4, -5)), 1.0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct2Arg_anddoubleArg_((9, 8, (-1, -2, -3, -4, -5)), 42.0)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct2Arg_anddoubleArg_((9, 8, (-1, -2, -3, -4, -5)), 1e10)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1e10)


    def teststructTestStruct2AndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andidArg_((1, 2, (1, 2, 3, 4, 5)), NSPriorDayDesignations)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.structTestStruct2Arg_andidArg_((9, 8, (-1, -2, -3, -4, -5)), NSPriorDayDesignations)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def teststructTestStruct2AndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andcharPtrArg_((1, 2, (1, 2, 3, 4, 5)), b"hello")
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], b"hello")
        r = o.structTestStruct2Arg_andcharPtrArg_((1, 2, (1, 2, 3, 4, 5)), b"world")
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], b"world")
        r = o.structTestStruct2Arg_andcharPtrArg_((1, 2, (1, 2, 3, 4, 5)), b"foobar")
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], b"foobar")
        r = o.structTestStruct2Arg_andcharPtrArg_((9, 8, (-1, -2, -3, -4, -5)), b"hello")
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], b"hello")
        r = o.structTestStruct2Arg_andcharPtrArg_((9, 8, (-1, -2, -3, -4, -5)), b"world")
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], b"world")
        r = o.structTestStruct2Arg_andcharPtrArg_((9, 8, (-1, -2, -3, -4, -5)), b"foobar")
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], b"foobar")


    def teststructTestStruct2AndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andNSPointArg_((1, 2, (1, 2, 3, 4, 5)), (1, 2))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct2Arg_andNSPointArg_((1, 2, (1, 2, 3, 4, 5)), (3, 4))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (3, 4))
        r = o.structTestStruct2Arg_andNSPointArg_((9, 8, (-1, -2, -3, -4, -5)), (1, 2))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct2Arg_andNSPointArg_((9, 8, (-1, -2, -3, -4, -5)), (3, 4))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (3, 4))


    def teststructTestStruct2AndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andNSRectArg_((1, 2, (1, 2, 3, 4, 5)), ((1, 2), (3, 4)))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.structTestStruct2Arg_andNSRectArg_((1, 2, (1, 2, 3, 4, 5)), ((7, 8), (9, 10)))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.structTestStruct2Arg_andNSRectArg_((9, 8, (-1, -2, -3, -4, -5)), ((1, 2), (3, 4)))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.structTestStruct2Arg_andNSRectArg_((9, 8, (-1, -2, -3, -4, -5)), ((7, 8), (9, 10)))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def teststructTestStruct2AndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andstructTestStruct1Arg_((1, 2, (1, 2, 3, 4, 5)), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct2Arg_andstructTestStruct1Arg_((1, 2, (1, 2, 3, 4, 5)), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.structTestStruct2Arg_andstructTestStruct1Arg_((9, 8, (-1, -2, -3, -4, -5)), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct2Arg_andstructTestStruct1Arg_((9, 8, (-1, -2, -3, -4, -5)), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct2AndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andstructTestStruct2Arg_((1, 2, (1, 2, 3, 4, 5)), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct2Arg_andstructTestStruct2Arg_((1, 2, (1, 2, 3, 4, 5)), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.structTestStruct2Arg_andstructTestStruct2Arg_((9, 8, (-1, -2, -3, -4, -5)), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct2Arg_andstructTestStruct2Arg_((9, 8, (-1, -2, -3, -4, -5)), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct2AndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andstructTestStruct3Arg_((1, 2, (1, 2, 3, 4, 5)), (1, 2))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct2Arg_andstructTestStruct3Arg_((1, 2, (1, 2, 3, 4, 5)), (2, 4))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4))
        r = o.structTestStruct2Arg_andstructTestStruct3Arg_((9, 8, (-1, -2, -3, -4, -5)), (1, 2))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct2Arg_andstructTestStruct3Arg_((9, 8, (-1, -2, -3, -4, -5)), (2, 4))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4))


    def teststructTestStruct2AndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andstructTestStruct4Arg_((1, 2, (1, 2, 3, 4, 5)), (1, 1<<60))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.structTestStruct2Arg_andstructTestStruct4Arg_((1, 2, (1, 2, 3, 4, 5)), (2, 4))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4))
        r = o.structTestStruct2Arg_andstructTestStruct4Arg_((9, 8, (-1, -2, -3, -4, -5)), (1, 1<<60))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.structTestStruct2Arg_andstructTestStruct4Arg_((9, 8, (-1, -2, -3, -4, -5)), (2, 4))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4))


    def teststructTestStruct2AndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2Arg_andstructTestStruct5Arg_((1, 2, (1, 2, 3, 4, 5)), (1, 2.5))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2.5))
        r = o.structTestStruct2Arg_andstructTestStruct5Arg_((1, 2, (1, 2, 3, 4, 5)), (2, 4.5))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4.5))
        r = o.structTestStruct2Arg_andstructTestStruct5Arg_((9, 8, (-1, -2, -3, -4, -5)), (1, 2.5))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2.5))
        r = o.structTestStruct2Arg_andstructTestStruct5Arg_((9, 8, (-1, -2, -3, -4, -5)), (2, 4.5))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4.5))


    def teststructTestStruct3AndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andboolArg_((1, 2), YES)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct3Arg_andboolArg_((1, 2), NO)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NO)
        r = o.structTestStruct3Arg_andboolArg_((2, 4), YES)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct3Arg_andboolArg_((2, 4), NO)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NO)


    def teststructTestStruct3AndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andBOOLArg_((1, 2), YES)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct3Arg_andBOOLArg_((1, 2), NO)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NO)
        r = o.structTestStruct3Arg_andBOOLArg_((2, 4), YES)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct3Arg_andBOOLArg_((2, 4), NO)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NO)


    def teststructTestStruct3AndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andcharArg_((1, 2), -128)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -128)
        r = o.structTestStruct3Arg_andcharArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andcharArg_((1, 2), 127)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 127)
        r = o.structTestStruct3Arg_andcharArg_((2, 4), -128)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -128)
        r = o.structTestStruct3Arg_andcharArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andcharArg_((2, 4), 127)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 127)


    def teststructTestStruct3AndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andsignedshortArg_((1, 2), -(1<<14))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<14))
        r = o.structTestStruct3Arg_andsignedshortArg_((1, 2), -42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct3Arg_andsignedshortArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andsignedshortArg_((1, 2), 42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct3Arg_andsignedshortArg_((1, 2), 1 << 14)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 14)
        r = o.structTestStruct3Arg_andsignedshortArg_((2, 4), -(1<<14))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<14))
        r = o.structTestStruct3Arg_andsignedshortArg_((2, 4), -42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct3Arg_andsignedshortArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andsignedshortArg_((2, 4), 42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct3Arg_andsignedshortArg_((2, 4), 1 << 14)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 14)


    def teststructTestStruct3AndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andsignedintArg_((1, 2), -(1<<30))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct3Arg_andsignedintArg_((1, 2), -42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct3Arg_andsignedintArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andsignedintArg_((1, 2), 42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct3Arg_andsignedintArg_((1, 2), 1 << 30)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct3Arg_andsignedintArg_((2, 4), -(1<<30))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct3Arg_andsignedintArg_((2, 4), -42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct3Arg_andsignedintArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andsignedintArg_((2, 4), 42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct3Arg_andsignedintArg_((2, 4), 1 << 30)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct3AndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andsignedlongArg_((1, 2), -(1<<30))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct3Arg_andsignedlongArg_((1, 2), -42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct3Arg_andsignedlongArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andsignedlongArg_((1, 2), 42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct3Arg_andsignedlongArg_((1, 2), 1 << 30)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct3Arg_andsignedlongArg_((2, 4), -(1<<30))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct3Arg_andsignedlongArg_((2, 4), -42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct3Arg_andsignedlongArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andsignedlongArg_((2, 4), 42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct3Arg_andsignedlongArg_((2, 4), 1 << 30)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct3AndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andsignedlonglongArg_((1, 2), -(1 << 60))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1 << 60))
        r = o.structTestStruct3Arg_andsignedlonglongArg_((1, 2), -42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct3Arg_andsignedlonglongArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andsignedlonglongArg_((1, 2), 42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct3Arg_andsignedlonglongArg_((1, 2), 1 << 60)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 60)
        r = o.structTestStruct3Arg_andsignedlonglongArg_((2, 4), -(1 << 60))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1 << 60))
        r = o.structTestStruct3Arg_andsignedlonglongArg_((2, 4), -42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct3Arg_andsignedlonglongArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andsignedlonglongArg_((2, 4), 42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct3Arg_andsignedlonglongArg_((2, 4), 1 << 60)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 60)


    def teststructTestStruct3AndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andunsignedcharArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andunsignedcharArg_((1, 2), 128)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 128)
        r = o.structTestStruct3Arg_andunsignedcharArg_((1, 2), 255)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 255)
        r = o.structTestStruct3Arg_andunsignedcharArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andunsignedcharArg_((2, 4), 128)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 128)
        r = o.structTestStruct3Arg_andunsignedcharArg_((2, 4), 255)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 255)


    def teststructTestStruct3AndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andunsignedshortArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andunsignedshortArg_((1, 2), 42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct3Arg_andunsignedshortArg_((1, 2), 1<<14)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1<<14)
        r = o.structTestStruct3Arg_andunsignedshortArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andunsignedshortArg_((2, 4), 42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct3Arg_andunsignedshortArg_((2, 4), 1<<14)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1<<14)


    def teststructTestStruct3AndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andunsignedintArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andunsignedintArg_((1, 2), 42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct3Arg_andunsignedintArg_((1, 2), 1 << 30)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct3Arg_andunsignedintArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andunsignedintArg_((2, 4), 42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct3Arg_andunsignedintArg_((2, 4), 1 << 30)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct3AndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andunsignedlongArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andunsignedlongArg_((1, 2), 42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct3Arg_andunsignedlongArg_((1, 2), 1 << 30)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct3Arg_andunsignedlongArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andunsignedlongArg_((2, 4), 42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct3Arg_andunsignedlongArg_((2, 4), 1 << 30)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct3AndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andunsignedlonglongArg_((1, 2), 0)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andunsignedlonglongArg_((1, 2), 42)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct3Arg_andunsignedlonglongArg_((1, 2), 1 << 62)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 62)
        r = o.structTestStruct3Arg_andunsignedlonglongArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct3Arg_andunsignedlonglongArg_((2, 4), 42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct3Arg_andunsignedlonglongArg_((2, 4), 1 << 62)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 62)


    def teststructTestStruct3AndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andfloatArg_((1, 2), 0.128)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct3Arg_andfloatArg_((1, 2), 1.0)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct3Arg_andfloatArg_((1, 2), 42.0)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct3Arg_andfloatArg_((1, 2), 1e10)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.structTestStruct3Arg_andfloatArg_((2, 4), 0.128)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct3Arg_andfloatArg_((2, 4), 1.0)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct3Arg_andfloatArg_((2, 4), 42.0)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct3Arg_andfloatArg_((2, 4), 1e10)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def teststructTestStruct3AnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_anddoubleArg_((1, 2), 0.128)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct3Arg_anddoubleArg_((1, 2), 1.0)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct3Arg_anddoubleArg_((1, 2), 42.0)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct3Arg_anddoubleArg_((1, 2), 1e10)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.structTestStruct3Arg_anddoubleArg_((2, 4), 0.128)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct3Arg_anddoubleArg_((2, 4), 1.0)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct3Arg_anddoubleArg_((2, 4), 42.0)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct3Arg_anddoubleArg_((2, 4), 1e10)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def teststructTestStruct3AndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andidArg_((1, 2), NSPriorDayDesignations)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.structTestStruct3Arg_andidArg_((2, 4), NSPriorDayDesignations)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def teststructTestStruct3AndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andcharPtrArg_((1, 2), b"hello")
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], b"hello")
        r = o.structTestStruct3Arg_andcharPtrArg_((1, 2), b"world")
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], b"world")
        r = o.structTestStruct3Arg_andcharPtrArg_((1, 2), b"foobar")
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], b"foobar")
        r = o.structTestStruct3Arg_andcharPtrArg_((2, 4), b"hello")
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], b"hello")
        r = o.structTestStruct3Arg_andcharPtrArg_((2, 4), b"world")
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], b"world")
        r = o.structTestStruct3Arg_andcharPtrArg_((2, 4), b"foobar")
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], b"foobar")


    def teststructTestStruct3AndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andNSPointArg_((1, 2), (1, 2))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct3Arg_andNSPointArg_((1, 2), (3, 4))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (3, 4))
        r = o.structTestStruct3Arg_andNSPointArg_((2, 4), (1, 2))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct3Arg_andNSPointArg_((2, 4), (3, 4))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (3, 4))


    def teststructTestStruct3AndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andNSRectArg_((1, 2), ((1, 2), (3, 4)))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.structTestStruct3Arg_andNSRectArg_((1, 2), ((7, 8), (9, 10)))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.structTestStruct3Arg_andNSRectArg_((2, 4), ((1, 2), (3, 4)))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.structTestStruct3Arg_andNSRectArg_((2, 4), ((7, 8), (9, 10)))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def teststructTestStruct3AndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andstructTestStruct1Arg_((1, 2), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct3Arg_andstructTestStruct1Arg_((1, 2), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.structTestStruct3Arg_andstructTestStruct1Arg_((2, 4), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct3Arg_andstructTestStruct1Arg_((2, 4), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct3AndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andstructTestStruct2Arg_((1, 2), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct3Arg_andstructTestStruct2Arg_((1, 2), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.structTestStruct3Arg_andstructTestStruct2Arg_((2, 4), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct3Arg_andstructTestStruct2Arg_((2, 4), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct3AndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andstructTestStruct3Arg_((1, 2), (1, 2))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct3Arg_andstructTestStruct3Arg_((1, 2), (2, 4))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4))
        r = o.structTestStruct3Arg_andstructTestStruct3Arg_((2, 4), (1, 2))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct3Arg_andstructTestStruct3Arg_((2, 4), (2, 4))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4))


    def teststructTestStruct3AndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andstructTestStruct4Arg_((1, 2), (1, 1<<60))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.structTestStruct3Arg_andstructTestStruct4Arg_((1, 2), (2, 4))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4))
        r = o.structTestStruct3Arg_andstructTestStruct4Arg_((2, 4), (1, 1<<60))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.structTestStruct3Arg_andstructTestStruct4Arg_((2, 4), (2, 4))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4))


    def teststructTestStruct3AndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3Arg_andstructTestStruct5Arg_((1, 2), (1, 2.5))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2.5))
        r = o.structTestStruct3Arg_andstructTestStruct5Arg_((1, 2), (2, 4.5))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4.5))
        r = o.structTestStruct3Arg_andstructTestStruct5Arg_((2, 4), (1, 2.5))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2.5))
        r = o.structTestStruct3Arg_andstructTestStruct5Arg_((2, 4), (2, 4.5))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4.5))


    def teststructTestStruct4AndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andboolArg_((1, 1<<60), YES)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct4Arg_andboolArg_((1, 1<<60), NO)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], NO)
        r = o.structTestStruct4Arg_andboolArg_((2, 4), YES)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct4Arg_andboolArg_((2, 4), NO)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NO)


    def teststructTestStruct4AndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andBOOLArg_((1, 1<<60), YES)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct4Arg_andBOOLArg_((1, 1<<60), NO)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], NO)
        r = o.structTestStruct4Arg_andBOOLArg_((2, 4), YES)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct4Arg_andBOOLArg_((2, 4), NO)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NO)


    def teststructTestStruct4AndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andcharArg_((1, 1<<60), -128)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -128)
        r = o.structTestStruct4Arg_andcharArg_((1, 1<<60), 0)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andcharArg_((1, 1<<60), 127)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 127)
        r = o.structTestStruct4Arg_andcharArg_((2, 4), -128)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -128)
        r = o.structTestStruct4Arg_andcharArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andcharArg_((2, 4), 127)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 127)


    def teststructTestStruct4AndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andsignedshortArg_((1, 1<<60), -(1<<14))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -(1<<14))
        r = o.structTestStruct4Arg_andsignedshortArg_((1, 1<<60), -42)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct4Arg_andsignedshortArg_((1, 1<<60), 0)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andsignedshortArg_((1, 1<<60), 42)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct4Arg_andsignedshortArg_((1, 1<<60), 1 << 14)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 14)
        r = o.structTestStruct4Arg_andsignedshortArg_((2, 4), -(1<<14))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<14))
        r = o.structTestStruct4Arg_andsignedshortArg_((2, 4), -42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct4Arg_andsignedshortArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andsignedshortArg_((2, 4), 42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct4Arg_andsignedshortArg_((2, 4), 1 << 14)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 14)


    def teststructTestStruct4AndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andsignedintArg_((1, 1<<60), -(1<<30))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct4Arg_andsignedintArg_((1, 1<<60), -42)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct4Arg_andsignedintArg_((1, 1<<60), 0)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andsignedintArg_((1, 1<<60), 42)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct4Arg_andsignedintArg_((1, 1<<60), 1 << 30)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct4Arg_andsignedintArg_((2, 4), -(1<<30))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct4Arg_andsignedintArg_((2, 4), -42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct4Arg_andsignedintArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andsignedintArg_((2, 4), 42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct4Arg_andsignedintArg_((2, 4), 1 << 30)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct4AndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andsignedlongArg_((1, 1<<60), -(1<<30))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct4Arg_andsignedlongArg_((1, 1<<60), -42)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct4Arg_andsignedlongArg_((1, 1<<60), 0)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andsignedlongArg_((1, 1<<60), 42)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct4Arg_andsignedlongArg_((1, 1<<60), 1 << 30)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct4Arg_andsignedlongArg_((2, 4), -(1<<30))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct4Arg_andsignedlongArg_((2, 4), -42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct4Arg_andsignedlongArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andsignedlongArg_((2, 4), 42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct4Arg_andsignedlongArg_((2, 4), 1 << 30)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct4AndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andsignedlonglongArg_((1, 1<<60), -(1 << 60))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -(1 << 60))
        r = o.structTestStruct4Arg_andsignedlonglongArg_((1, 1<<60), -42)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct4Arg_andsignedlonglongArg_((1, 1<<60), 0)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andsignedlonglongArg_((1, 1<<60), 42)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct4Arg_andsignedlonglongArg_((1, 1<<60), 1 << 60)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 60)
        r = o.structTestStruct4Arg_andsignedlonglongArg_((2, 4), -(1 << 60))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1 << 60))
        r = o.structTestStruct4Arg_andsignedlonglongArg_((2, 4), -42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct4Arg_andsignedlonglongArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andsignedlonglongArg_((2, 4), 42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct4Arg_andsignedlonglongArg_((2, 4), 1 << 60)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 60)


    def teststructTestStruct4AndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andunsignedcharArg_((1, 1<<60), 0)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andunsignedcharArg_((1, 1<<60), 128)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 128)
        r = o.structTestStruct4Arg_andunsignedcharArg_((1, 1<<60), 255)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 255)
        r = o.structTestStruct4Arg_andunsignedcharArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andunsignedcharArg_((2, 4), 128)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 128)
        r = o.structTestStruct4Arg_andunsignedcharArg_((2, 4), 255)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 255)


    def teststructTestStruct4AndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andunsignedshortArg_((1, 1<<60), 0)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andunsignedshortArg_((1, 1<<60), 42)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct4Arg_andunsignedshortArg_((1, 1<<60), 1<<14)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1<<14)
        r = o.structTestStruct4Arg_andunsignedshortArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andunsignedshortArg_((2, 4), 42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct4Arg_andunsignedshortArg_((2, 4), 1<<14)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1<<14)


    def teststructTestStruct4AndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andunsignedintArg_((1, 1<<60), 0)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andunsignedintArg_((1, 1<<60), 42)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct4Arg_andunsignedintArg_((1, 1<<60), 1 << 30)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct4Arg_andunsignedintArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andunsignedintArg_((2, 4), 42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct4Arg_andunsignedintArg_((2, 4), 1 << 30)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct4AndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andunsignedlongArg_((1, 1<<60), 0)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andunsignedlongArg_((1, 1<<60), 42)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct4Arg_andunsignedlongArg_((1, 1<<60), 1 << 30)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct4Arg_andunsignedlongArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andunsignedlongArg_((2, 4), 42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct4Arg_andunsignedlongArg_((2, 4), 1 << 30)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct4AndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andunsignedlonglongArg_((1, 1<<60), 0)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andunsignedlonglongArg_((1, 1<<60), 42)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct4Arg_andunsignedlonglongArg_((1, 1<<60), 1 << 62)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 62)
        r = o.structTestStruct4Arg_andunsignedlonglongArg_((2, 4), 0)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct4Arg_andunsignedlonglongArg_((2, 4), 42)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct4Arg_andunsignedlonglongArg_((2, 4), 1 << 62)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 62)


    def teststructTestStruct4AndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andfloatArg_((1, 1<<60), 0.128)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct4Arg_andfloatArg_((1, 1<<60), 1.0)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct4Arg_andfloatArg_((1, 1<<60), 42.0)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct4Arg_andfloatArg_((1, 1<<60), 1e10)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.structTestStruct4Arg_andfloatArg_((2, 4), 0.128)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct4Arg_andfloatArg_((2, 4), 1.0)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct4Arg_andfloatArg_((2, 4), 42.0)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct4Arg_andfloatArg_((2, 4), 1e10)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def teststructTestStruct4AnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_anddoubleArg_((1, 1<<60), 0.128)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct4Arg_anddoubleArg_((1, 1<<60), 1.0)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct4Arg_anddoubleArg_((1, 1<<60), 42.0)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct4Arg_anddoubleArg_((1, 1<<60), 1e10)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.structTestStruct4Arg_anddoubleArg_((2, 4), 0.128)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct4Arg_anddoubleArg_((2, 4), 1.0)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct4Arg_anddoubleArg_((2, 4), 42.0)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct4Arg_anddoubleArg_((2, 4), 1e10)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def teststructTestStruct4AndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andidArg_((1, 1<<60), NSPriorDayDesignations)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.structTestStruct4Arg_andidArg_((2, 4), NSPriorDayDesignations)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def teststructTestStruct4AndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andcharPtrArg_((1, 1<<60), b"hello")
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], b"hello")
        r = o.structTestStruct4Arg_andcharPtrArg_((1, 1<<60), b"world")
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], b"world")
        r = o.structTestStruct4Arg_andcharPtrArg_((1, 1<<60), b"foobar")
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], b"foobar")
        r = o.structTestStruct4Arg_andcharPtrArg_((2, 4), b"hello")
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], b"hello")
        r = o.structTestStruct4Arg_andcharPtrArg_((2, 4), b"world")
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], b"world")
        r = o.structTestStruct4Arg_andcharPtrArg_((2, 4), b"foobar")
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], b"foobar")


    def teststructTestStruct4AndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andNSPointArg_((1, 1<<60), (1, 2))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct4Arg_andNSPointArg_((1, 1<<60), (3, 4))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (3, 4))
        r = o.structTestStruct4Arg_andNSPointArg_((2, 4), (1, 2))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct4Arg_andNSPointArg_((2, 4), (3, 4))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (3, 4))


    def teststructTestStruct4AndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andNSRectArg_((1, 1<<60), ((1, 2), (3, 4)))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.structTestStruct4Arg_andNSRectArg_((1, 1<<60), ((7, 8), (9, 10)))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.structTestStruct4Arg_andNSRectArg_((2, 4), ((1, 2), (3, 4)))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.structTestStruct4Arg_andNSRectArg_((2, 4), ((7, 8), (9, 10)))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def teststructTestStruct4AndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andstructTestStruct1Arg_((1, 1<<60), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct4Arg_andstructTestStruct1Arg_((1, 1<<60), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.structTestStruct4Arg_andstructTestStruct1Arg_((2, 4), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct4Arg_andstructTestStruct1Arg_((2, 4), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct4AndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andstructTestStruct2Arg_((1, 1<<60), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct4Arg_andstructTestStruct2Arg_((1, 1<<60), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.structTestStruct4Arg_andstructTestStruct2Arg_((2, 4), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct4Arg_andstructTestStruct2Arg_((2, 4), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct4AndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andstructTestStruct3Arg_((1, 1<<60), (1, 2))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct4Arg_andstructTestStruct3Arg_((1, 1<<60), (2, 4))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (2, 4))
        r = o.structTestStruct4Arg_andstructTestStruct3Arg_((2, 4), (1, 2))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct4Arg_andstructTestStruct3Arg_((2, 4), (2, 4))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4))


    def teststructTestStruct4AndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andstructTestStruct4Arg_((1, 1<<60), (1, 1<<60))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.structTestStruct4Arg_andstructTestStruct4Arg_((1, 1<<60), (2, 4))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (2, 4))
        r = o.structTestStruct4Arg_andstructTestStruct4Arg_((2, 4), (1, 1<<60))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.structTestStruct4Arg_andstructTestStruct4Arg_((2, 4), (2, 4))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4))


    def teststructTestStruct4AndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4Arg_andstructTestStruct5Arg_((1, 1<<60), (1, 2.5))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 2.5))
        r = o.structTestStruct4Arg_andstructTestStruct5Arg_((1, 1<<60), (2, 4.5))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (2, 4.5))
        r = o.structTestStruct4Arg_andstructTestStruct5Arg_((2, 4), (1, 2.5))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2.5))
        r = o.structTestStruct4Arg_andstructTestStruct5Arg_((2, 4), (2, 4.5))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4.5))


    def teststructTestStruct5AndboolArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andboolArg_((1, 2.5), YES)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct5Arg_andboolArg_((1, 2.5), NO)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], NO)
        r = o.structTestStruct5Arg_andboolArg_((2, 4.5), YES)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct5Arg_andboolArg_((2, 4.5), NO)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], NO)


    def teststructTestStruct5AndBOOLArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andBOOLArg_((1, 2.5), YES)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct5Arg_andBOOLArg_((1, 2.5), NO)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], NO)
        r = o.structTestStruct5Arg_andBOOLArg_((2, 4.5), YES)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], YES)
        r = o.structTestStruct5Arg_andBOOLArg_((2, 4.5), NO)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], NO)


    def teststructTestStruct5AndcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andcharArg_((1, 2.5), -128)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -128)
        r = o.structTestStruct5Arg_andcharArg_((1, 2.5), 0)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andcharArg_((1, 2.5), 127)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 127)
        r = o.structTestStruct5Arg_andcharArg_((2, 4.5), -128)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -128)
        r = o.structTestStruct5Arg_andcharArg_((2, 4.5), 0)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andcharArg_((2, 4.5), 127)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 127)


    def teststructTestStruct5AndsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andsignedshortArg_((1, 2.5), -(1<<14))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -(1<<14))
        r = o.structTestStruct5Arg_andsignedshortArg_((1, 2.5), -42)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct5Arg_andsignedshortArg_((1, 2.5), 0)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andsignedshortArg_((1, 2.5), 42)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct5Arg_andsignedshortArg_((1, 2.5), 1 << 14)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 14)
        r = o.structTestStruct5Arg_andsignedshortArg_((2, 4.5), -(1<<14))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -(1<<14))
        r = o.structTestStruct5Arg_andsignedshortArg_((2, 4.5), -42)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct5Arg_andsignedshortArg_((2, 4.5), 0)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andsignedshortArg_((2, 4.5), 42)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct5Arg_andsignedshortArg_((2, 4.5), 1 << 14)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 14)


    def teststructTestStruct5AndsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andsignedintArg_((1, 2.5), -(1<<30))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct5Arg_andsignedintArg_((1, 2.5), -42)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct5Arg_andsignedintArg_((1, 2.5), 0)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andsignedintArg_((1, 2.5), 42)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct5Arg_andsignedintArg_((1, 2.5), 1 << 30)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct5Arg_andsignedintArg_((2, 4.5), -(1<<30))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct5Arg_andsignedintArg_((2, 4.5), -42)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct5Arg_andsignedintArg_((2, 4.5), 0)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andsignedintArg_((2, 4.5), 42)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct5Arg_andsignedintArg_((2, 4.5), 1 << 30)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct5AndsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andsignedlongArg_((1, 2.5), -(1<<30))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct5Arg_andsignedlongArg_((1, 2.5), -42)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct5Arg_andsignedlongArg_((1, 2.5), 0)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andsignedlongArg_((1, 2.5), 42)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct5Arg_andsignedlongArg_((1, 2.5), 1 << 30)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct5Arg_andsignedlongArg_((2, 4.5), -(1<<30))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -(1<<30))
        r = o.structTestStruct5Arg_andsignedlongArg_((2, 4.5), -42)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct5Arg_andsignedlongArg_((2, 4.5), 0)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andsignedlongArg_((2, 4.5), 42)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct5Arg_andsignedlongArg_((2, 4.5), 1 << 30)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct5AndsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andsignedlonglongArg_((1, 2.5), -(1 << 60))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -(1 << 60))
        r = o.structTestStruct5Arg_andsignedlonglongArg_((1, 2.5), -42)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct5Arg_andsignedlonglongArg_((1, 2.5), 0)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andsignedlonglongArg_((1, 2.5), 42)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct5Arg_andsignedlonglongArg_((1, 2.5), 1 << 60)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 60)
        r = o.structTestStruct5Arg_andsignedlonglongArg_((2, 4.5), -(1 << 60))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -(1 << 60))
        r = o.structTestStruct5Arg_andsignedlonglongArg_((2, 4.5), -42)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -42)
        r = o.structTestStruct5Arg_andsignedlonglongArg_((2, 4.5), 0)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andsignedlonglongArg_((2, 4.5), 42)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct5Arg_andsignedlonglongArg_((2, 4.5), 1 << 60)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 60)


    def teststructTestStruct5AndunsignedcharArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andunsignedcharArg_((1, 2.5), 0)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andunsignedcharArg_((1, 2.5), 128)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 128)
        r = o.structTestStruct5Arg_andunsignedcharArg_((1, 2.5), 255)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 255)
        r = o.structTestStruct5Arg_andunsignedcharArg_((2, 4.5), 0)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andunsignedcharArg_((2, 4.5), 128)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 128)
        r = o.structTestStruct5Arg_andunsignedcharArg_((2, 4.5), 255)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 255)


    def teststructTestStruct5AndunsignedshortArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andunsignedshortArg_((1, 2.5), 0)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andunsignedshortArg_((1, 2.5), 42)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct5Arg_andunsignedshortArg_((1, 2.5), 1<<14)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1<<14)
        r = o.structTestStruct5Arg_andunsignedshortArg_((2, 4.5), 0)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andunsignedshortArg_((2, 4.5), 42)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct5Arg_andunsignedshortArg_((2, 4.5), 1<<14)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1<<14)


    def teststructTestStruct5AndunsignedintArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andunsignedintArg_((1, 2.5), 0)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andunsignedintArg_((1, 2.5), 42)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct5Arg_andunsignedintArg_((1, 2.5), 1 << 30)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct5Arg_andunsignedintArg_((2, 4.5), 0)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andunsignedintArg_((2, 4.5), 42)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct5Arg_andunsignedintArg_((2, 4.5), 1 << 30)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct5AndunsignedlongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andunsignedlongArg_((1, 2.5), 0)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andunsignedlongArg_((1, 2.5), 42)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct5Arg_andunsignedlongArg_((1, 2.5), 1 << 30)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 30)
        r = o.structTestStruct5Arg_andunsignedlongArg_((2, 4.5), 0)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andunsignedlongArg_((2, 4.5), 42)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct5Arg_andunsignedlongArg_((2, 4.5), 1 << 30)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 30)


    def teststructTestStruct5AndunsignedlonglongArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andunsignedlonglongArg_((1, 2.5), 0)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andunsignedlonglongArg_((1, 2.5), 42)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct5Arg_andunsignedlonglongArg_((1, 2.5), 1 << 62)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 62)
        r = o.structTestStruct5Arg_andunsignedlonglongArg_((2, 4.5), 0)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = o.structTestStruct5Arg_andunsignedlonglongArg_((2, 4.5), 42)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = o.structTestStruct5Arg_andunsignedlonglongArg_((2, 4.5), 1 << 62)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 62)


    def teststructTestStruct5AndfloatArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andfloatArg_((1, 2.5), 0.128)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct5Arg_andfloatArg_((1, 2.5), 1.0)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct5Arg_andfloatArg_((1, 2.5), 42.0)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct5Arg_andfloatArg_((1, 2.5), 1e10)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.structTestStruct5Arg_andfloatArg_((2, 4.5), 0.128)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct5Arg_andfloatArg_((2, 4.5), 1.0)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct5Arg_andfloatArg_((2, 4.5), 42.0)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct5Arg_andfloatArg_((2, 4.5), 1e10)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 1e10)


    def teststructTestStruct5AnddoubleArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_anddoubleArg_((1, 2.5), 0.128)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct5Arg_anddoubleArg_((1, 2.5), 1.0)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct5Arg_anddoubleArg_((1, 2.5), 42.0)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct5Arg_anddoubleArg_((1, 2.5), 1e10)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 1e10)
        r = o.structTestStruct5Arg_anddoubleArg_((2, 4.5), 0.128)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 0.128)
        r = o.structTestStruct5Arg_anddoubleArg_((2, 4.5), 1.0)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 1.0)
        r = o.structTestStruct5Arg_anddoubleArg_((2, 4.5), 42.0)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 42.0)
        r = o.structTestStruct5Arg_anddoubleArg_((2, 4.5), 1e10)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 1e10)


    def teststructTestStruct5AndidArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andidArg_((1, 2.5), NSPriorDayDesignations)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = o.structTestStruct5Arg_andidArg_((2, 4.5), NSPriorDayDesignations)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def teststructTestStruct5AndcharPtrArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andcharPtrArg_((1, 2.5), b"hello")
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], b"hello")
        r = o.structTestStruct5Arg_andcharPtrArg_((1, 2.5), b"world")
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], b"world")
        r = o.structTestStruct5Arg_andcharPtrArg_((1, 2.5), b"foobar")
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], b"foobar")
        r = o.structTestStruct5Arg_andcharPtrArg_((2, 4.5), b"hello")
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], b"hello")
        r = o.structTestStruct5Arg_andcharPtrArg_((2, 4.5), b"world")
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], b"world")
        r = o.structTestStruct5Arg_andcharPtrArg_((2, 4.5), b"foobar")
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], b"foobar")


    def teststructTestStruct5AndNSPointArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andNSPointArg_((1, 2.5), (1, 2))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct5Arg_andNSPointArg_((1, 2.5), (3, 4))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (3, 4))
        r = o.structTestStruct5Arg_andNSPointArg_((2, 4.5), (1, 2))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct5Arg_andNSPointArg_((2, 4.5), (3, 4))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (3, 4))


    def teststructTestStruct5AndNSRectArg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andNSRectArg_((1, 2.5), ((1, 2), (3, 4)))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.structTestStruct5Arg_andNSRectArg_((1, 2.5), ((7, 8), (9, 10)))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = o.structTestStruct5Arg_andNSRectArg_((2, 4.5), ((1, 2), (3, 4)))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.structTestStruct5Arg_andNSRectArg_((2, 4.5), ((7, 8), (9, 10)))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def teststructTestStruct5AndstructTestStruct1Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andstructTestStruct1Arg_((1, 2.5), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct5Arg_andstructTestStruct1Arg_((1, 2.5), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.structTestStruct5Arg_andstructTestStruct1Arg_((2, 4.5), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct5Arg_andstructTestStruct1Arg_((2, 4.5), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct5AndstructTestStruct2Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andstructTestStruct2Arg_((1, 2.5), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct5Arg_andstructTestStruct2Arg_((1, 2.5), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = o.structTestStruct5Arg_andstructTestStruct2Arg_((2, 4.5), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct5Arg_andstructTestStruct2Arg_((2, 4.5), (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct5AndstructTestStruct3Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andstructTestStruct3Arg_((1, 2.5), (1, 2))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct5Arg_andstructTestStruct3Arg_((1, 2.5), (2, 4))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (2, 4))
        r = o.structTestStruct5Arg_andstructTestStruct3Arg_((2, 4.5), (1, 2))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct5Arg_andstructTestStruct3Arg_((2, 4.5), (2, 4))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (2, 4))


    def teststructTestStruct5AndstructTestStruct4Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andstructTestStruct4Arg_((1, 2.5), (1, 1<<60))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.structTestStruct5Arg_andstructTestStruct4Arg_((1, 2.5), (2, 4))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (2, 4))
        r = o.structTestStruct5Arg_andstructTestStruct4Arg_((2, 4.5), (1, 1<<60))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.structTestStruct5Arg_andstructTestStruct4Arg_((2, 4.5), (2, 4))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (2, 4))


    def teststructTestStruct5AndstructTestStruct5Arg(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5Arg_andstructTestStruct5Arg_((1, 2.5), (1, 2.5))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 2.5))
        r = o.structTestStruct5Arg_andstructTestStruct5Arg_((1, 2.5), (2, 4.5))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (2, 4.5))
        r = o.structTestStruct5Arg_andstructTestStruct5Arg_((2, 4.5), (1, 2.5))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2.5))
        r = o.structTestStruct5Arg_andstructTestStruct5Arg_((2, 4.5), (2, 4.5))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (2, 4.5))


    # Pass by reference arguments (in)

    def testboolIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.boolInArg_(YES)
        self.assertEqual(r, YES)
        r = o.boolInArg_(NO)
        self.assertEqual(r, NO)


    def testBOOLIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.BOOLInArg_(YES)
        self.assertEqual(r, YES)
        r = o.BOOLInArg_(NO)
        self.assertEqual(r, NO)


    def testcharIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charInArg_(-128)
        self.assertEqual(r, -128)
        r = o.charInArg_(0)
        self.assertEqual(r, 0)
        r = o.charInArg_(127)
        self.assertEqual(r, 127)


    def testsignedshortIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedshortInArg_(-(1<<14))
        self.assertEqual(r, -(1<<14))
        r = o.signedshortInArg_(-42)
        self.assertEqual(r, -42)
        r = o.signedshortInArg_(0)
        self.assertEqual(r, 0)
        r = o.signedshortInArg_(42)
        self.assertEqual(r, 42)
        r = o.signedshortInArg_(1 << 14)
        self.assertEqual(r, 1 << 14)


    def testsignedintIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedintInArg_(-(1<<30))
        self.assertEqual(r, -(1<<30))
        r = o.signedintInArg_(-42)
        self.assertEqual(r, -42)
        r = o.signedintInArg_(0)
        self.assertEqual(r, 0)
        r = o.signedintInArg_(42)
        self.assertEqual(r, 42)
        r = o.signedintInArg_(1 << 30)
        self.assertEqual(r, 1 << 30)


    def testsignedlongIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlongInArg_(-(1<<30))
        self.assertEqual(r, -(1<<30))
        r = o.signedlongInArg_(-42)
        self.assertEqual(r, -42)
        r = o.signedlongInArg_(0)
        self.assertEqual(r, 0)
        r = o.signedlongInArg_(42)
        self.assertEqual(r, 42)
        r = o.signedlongInArg_(1 << 30)
        self.assertEqual(r, 1 << 30)


    def testsignedlonglongIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.signedlonglongInArg_(-(1 << 60))
        self.assertEqual(r, -(1 << 60))
        r = o.signedlonglongInArg_(-42)
        self.assertEqual(r, -42)
        r = o.signedlonglongInArg_(0)
        self.assertEqual(r, 0)
        r = o.signedlonglongInArg_(42)
        self.assertEqual(r, 42)
        r = o.signedlonglongInArg_(1 << 60)
        self.assertEqual(r, 1 << 60)


    def testunsignedcharIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedcharInArg_(0)
        self.assertEqual(r, 0)
        r = o.unsignedcharInArg_(128)
        self.assertEqual(r, 128)
        r = o.unsignedcharInArg_(255)
        self.assertEqual(r, 255)


    def testunsignedshortIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedshortInArg_(0)
        self.assertEqual(r, 0)
        r = o.unsignedshortInArg_(42)
        self.assertEqual(r, 42)
        r = o.unsignedshortInArg_(1<<14)
        self.assertEqual(r, 1<<14)


    def testunsignedintIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedintInArg_(0)
        self.assertEqual(r, 0)
        r = o.unsignedintInArg_(42)
        self.assertEqual(r, 42)
        r = o.unsignedintInArg_(1 << 30)
        self.assertEqual(r, 1 << 30)


    def testunsignedlongIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlongInArg_(0)
        self.assertEqual(r, 0)
        r = o.unsignedlongInArg_(42)
        self.assertEqual(r, 42)
        r = o.unsignedlongInArg_(1 << 30)
        self.assertEqual(r, 1 << 30)


    def testunsignedlonglongIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.unsignedlonglongInArg_(0)
        self.assertEqual(r, 0)
        r = o.unsignedlonglongInArg_(42)
        self.assertEqual(r, 42)
        r = o.unsignedlonglongInArg_(1 << 62)
        self.assertEqual(r, 1 << 62)


    def testfloatIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.floatInArg_(0.128)
        self.assertAlmostEqual(r, 0.128)
        r = o.floatInArg_(1.0)
        self.assertAlmostEqual(r, 1.0)
        r = o.floatInArg_(42.0)
        self.assertAlmostEqual(r, 42.0)
        r = o.floatInArg_(1e10)
        self.assertAlmostEqual(r, 1e10)


    def testdoubleIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.doubleInArg_(0.128)
        self.assertAlmostEqual(r, 0.128)
        r = o.doubleInArg_(1.0)
        self.assertAlmostEqual(r, 1.0)
        r = o.doubleInArg_(42.0)
        self.assertAlmostEqual(r, 42.0)
        r = o.doubleInArg_(1e10)
        self.assertAlmostEqual(r, 1e10)


    def testidIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.idInArg_(NSPriorDayDesignations)
        self.assertEqual(r, NSPriorDayDesignations)


    def testcharPtrIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.charPtrInArg_(b"hello")
        self.assertEqual(r, b"hello")
        r = o.charPtrInArg_(b"world")
        self.assertEqual(r, b"world")
        r = o.charPtrInArg_(b"foobar")
        self.assertEqual(r, b"foobar")


    def testNSPointIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSPointInArg_((1, 2))
        self.assertEqual(r, (1, 2))
        r = o.NSPointInArg_((3, 4))
        self.assertEqual(r, (3, 4))


    def testNSRectIn(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.NSRectInArg_(((1, 2), (3, 4)))
        self.assertEqual(r, ((1, 2), (3, 4)))
        r = o.NSRectInArg_(((7, 8), (9, 10)))
        self.assertEqual(r, ((7, 8), (9, 10)))


    def teststructTestStruct1In(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct1InArg_((1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct1InArg_((9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct2In(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct2InArg_((1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct2InArg_((9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct3In(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct3InArg_((1, 2))
        self.assertEqual(r, (1, 2))
        r = o.structTestStruct3InArg_((2, 4))
        self.assertEqual(r, (2, 4))


    def teststructTestStruct4In(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct4InArg_((1, 1<<60))
        self.assertEqual(r, (1, 1<<60))
        r = o.structTestStruct4InArg_((2, 4))
        self.assertEqual(r, (2, 4))


    def teststructTestStruct5In(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        r = o.structTestStruct5InArg_((1, 2.5))
        self.assertEqual(r, (1, 2.5))
        r = o.structTestStruct5InArg_((2, 4.5))
        self.assertEqual(r, (2, 4.5))


    # Pass by reference arguments (out)

    if 0:
        def testboolOut(self):
            o = PyObjC_TestClass1.alloc().init()
            self.assertIsNotNone(o)
            o.reset()
            r = o.boolOutArg_(None)
            self.assertEqual(r, YES)
            r = o.boolOutArg_(None)
            self.assertEqual(r, NO)


    def testBOOLOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.BOOLOutArg_(None)
        self.assertEqual(r, YES)
        r = o.BOOLOutArg_(None)
        self.assertEqual(r, NO)


    def testcharOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.charOutArg_(None)
        self.assertEqual(r, -128)
        r = o.charOutArg_(None)
        self.assertEqual(r, 0)
        r = o.charOutArg_(None)
        self.assertEqual(r, 127)


    def testsignedshortOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.signedshortOutArg_(None)
        self.assertEqual(r, -(1<<14))
        r = o.signedshortOutArg_(None)
        self.assertEqual(r, -42)
        r = o.signedshortOutArg_(None)
        self.assertEqual(r, 0)
        r = o.signedshortOutArg_(None)
        self.assertEqual(r, 42)
        r = o.signedshortOutArg_(None)
        self.assertEqual(r, 1 << 14)


    def testsignedintOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.signedintOutArg_(None)
        self.assertEqual(r, -(1<<30))
        r = o.signedintOutArg_(None)
        self.assertEqual(r, -42)
        r = o.signedintOutArg_(None)
        self.assertEqual(r, 0)
        r = o.signedintOutArg_(None)
        self.assertEqual(r, 42)
        r = o.signedintOutArg_(None)
        self.assertEqual(r, 1 << 30)


    def testsignedlongOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.signedlongOutArg_(None)
        self.assertEqual(r, -(1<<30))
        r = o.signedlongOutArg_(None)
        self.assertEqual(r, -42)
        r = o.signedlongOutArg_(None)
        self.assertEqual(r, 0)
        r = o.signedlongOutArg_(None)
        self.assertEqual(r, 42)
        r = o.signedlongOutArg_(None)
        self.assertEqual(r, 1 << 30)


    def testsignedlonglongOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.signedlonglongOutArg_(None)
        self.assertEqual(r, -(1 << 60))
        r = o.signedlonglongOutArg_(None)
        self.assertEqual(r, -42)
        r = o.signedlonglongOutArg_(None)
        self.assertEqual(r, 0)
        r = o.signedlonglongOutArg_(None)
        self.assertEqual(r, 42)
        r = o.signedlonglongOutArg_(None)
        self.assertEqual(r, 1 << 60)


    def testunsignedcharOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.unsignedcharOutArg_(None)
        self.assertEqual(r, 0)
        r = o.unsignedcharOutArg_(None)
        self.assertEqual(r, 128)
        r = o.unsignedcharOutArg_(None)
        self.assertEqual(r, 255)


    def testunsignedshortOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.unsignedshortOutArg_(None)
        self.assertEqual(r, 0)
        r = o.unsignedshortOutArg_(None)
        self.assertEqual(r, 42)
        r = o.unsignedshortOutArg_(None)
        self.assertEqual(r, 1<<14)


    def testunsignedintOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.unsignedintOutArg_(None)
        self.assertEqual(r, 0)
        r = o.unsignedintOutArg_(None)
        self.assertEqual(r, 42)
        r = o.unsignedintOutArg_(None)
        self.assertEqual(r, 1 << 30)


    def testunsignedlongOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.unsignedlongOutArg_(None)
        self.assertEqual(r, 0)
        r = o.unsignedlongOutArg_(None)
        self.assertEqual(r, 42)
        r = o.unsignedlongOutArg_(None)
        self.assertEqual(r, 1 << 30)


    def testunsignedlonglongOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.unsignedlonglongOutArg_(None)
        self.assertEqual(r, 0)
        r = o.unsignedlonglongOutArg_(None)
        self.assertEqual(r, 42)
        r = o.unsignedlonglongOutArg_(None)
        self.assertEqual(r, 1 << 62)


    def testfloatOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.floatOutArg_(None)
        self.assertAlmostEqual(r, 0.128)
        r = o.floatOutArg_(None)
        self.assertAlmostEqual(r, 1.0)
        r = o.floatOutArg_(None)
        self.assertAlmostEqual(r, 42.0)
        r = o.floatOutArg_(None)
        self.assertAlmostEqual(r, 1e10)


    def testdoubleOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.doubleOutArg_(None)
        self.assertAlmostEqual(r, 0.128)
        r = o.doubleOutArg_(None)
        self.assertAlmostEqual(r, 1.0)
        r = o.doubleOutArg_(None)
        self.assertAlmostEqual(r, 42.0)
        r = o.doubleOutArg_(None)
        self.assertAlmostEqual(r, 1e10)


    def testidOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.idOutArg_(None)
        self.assertEqual(r, NSPriorDayDesignations)


    def testcharPtrOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.charPtrOutArg_(None)
        self.assertEqual(r, b"hello")
        r = o.charPtrOutArg_(None)
        self.assertEqual(r, b"world")
        r = o.charPtrOutArg_(None)
        self.assertEqual(r, b"foobar")


    def testNSPointOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.NSPointOutArg_(None)
        self.assertEqual(r, (1, 2))
        r = o.NSPointOutArg_(None)
        self.assertEqual(r, (3, 4))


    def testNSRectOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.NSRectOutArg_(None)
        self.assertEqual(r, ((1, 2), (3, 4)))
        r = o.NSRectOutArg_(None)
        self.assertEqual(r, ((7, 8), (9, 10)))


    def teststructTestStruct1Out(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.structTestStruct1OutArg_(None)
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct1OutArg_(None)
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct2Out(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.structTestStruct2OutArg_(None)
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct2OutArg_(None)
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct3Out(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.structTestStruct3OutArg_(None)
        self.assertEqual(r, (1, 2))
        r = o.structTestStruct3OutArg_(None)
        self.assertEqual(r, (2, 4))


    def teststructTestStruct4Out(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.structTestStruct4OutArg_(None)
        self.assertEqual(r, (1, 1<<60))
        r = o.structTestStruct4OutArg_(None)
        self.assertEqual(r, (2, 4))


    def teststructTestStruct5Out(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.structTestStruct5OutArg_(None)
        self.assertEqual(r, (1, 2.5))
        r = o.structTestStruct5OutArg_(None)
        self.assertEqual(r, (2, 4.5))


    # Pass by reference arguments (inout)

    if 0:
        def testboolInOut(self):
            o = PyObjC_TestClass1.alloc().init()
            self.assertIsNotNone(o)
            o.reset()
            r = o.boolInOutArg_(NO)
            self.assertEqual(r[0], NO)
            self.assertEqual(r[1], YES)
            r = o.boolInOutArg_(YES)
            self.assertEqual(r[0], YES)
            self.assertEqual(r[1], NO)


    def testBOOLInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.BOOLInOutArg_(NO)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = o.BOOLInOutArg_(YES)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)


    def testcharInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.charInOutArg_(127)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -128)
        r = o.charInOutArg_(0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.charInOutArg_(-128)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 127)


    def testsignedshortInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.signedshortInOutArg_(1 << 14)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -(1<<14))
        r = o.signedshortInOutArg_(42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedshortInOutArg_(0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedshortInOutArg_(-42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedshortInOutArg_(-(1<<14))
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 14)


    def testsignedintInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.signedintInOutArg_(1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedintInOutArg_(42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedintInOutArg_(0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedintInOutArg_(-42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedintInOutArg_(-(1<<30))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)


    def testsignedlongInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.signedlongInOutArg_(1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = o.signedlongInOutArg_(42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedlongInOutArg_(0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlongInOutArg_(-42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlongInOutArg_(-(1<<30))
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)


    def testsignedlonglongInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.signedlonglongInOutArg_(1 << 60)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -(1 << 60))
        r = o.signedlonglongInOutArg_(42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = o.signedlonglongInOutArg_(0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = o.signedlonglongInOutArg_(-42)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = o.signedlonglongInOutArg_(-(1 << 60))
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 60)


    def testunsignedcharInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.unsignedcharInOutArg_(255)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = o.unsignedcharInOutArg_(128)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 128)
        r = o.unsignedcharInOutArg_(0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)


    def testunsignedshortInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.unsignedshortInOutArg_(1<<14)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = o.unsignedshortInOutArg_(42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedshortInOutArg_(0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)


    def testunsignedintInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.unsignedintInOutArg_(1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedintInOutArg_(42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedintInOutArg_(0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedlongInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.unsignedlongInOutArg_(1 << 30)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = o.unsignedlongInOutArg_(42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlongInOutArg_(0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)


    def testunsignedlonglongInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.unsignedlonglongInOutArg_(1 << 62)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = o.unsignedlonglongInOutArg_(42)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = o.unsignedlonglongInOutArg_(0)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)


    def testfloatInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.floatInOutArg_(1e10)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.floatInOutArg_(42.0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.floatInOutArg_(1.0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.floatInOutArg_(0.128)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)


    def testdoubleInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.doubleInOutArg_(1e10)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = o.doubleInOutArg_(42.0)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = o.doubleInOutArg_(1.0)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = o.doubleInOutArg_(0.128)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)


    def testidInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.idInOutArg_(NSPriorDayDesignations)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcharPtrInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.charPtrInOutArg_(b"foobar")
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], b"hello")
        r = o.charPtrInOutArg_(b"world")
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], b"world")
        r = o.charPtrInOutArg_(b"hello")
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], b"foobar")


    def testNSPointInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.NSPointInOutArg_((3, 4))
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2))
        r = o.NSPointInOutArg_((1, 2))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (3, 4))


    def testNSRectInOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.NSRectInOutArg_(((7, 8), (9, 10)))
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = o.NSRectInOutArg_(((1, 2), (3, 4)))
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def teststructTestStruct1InOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.structTestStruct1InOutArg_((9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct1InOutArg_((1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct2InOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.structTestStruct2InOutArg_((9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = o.structTestStruct2InOutArg_((1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def teststructTestStruct3InOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.structTestStruct3InOutArg_((2, 4))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2))
        r = o.structTestStruct3InOutArg_((1, 2))
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4))


    def teststructTestStruct4InOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.structTestStruct4InOutArg_((2, 4))
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 1<<60))
        r = o.structTestStruct4InOutArg_((1, 1<<60))
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (2, 4))


    def teststructTestStruct5InOut(self):
        o = PyObjC_TestClass1.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = o.structTestStruct5InOutArg_((2, 4.5))
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2.5))
        r = o.structTestStruct5InOutArg_((1, 2.5))
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (2, 4.5))


# Helper arrays
g_bool_values = (YES, NO)
g_BOOL_values = (YES, NO)
g_char_values = (-128, 0, 127)
g_signedshort_values = (-(1<<14), -42, 0, 42, 1 << 14)
g_signedint_values = (-(1<<30), -42, 0, 42, 1 << 30)
g_signedlong_values = (-(1<<30), -42, 0, 42, 1 << 30)
g_signedlonglong_values = (-(1 << 60), -42, 0, 42, 1 << 60)
g_unsignedchar_values = (0, 128, 255)
g_unsignedshort_values = (0, 42, 1<<14)
g_unsignedint_values = (0, 42, 1 << 30)
g_unsignedlong_values = (0, 42, 1 << 30)
g_unsignedlonglong_values = (0, 42, 1 << 62)
g_float_values = (0.128, 1.0, 42.0, 1e10)
g_double_values = (0.128, 1.0, 42.0, 1e10)
g_id_values = (NSPriorDayDesignations,)
g_charPtr_values = (b"hello", b"world", b"foobar")
g_NSPoint_values = ((1, 2), (3, 4))
g_NSRect_values = (((1, 2), (3, 4)), ((7, 8), (9, 10)))
g_structTestStruct1_values = ((1, 2, (1, 2, 3, 4, 5)), (9, 8, (-1, -2, -3, -4, -5)))
g_structTestStruct2_values = ((1, 2, (1, 2, 3, 4, 5)), (9, 8, (-1, -2, -3, -4, -5)))
g_structTestStruct3_values = ((1, 2), (2, 4))
g_structTestStruct4_values = ((1, 1<<60), (2, 4))
g_structTestStruct5_values = ((1, 2.5), (2, 4.5))


class Python_TestClass (objc.lookUpClass("NSObject")):
    def init(self):
        self = super(Python_TestClass, self).init()
        self.reset()
        return self


    def reset(self):
        self.counter = 0


    def boolMethod(self):
        if self.counter > 2: self.reset()
        idx = self.counter
        self.counter += 1
        return g_bool_values[idx]
    boolMethod = objc.selector(boolMethod, signature=b"B@:")


    def BOOLMethod(self):
        if self.counter > 2: self.reset()
        idx = self.counter
        self.counter += 1
        return g_BOOL_values[idx]
    BOOLMethod = objc.selector(BOOLMethod, signature=b"c@:")


    def charMethod(self):
        if self.counter > 3: self.reset()
        idx = self.counter
        self.counter += 1
        return g_char_values[idx]
    charMethod = objc.selector(charMethod, signature=b"c@:")


    def signedshortMethod(self):
        if self.counter > 5: self.reset()
        idx = self.counter
        self.counter += 1
        return g_signedshort_values[idx]
    signedshortMethod = objc.selector(signedshortMethod, signature=b"s@:")


    def signedintMethod(self):
        if self.counter > 5: self.reset()
        idx = self.counter
        self.counter += 1
        return g_signedint_values[idx]
    signedintMethod = objc.selector(signedintMethod, signature=b"i@:")


    def signedlongMethod(self):
        if self.counter > 5: self.reset()
        idx = self.counter
        self.counter += 1
        return g_signedlong_values[idx]
    signedlongMethod = objc.selector(signedlongMethod, signature=b"" + long_tp + b"@:")


    def signedlonglongMethod(self):
        if self.counter > 5: self.reset()
        idx = self.counter
        self.counter += 1
        return g_signedlonglong_values[idx]
    signedlonglongMethod = objc.selector(signedlonglongMethod, signature=b"q@:")


    def unsignedcharMethod(self):
        if self.counter > 3: self.reset()
        idx = self.counter
        self.counter += 1
        return g_unsignedchar_values[idx]
    unsignedcharMethod = objc.selector(unsignedcharMethod, signature=b"C@:")


    def unsignedshortMethod(self):
        if self.counter > 3: self.reset()
        idx = self.counter
        self.counter += 1
        return g_unsignedshort_values[idx]
    unsignedshortMethod = objc.selector(unsignedshortMethod, signature=b"S@:")


    def unsignedintMethod(self):
        if self.counter > 3: self.reset()
        idx = self.counter
        self.counter += 1
        return g_unsignedint_values[idx]
    unsignedintMethod = objc.selector(unsignedintMethod, signature=b"I@:")


    def unsignedlongMethod(self):
        if self.counter > 3: self.reset()
        idx = self.counter
        self.counter += 1
        return g_unsignedlong_values[idx]
    unsignedlongMethod = objc.selector(unsignedlongMethod, signature=b"" + ulong_tp + b"@:")


    def unsignedlonglongMethod(self):
        if self.counter > 3: self.reset()
        idx = self.counter
        self.counter += 1
        return g_unsignedlonglong_values[idx]
    unsignedlonglongMethod = objc.selector(unsignedlonglongMethod, signature=b"Q@:")


    def floatMethod(self):
        if self.counter > 4: self.reset()
        idx = self.counter
        self.counter += 1
        return g_float_values[idx]
    floatMethod = objc.selector(floatMethod, signature=b"f@:")


    def doubleMethod(self):
        if self.counter > 4: self.reset()
        idx = self.counter
        self.counter += 1
        return g_double_values[idx]
    doubleMethod = objc.selector(doubleMethod, signature=b"d@:")


    def idMethod(self):
        if self.counter > 1: self.reset()
        idx = self.counter
        self.counter += 1
        return g_id_values[idx]
    idMethod = objc.selector(idMethod, signature=b"@@:")


    def charPtrMethod(self):
        if self.counter > 3: self.reset()
        idx = self.counter
        self.counter += 1
        return g_charPtr_values[idx]
    charPtrMethod = objc.selector(charPtrMethod, signature=b"*@:")


    def NSPointMethod(self):
        if self.counter > 2: self.reset()
        idx = self.counter
        self.counter += 1
        return g_NSPoint_values[idx]
    NSPointMethod = objc.selector(NSPointMethod, signature=NSPoint_tp + b"@:")


    def NSRectMethod(self):
        if self.counter > 2: self.reset()
        idx = self.counter
        self.counter += 1
        return g_NSRect_values[idx]
    NSRectMethod = objc.selector(NSRectMethod, signature=NSRect_tp + b"@:")


    def structTestStruct1Method(self):
        if self.counter > 2: self.reset()
        idx = self.counter
        self.counter += 1
        return g_structTestStruct1_values[idx]
    structTestStruct1Method = objc.selector(structTestStruct1Method, signature=b"{_TestStruct1=ii[5s]}@:")


    def structTestStruct2Method(self):
        if self.counter > 2: self.reset()
        idx = self.counter
        self.counter += 1
        return g_structTestStruct2_values[idx]
    structTestStruct2Method = objc.selector(structTestStruct2Method, signature=b"{_TestStruct2=id[5s]}@:")


    def structTestStruct3Method(self):
        if self.counter > 2: self.reset()
        idx = self.counter
        self.counter += 1
        return g_structTestStruct3_values[idx]
    structTestStruct3Method = objc.selector(structTestStruct3Method, signature=b"{_TestStruct3=ci}@:")


    def structTestStruct4Method(self):
        if self.counter > 2: self.reset()
        idx = self.counter
        self.counter += 1
        return g_structTestStruct4_values[idx]
    structTestStruct4Method = objc.selector(structTestStruct4Method, signature=b"{_TestStruct4=cq}@:")


    def structTestStruct5Method(self):
        if self.counter > 2: self.reset()
        idx = self.counter
        self.counter += 1
        return g_structTestStruct5_values[idx]
    structTestStruct5Method = objc.selector(structTestStruct5Method, signature=b"{_TestStruct5=cd}@:")


    def boolArg_(self, arg):
        return arg # return the same
    boolArg_ = objc.selector(boolArg_, signature=b"@@:B")


    def BOOLArg_(self, arg):
        return arg # return the same
    BOOLArg_ = objc.selector(BOOLArg_, signature=b"@@:c")


    def charArg_(self, arg):
        return arg # return the same
    charArg_ = objc.selector(charArg_, signature=b"@@:c")


    def signedshortArg_(self, arg):
        return arg # return the same
    signedshortArg_ = objc.selector(signedshortArg_, signature=b"@@:s")


    def signedintArg_(self, arg):
        return arg # return the same
    signedintArg_ = objc.selector(signedintArg_, signature=b"@@:i")


    def signedlongArg_(self, arg):
        return arg # return the same
    signedlongArg_ = objc.selector(signedlongArg_, signature=b"@@:" + long_tp)


    def signedlonglongArg_(self, arg):
        return arg # return the same
    signedlonglongArg_ = objc.selector(signedlonglongArg_, signature=b"@@:q")


    def unsignedcharArg_(self, arg):
        return arg # return the same
    unsignedcharArg_ = objc.selector(unsignedcharArg_, signature=b"@@:C")


    def unsignedshortArg_(self, arg):
        return arg # return the same
    unsignedshortArg_ = objc.selector(unsignedshortArg_, signature=b"@@:S")


    def unsignedintArg_(self, arg):
        return arg # return the same
    unsignedintArg_ = objc.selector(unsignedintArg_, signature=b"@@:I")


    def unsignedlongArg_(self, arg):
        return arg # return the same
    unsignedlongArg_ = objc.selector(unsignedlongArg_, signature=b"@@:" + ulong_tp)


    def unsignedlonglongArg_(self, arg):
        return arg # return the same
    unsignedlonglongArg_ = objc.selector(unsignedlonglongArg_, signature=b"@@:Q")


    def floatArg_(self, arg):
        return arg # return the same
    floatArg_ = objc.selector(floatArg_, signature=b"@@:f")


    def doubleArg_(self, arg):
        return arg # return the same
    doubleArg_ = objc.selector(doubleArg_, signature=b"@@:d")


    def idArg_(self, arg):
        return arg # return the same
    idArg_ = objc.selector(idArg_, signature=b"@@:@")


    def charPtrArg_(self, arg):
        return unicode(arg) # return the unicode
    charPtrArg_ = objc.selector(charPtrArg_, signature=b"@@:*")


    def NSPointArg_(self, arg):
        return arg # return the same
    NSPointArg_ = objc.selector(NSPointArg_, signature=b"@@:" + NSPoint_tp)


    def NSRectArg_(self, arg):
        return arg # return the same
    NSRectArg_ = objc.selector(NSRectArg_, signature=b"@@:" + NSRect_tp)


    def structTestStruct1Arg_(self, arg):
        return arg # return the same
    structTestStruct1Arg_ = objc.selector(structTestStruct1Arg_, signature=b"@@:{_TestStruct1=ii[5s]}")


    def structTestStruct2Arg_(self, arg):
        return arg # return the same
    structTestStruct2Arg_ = objc.selector(structTestStruct2Arg_, signature=b"@@:{_TestStruct2=id[5s]}")


    def structTestStruct3Arg_(self, arg):
        return arg # return the same
    structTestStruct3Arg_ = objc.selector(structTestStruct3Arg_, signature=b"@@:{_TestStruct3=ci}")


    def structTestStruct4Arg_(self, arg):
        return arg # return the same
    structTestStruct4Arg_ = objc.selector(structTestStruct4Arg_, signature=b"@@:{_TestStruct4=cq}")


    def structTestStruct5Arg_(self, arg):
        return arg # return the same
    structTestStruct5Arg_ = objc.selector(structTestStruct5Arg_, signature=b"@@:{_TestStruct5=cd}")


    def boolArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andboolArg_ = objc.selector(boolArg_andboolArg_, signature=b"@@:BB")


    def boolArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andBOOLArg_ = objc.selector(boolArg_andBOOLArg_, signature=b"@@:Bc")


    def boolArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andcharArg_ = objc.selector(boolArg_andcharArg_, signature=b"@@:Bc")


    def boolArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andsignedshortArg_ = objc.selector(boolArg_andsignedshortArg_, signature=b"@@:Bs")


    def boolArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andsignedintArg_ = objc.selector(boolArg_andsignedintArg_, signature=b"@@:Bi")


    def boolArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andsignedlongArg_ = objc.selector(boolArg_andsignedlongArg_, signature=b"@@:B" + long_tp)


    def boolArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andsignedlonglongArg_ = objc.selector(boolArg_andsignedlonglongArg_, signature=b"@@:Bq")


    def boolArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andunsignedcharArg_ = objc.selector(boolArg_andunsignedcharArg_, signature=b"@@:BC")


    def boolArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andunsignedshortArg_ = objc.selector(boolArg_andunsignedshortArg_, signature=b"@@:BS")


    def boolArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andunsignedintArg_ = objc.selector(boolArg_andunsignedintArg_, signature=b"@@:BI")


    def boolArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andunsignedlongArg_ = objc.selector(boolArg_andunsignedlongArg_, signature=b"@@:B" + ulong_tp)


    def boolArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andunsignedlonglongArg_ = objc.selector(boolArg_andunsignedlonglongArg_, signature=b"@@:BQ")


    def boolArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andfloatArg_ = objc.selector(boolArg_andfloatArg_, signature=b"@@:Bf")


    def boolArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_anddoubleArg_ = objc.selector(boolArg_anddoubleArg_, signature=b"@@:Bd")


    def boolArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andidArg_ = objc.selector(boolArg_andidArg_, signature=b"@@:B@")


    def boolArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    boolArg_andcharPtrArg_ = objc.selector(boolArg_andcharPtrArg_, signature=b"@@:B*")


    def boolArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andNSPointArg_ = objc.selector(boolArg_andNSPointArg_, signature=b"@@:B" + NSPoint_tp)


    def boolArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andNSRectArg_ = objc.selector(boolArg_andNSRectArg_, signature=b"@@:B" + NSRect_tp)


    def boolArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andstructTestStruct1Arg_ = objc.selector(boolArg_andstructTestStruct1Arg_, signature=b"@@:B{_TestStruct1=ii[5s]}")


    def boolArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andstructTestStruct2Arg_ = objc.selector(boolArg_andstructTestStruct2Arg_, signature=b"@@:B{_TestStruct2=id[5s]}")


    def boolArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andstructTestStruct3Arg_ = objc.selector(boolArg_andstructTestStruct3Arg_, signature=b"@@:B{_TestStruct3=ci}")


    def boolArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andstructTestStruct4Arg_ = objc.selector(boolArg_andstructTestStruct4Arg_, signature=b"@@:B{_TestStruct4=cq}")


    def boolArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    boolArg_andstructTestStruct5Arg_ = objc.selector(boolArg_andstructTestStruct5Arg_, signature=b"@@:B{_TestStruct5=cd}")


    def BOOLArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andboolArg_ = objc.selector(BOOLArg_andboolArg_, signature=b"@@:cB")


    def BOOLArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andBOOLArg_ = objc.selector(BOOLArg_andBOOLArg_, signature=b"@@:cc")


    def BOOLArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andcharArg_ = objc.selector(BOOLArg_andcharArg_, signature=b"@@:cc")


    def BOOLArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andsignedshortArg_ = objc.selector(BOOLArg_andsignedshortArg_, signature=b"@@:cs")


    def BOOLArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andsignedintArg_ = objc.selector(BOOLArg_andsignedintArg_, signature=b"@@:ci")


    def BOOLArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andsignedlongArg_ = objc.selector(BOOLArg_andsignedlongArg_, signature=b"@@:c" + long_tp)


    def BOOLArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andsignedlonglongArg_ = objc.selector(BOOLArg_andsignedlonglongArg_, signature=b"@@:cq")


    def BOOLArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andunsignedcharArg_ = objc.selector(BOOLArg_andunsignedcharArg_, signature=b"@@:cC")


    def BOOLArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andunsignedshortArg_ = objc.selector(BOOLArg_andunsignedshortArg_, signature=b"@@:cS")


    def BOOLArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andunsignedintArg_ = objc.selector(BOOLArg_andunsignedintArg_, signature=b"@@:cI")


    def BOOLArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andunsignedlongArg_ = objc.selector(BOOLArg_andunsignedlongArg_, signature=b"@@:c" + ulong_tp)


    def BOOLArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andunsignedlonglongArg_ = objc.selector(BOOLArg_andunsignedlonglongArg_, signature=b"@@:cQ")


    def BOOLArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andfloatArg_ = objc.selector(BOOLArg_andfloatArg_, signature=b"@@:cf")


    def BOOLArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_anddoubleArg_ = objc.selector(BOOLArg_anddoubleArg_, signature=b"@@:cd")


    def BOOLArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andidArg_ = objc.selector(BOOLArg_andidArg_, signature=b"@@:c@")


    def BOOLArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    BOOLArg_andcharPtrArg_ = objc.selector(BOOLArg_andcharPtrArg_, signature=b"@@:c*")


    def BOOLArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andNSPointArg_ = objc.selector(BOOLArg_andNSPointArg_, signature=b"@@:c" + NSPoint_tp)


    def BOOLArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andNSRectArg_ = objc.selector(BOOLArg_andNSRectArg_, signature=b"@@:c" + NSRect_tp)


    def BOOLArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andstructTestStruct1Arg_ = objc.selector(BOOLArg_andstructTestStruct1Arg_, signature=b"@@:c{_TestStruct1=ii[5s]}")


    def BOOLArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andstructTestStruct2Arg_ = objc.selector(BOOLArg_andstructTestStruct2Arg_, signature=b"@@:c{_TestStruct2=id[5s]}")


    def BOOLArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andstructTestStruct3Arg_ = objc.selector(BOOLArg_andstructTestStruct3Arg_, signature=b"@@:c{_TestStruct3=ci}")


    def BOOLArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andstructTestStruct4Arg_ = objc.selector(BOOLArg_andstructTestStruct4Arg_, signature=b"@@:c{_TestStruct4=cq}")


    def BOOLArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    BOOLArg_andstructTestStruct5Arg_ = objc.selector(BOOLArg_andstructTestStruct5Arg_, signature=b"@@:c{_TestStruct5=cd}")


    def charArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andboolArg_ = objc.selector(charArg_andboolArg_, signature=b"@@:cB")


    def charArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andBOOLArg_ = objc.selector(charArg_andBOOLArg_, signature=b"@@:cc")


    def charArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andcharArg_ = objc.selector(charArg_andcharArg_, signature=b"@@:cc")


    def charArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andsignedshortArg_ = objc.selector(charArg_andsignedshortArg_, signature=b"@@:cs")


    def charArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andsignedintArg_ = objc.selector(charArg_andsignedintArg_, signature=b"@@:ci")


    def charArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andsignedlongArg_ = objc.selector(charArg_andsignedlongArg_, signature=b"@@:c" + long_tp)


    def charArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andsignedlonglongArg_ = objc.selector(charArg_andsignedlonglongArg_, signature=b"@@:cq")


    def charArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andunsignedcharArg_ = objc.selector(charArg_andunsignedcharArg_, signature=b"@@:cC")


    def charArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andunsignedshortArg_ = objc.selector(charArg_andunsignedshortArg_, signature=b"@@:cS")


    def charArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andunsignedintArg_ = objc.selector(charArg_andunsignedintArg_, signature=b"@@:cI")


    def charArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andunsignedlongArg_ = objc.selector(charArg_andunsignedlongArg_, signature=b"@@:c" + ulong_tp)


    def charArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andunsignedlonglongArg_ = objc.selector(charArg_andunsignedlonglongArg_, signature=b"@@:cQ")


    def charArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andfloatArg_ = objc.selector(charArg_andfloatArg_, signature=b"@@:cf")


    def charArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_anddoubleArg_ = objc.selector(charArg_anddoubleArg_, signature=b"@@:cd")


    def charArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andidArg_ = objc.selector(charArg_andidArg_, signature=b"@@:c@")


    def charArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    charArg_andcharPtrArg_ = objc.selector(charArg_andcharPtrArg_, signature=b"@@:c*")


    def charArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andNSPointArg_ = objc.selector(charArg_andNSPointArg_, signature=b"@@:c" + NSPoint_tp)


    def charArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andNSRectArg_ = objc.selector(charArg_andNSRectArg_, signature=b"@@:c" + NSRect_tp)


    def charArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andstructTestStruct1Arg_ = objc.selector(charArg_andstructTestStruct1Arg_, signature=b"@@:c{_TestStruct1=ii[5s]}")


    def charArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andstructTestStruct2Arg_ = objc.selector(charArg_andstructTestStruct2Arg_, signature=b"@@:c{_TestStruct2=id[5s]}")


    def charArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andstructTestStruct3Arg_ = objc.selector(charArg_andstructTestStruct3Arg_, signature=b"@@:c{_TestStruct3=ci}")


    def charArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andstructTestStruct4Arg_ = objc.selector(charArg_andstructTestStruct4Arg_, signature=b"@@:c{_TestStruct4=cq}")


    def charArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    charArg_andstructTestStruct5Arg_ = objc.selector(charArg_andstructTestStruct5Arg_, signature=b"@@:c{_TestStruct5=cd}")


    def signedshortArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andboolArg_ = objc.selector(signedshortArg_andboolArg_, signature=b"@@:sB")


    def signedshortArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andBOOLArg_ = objc.selector(signedshortArg_andBOOLArg_, signature=b"@@:sc")


    def signedshortArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andcharArg_ = objc.selector(signedshortArg_andcharArg_, signature=b"@@:sc")


    def signedshortArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andsignedshortArg_ = objc.selector(signedshortArg_andsignedshortArg_, signature=b"@@:ss")


    def signedshortArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andsignedintArg_ = objc.selector(signedshortArg_andsignedintArg_, signature=b"@@:si")


    def signedshortArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andsignedlongArg_ = objc.selector(signedshortArg_andsignedlongArg_, signature=b"@@:s" + long_tp)


    def signedshortArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andsignedlonglongArg_ = objc.selector(signedshortArg_andsignedlonglongArg_, signature=b"@@:sq")


    def signedshortArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andunsignedcharArg_ = objc.selector(signedshortArg_andunsignedcharArg_, signature=b"@@:sC")


    def signedshortArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andunsignedshortArg_ = objc.selector(signedshortArg_andunsignedshortArg_, signature=b"@@:sS")


    def signedshortArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andunsignedintArg_ = objc.selector(signedshortArg_andunsignedintArg_, signature=b"@@:sI")


    def signedshortArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andunsignedlongArg_ = objc.selector(signedshortArg_andunsignedlongArg_, signature=b"@@:s" + ulong_tp)


    def signedshortArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andunsignedlonglongArg_ = objc.selector(signedshortArg_andunsignedlonglongArg_, signature=b"@@:sQ")


    def signedshortArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andfloatArg_ = objc.selector(signedshortArg_andfloatArg_, signature=b"@@:sf")


    def signedshortArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_anddoubleArg_ = objc.selector(signedshortArg_anddoubleArg_, signature=b"@@:sd")


    def signedshortArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andidArg_ = objc.selector(signedshortArg_andidArg_, signature=b"@@:s@")


    def signedshortArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    signedshortArg_andcharPtrArg_ = objc.selector(signedshortArg_andcharPtrArg_, signature=b"@@:s*")


    def signedshortArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andNSPointArg_ = objc.selector(signedshortArg_andNSPointArg_, signature=b"@@:s" + NSPoint_tp)


    def signedshortArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andNSRectArg_ = objc.selector(signedshortArg_andNSRectArg_, signature=b"@@:s" + NSRect_tp)


    def signedshortArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andstructTestStruct1Arg_ = objc.selector(signedshortArg_andstructTestStruct1Arg_, signature=b"@@:s{_TestStruct1=ii[5s]}")


    def signedshortArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andstructTestStruct2Arg_ = objc.selector(signedshortArg_andstructTestStruct2Arg_, signature=b"@@:s{_TestStruct2=id[5s]}")


    def signedshortArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andstructTestStruct3Arg_ = objc.selector(signedshortArg_andstructTestStruct3Arg_, signature=b"@@:s{_TestStruct3=ci}")


    def signedshortArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andstructTestStruct4Arg_ = objc.selector(signedshortArg_andstructTestStruct4Arg_, signature=b"@@:s{_TestStruct4=cq}")


    def signedshortArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedshortArg_andstructTestStruct5Arg_ = objc.selector(signedshortArg_andstructTestStruct5Arg_, signature=b"@@:s{_TestStruct5=cd}")


    def signedintArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andboolArg_ = objc.selector(signedintArg_andboolArg_, signature=b"@@:iB")


    def signedintArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andBOOLArg_ = objc.selector(signedintArg_andBOOLArg_, signature=b"@@:ic")


    def signedintArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andcharArg_ = objc.selector(signedintArg_andcharArg_, signature=b"@@:ic")


    def signedintArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andsignedshortArg_ = objc.selector(signedintArg_andsignedshortArg_, signature=b"@@:is")


    def signedintArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andsignedintArg_ = objc.selector(signedintArg_andsignedintArg_, signature=b"@@:ii")


    def signedintArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andsignedlongArg_ = objc.selector(signedintArg_andsignedlongArg_, signature=b"@@:i" + long_tp)


    def signedintArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andsignedlonglongArg_ = objc.selector(signedintArg_andsignedlonglongArg_, signature=b"@@:iq")


    def signedintArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andunsignedcharArg_ = objc.selector(signedintArg_andunsignedcharArg_, signature=b"@@:iC")


    def signedintArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andunsignedshortArg_ = objc.selector(signedintArg_andunsignedshortArg_, signature=b"@@:iS")


    def signedintArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andunsignedintArg_ = objc.selector(signedintArg_andunsignedintArg_, signature=b"@@:iI")


    def signedintArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andunsignedlongArg_ = objc.selector(signedintArg_andunsignedlongArg_, signature=b"@@:i" + ulong_tp)


    def signedintArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andunsignedlonglongArg_ = objc.selector(signedintArg_andunsignedlonglongArg_, signature=b"@@:iQ")


    def signedintArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andfloatArg_ = objc.selector(signedintArg_andfloatArg_, signature=b"@@:if")


    def signedintArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_anddoubleArg_ = objc.selector(signedintArg_anddoubleArg_, signature=b"@@:id")


    def signedintArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andidArg_ = objc.selector(signedintArg_andidArg_, signature=b"@@:i@")


    def signedintArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    signedintArg_andcharPtrArg_ = objc.selector(signedintArg_andcharPtrArg_, signature=b"@@:i*")


    def signedintArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andNSPointArg_ = objc.selector(signedintArg_andNSPointArg_, signature=b"@@:i" + NSPoint_tp)


    def signedintArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andNSRectArg_ = objc.selector(signedintArg_andNSRectArg_, signature=b"@@:i" + NSRect_tp)


    def signedintArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andstructTestStruct1Arg_ = objc.selector(signedintArg_andstructTestStruct1Arg_, signature=b"@@:i{_TestStruct1=ii[5s]}")


    def signedintArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andstructTestStruct2Arg_ = objc.selector(signedintArg_andstructTestStruct2Arg_, signature=b"@@:i{_TestStruct2=id[5s]}")


    def signedintArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andstructTestStruct3Arg_ = objc.selector(signedintArg_andstructTestStruct3Arg_, signature=b"@@:i{_TestStruct3=ci}")


    def signedintArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andstructTestStruct4Arg_ = objc.selector(signedintArg_andstructTestStruct4Arg_, signature=b"@@:i{_TestStruct4=cq}")


    def signedintArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedintArg_andstructTestStruct5Arg_ = objc.selector(signedintArg_andstructTestStruct5Arg_, signature=b"@@:i{_TestStruct5=cd}")


    def signedlongArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andboolArg_ = objc.selector(signedlongArg_andboolArg_, signature=b"@@:" + long_tp + b"B")


    def signedlongArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andBOOLArg_ = objc.selector(signedlongArg_andBOOLArg_, signature=b"@@:" + long_tp + b"c")


    def signedlongArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andcharArg_ = objc.selector(signedlongArg_andcharArg_, signature=b"@@:" + long_tp + b"c")


    def signedlongArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andsignedshortArg_ = objc.selector(signedlongArg_andsignedshortArg_, signature=b"@@:" + long_tp + b"s")


    def signedlongArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andsignedintArg_ = objc.selector(signedlongArg_andsignedintArg_, signature=b"@@:" + long_tp + b"i")


    def signedlongArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andsignedlongArg_ = objc.selector(signedlongArg_andsignedlongArg_, signature=b"@@:" + long_tp + long_tp)


    def signedlongArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andsignedlonglongArg_ = objc.selector(signedlongArg_andsignedlonglongArg_, signature=b"@@:" + long_tp + b"q")


    def signedlongArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andunsignedcharArg_ = objc.selector(signedlongArg_andunsignedcharArg_, signature=b"@@:" + long_tp + b"C")


    def signedlongArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andunsignedshortArg_ = objc.selector(signedlongArg_andunsignedshortArg_, signature=b"@@:" + long_tp + b"S")


    def signedlongArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andunsignedintArg_ = objc.selector(signedlongArg_andunsignedintArg_, signature=b"@@:" + long_tp + b"I")


    def signedlongArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andunsignedlongArg_ = objc.selector(signedlongArg_andunsignedlongArg_, signature=b"@@:" + long_tp + ulong_tp)


    def signedlongArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andunsignedlonglongArg_ = objc.selector(signedlongArg_andunsignedlonglongArg_, signature=b"@@:" + long_tp + b"Q")


    def signedlongArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andfloatArg_ = objc.selector(signedlongArg_andfloatArg_, signature=b"@@:" + long_tp + b"f")


    def signedlongArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_anddoubleArg_ = objc.selector(signedlongArg_anddoubleArg_, signature=b"@@:" + long_tp + b"d")


    def signedlongArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andidArg_ = objc.selector(signedlongArg_andidArg_, signature=b"@@:" + long_tp + b"@")


    def signedlongArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    signedlongArg_andcharPtrArg_ = objc.selector(signedlongArg_andcharPtrArg_, signature=b"@@:" + long_tp + b"*")


    def signedlongArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andNSPointArg_ = objc.selector(signedlongArg_andNSPointArg_, signature=b"@@:" + long_tp + NSPoint_tp)


    def signedlongArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andNSRectArg_ = objc.selector(signedlongArg_andNSRectArg_, signature=b"@@:" + long_tp + NSRect_tp)


    def signedlongArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andstructTestStruct1Arg_ = objc.selector(signedlongArg_andstructTestStruct1Arg_, signature=b"@@:" + long_tp + b"{_TestStruct1=ii[5s]}")


    def signedlongArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andstructTestStruct2Arg_ = objc.selector(signedlongArg_andstructTestStruct2Arg_, signature=b"@@:" + long_tp + b"{_TestStruct2=id[5s]}")


    def signedlongArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andstructTestStruct3Arg_ = objc.selector(signedlongArg_andstructTestStruct3Arg_, signature=b"@@:" + long_tp + b"{_TestStruct3=ci}")


    def signedlongArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andstructTestStruct4Arg_ = objc.selector(signedlongArg_andstructTestStruct4Arg_, signature=b"@@:" + long_tp + b"{_TestStruct4=cq}")


    def signedlongArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlongArg_andstructTestStruct5Arg_ = objc.selector(signedlongArg_andstructTestStruct5Arg_, signature=b"@@:" + long_tp + b"{_TestStruct5=cd}")


    def signedlonglongArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andboolArg_ = objc.selector(signedlonglongArg_andboolArg_, signature=b"@@:qB")


    def signedlonglongArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andBOOLArg_ = objc.selector(signedlonglongArg_andBOOLArg_, signature=b"@@:qc")


    def signedlonglongArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andcharArg_ = objc.selector(signedlonglongArg_andcharArg_, signature=b"@@:qc")


    def signedlonglongArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andsignedshortArg_ = objc.selector(signedlonglongArg_andsignedshortArg_, signature=b"@@:qs")


    def signedlonglongArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andsignedintArg_ = objc.selector(signedlonglongArg_andsignedintArg_, signature=b"@@:qi")


    def signedlonglongArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andsignedlongArg_ = objc.selector(signedlonglongArg_andsignedlongArg_, signature=b"@@:q" + long_tp)


    def signedlonglongArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andsignedlonglongArg_ = objc.selector(signedlonglongArg_andsignedlonglongArg_, signature=b"@@:qq")


    def signedlonglongArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andunsignedcharArg_ = objc.selector(signedlonglongArg_andunsignedcharArg_, signature=b"@@:qC")


    def signedlonglongArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andunsignedshortArg_ = objc.selector(signedlonglongArg_andunsignedshortArg_, signature=b"@@:qS")


    def signedlonglongArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andunsignedintArg_ = objc.selector(signedlonglongArg_andunsignedintArg_, signature=b"@@:qI")


    def signedlonglongArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andunsignedlongArg_ = objc.selector(signedlonglongArg_andunsignedlongArg_, signature=b"@@:q" + ulong_tp)


    def signedlonglongArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andunsignedlonglongArg_ = objc.selector(signedlonglongArg_andunsignedlonglongArg_, signature=b"@@:qQ")


    def signedlonglongArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andfloatArg_ = objc.selector(signedlonglongArg_andfloatArg_, signature=b"@@:qf")


    def signedlonglongArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_anddoubleArg_ = objc.selector(signedlonglongArg_anddoubleArg_, signature=b"@@:qd")


    def signedlonglongArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andidArg_ = objc.selector(signedlonglongArg_andidArg_, signature=b"@@:q@")


    def signedlonglongArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    signedlonglongArg_andcharPtrArg_ = objc.selector(signedlonglongArg_andcharPtrArg_, signature=b"@@:q*")


    def signedlonglongArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andNSPointArg_ = objc.selector(signedlonglongArg_andNSPointArg_, signature=b"@@:q" + NSPoint_tp)


    def signedlonglongArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andNSRectArg_ = objc.selector(signedlonglongArg_andNSRectArg_, signature=b"@@:q" + NSRect_tp)


    def signedlonglongArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andstructTestStruct1Arg_ = objc.selector(signedlonglongArg_andstructTestStruct1Arg_, signature=b"@@:q{_TestStruct1=ii[5s]}")


    def signedlonglongArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andstructTestStruct2Arg_ = objc.selector(signedlonglongArg_andstructTestStruct2Arg_, signature=b"@@:q{_TestStruct2=id[5s]}")


    def signedlonglongArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andstructTestStruct3Arg_ = objc.selector(signedlonglongArg_andstructTestStruct3Arg_, signature=b"@@:q{_TestStruct3=ci}")


    def signedlonglongArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andstructTestStruct4Arg_ = objc.selector(signedlonglongArg_andstructTestStruct4Arg_, signature=b"@@:q{_TestStruct4=cq}")


    def signedlonglongArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    signedlonglongArg_andstructTestStruct5Arg_ = objc.selector(signedlonglongArg_andstructTestStruct5Arg_, signature=b"@@:q{_TestStruct5=cd}")


    def unsignedcharArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andboolArg_ = objc.selector(unsignedcharArg_andboolArg_, signature=b"@@:CB")


    def unsignedcharArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andBOOLArg_ = objc.selector(unsignedcharArg_andBOOLArg_, signature=b"@@:Cc")


    def unsignedcharArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andcharArg_ = objc.selector(unsignedcharArg_andcharArg_, signature=b"@@:Cc")


    def unsignedcharArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andsignedshortArg_ = objc.selector(unsignedcharArg_andsignedshortArg_, signature=b"@@:Cs")


    def unsignedcharArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andsignedintArg_ = objc.selector(unsignedcharArg_andsignedintArg_, signature=b"@@:Ci")


    def unsignedcharArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andsignedlongArg_ = objc.selector(unsignedcharArg_andsignedlongArg_, signature=b"@@:C" + long_tp)


    def unsignedcharArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andsignedlonglongArg_ = objc.selector(unsignedcharArg_andsignedlonglongArg_, signature=b"@@:Cq")


    def unsignedcharArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andunsignedcharArg_ = objc.selector(unsignedcharArg_andunsignedcharArg_, signature=b"@@:CC")


    def unsignedcharArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andunsignedshortArg_ = objc.selector(unsignedcharArg_andunsignedshortArg_, signature=b"@@:CS")


    def unsignedcharArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andunsignedintArg_ = objc.selector(unsignedcharArg_andunsignedintArg_, signature=b"@@:CI")


    def unsignedcharArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andunsignedlongArg_ = objc.selector(unsignedcharArg_andunsignedlongArg_, signature=b"@@:C" + ulong_tp)


    def unsignedcharArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andunsignedlonglongArg_ = objc.selector(unsignedcharArg_andunsignedlonglongArg_, signature=b"@@:CQ")


    def unsignedcharArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andfloatArg_ = objc.selector(unsignedcharArg_andfloatArg_, signature=b"@@:Cf")


    def unsignedcharArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_anddoubleArg_ = objc.selector(unsignedcharArg_anddoubleArg_, signature=b"@@:Cd")


    def unsignedcharArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andidArg_ = objc.selector(unsignedcharArg_andidArg_, signature=b"@@:C@")


    def unsignedcharArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    unsignedcharArg_andcharPtrArg_ = objc.selector(unsignedcharArg_andcharPtrArg_, signature=b"@@:C*")


    def unsignedcharArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andNSPointArg_ = objc.selector(unsignedcharArg_andNSPointArg_, signature=b"@@:C" + NSPoint_tp)


    def unsignedcharArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andNSRectArg_ = objc.selector(unsignedcharArg_andNSRectArg_, signature=b"@@:C" + NSRect_tp)


    def unsignedcharArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andstructTestStruct1Arg_ = objc.selector(unsignedcharArg_andstructTestStruct1Arg_, signature=b"@@:C{_TestStruct1=ii[5s]}")


    def unsignedcharArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andstructTestStruct2Arg_ = objc.selector(unsignedcharArg_andstructTestStruct2Arg_, signature=b"@@:C{_TestStruct2=id[5s]}")


    def unsignedcharArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andstructTestStruct3Arg_ = objc.selector(unsignedcharArg_andstructTestStruct3Arg_, signature=b"@@:C{_TestStruct3=ci}")


    def unsignedcharArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andstructTestStruct4Arg_ = objc.selector(unsignedcharArg_andstructTestStruct4Arg_, signature=b"@@:C{_TestStruct4=cq}")


    def unsignedcharArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedcharArg_andstructTestStruct5Arg_ = objc.selector(unsignedcharArg_andstructTestStruct5Arg_, signature=b"@@:C{_TestStruct5=cd}")


    def unsignedshortArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andboolArg_ = objc.selector(unsignedshortArg_andboolArg_, signature=b"@@:SB")


    def unsignedshortArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andBOOLArg_ = objc.selector(unsignedshortArg_andBOOLArg_, signature=b"@@:Sc")


    def unsignedshortArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andcharArg_ = objc.selector(unsignedshortArg_andcharArg_, signature=b"@@:Sc")


    def unsignedshortArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andsignedshortArg_ = objc.selector(unsignedshortArg_andsignedshortArg_, signature=b"@@:Ss")


    def unsignedshortArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andsignedintArg_ = objc.selector(unsignedshortArg_andsignedintArg_, signature=b"@@:Si")


    def unsignedshortArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andsignedlongArg_ = objc.selector(unsignedshortArg_andsignedlongArg_, signature=b"@@:S" + long_tp)


    def unsignedshortArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andsignedlonglongArg_ = objc.selector(unsignedshortArg_andsignedlonglongArg_, signature=b"@@:Sq")


    def unsignedshortArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andunsignedcharArg_ = objc.selector(unsignedshortArg_andunsignedcharArg_, signature=b"@@:SC")


    def unsignedshortArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andunsignedshortArg_ = objc.selector(unsignedshortArg_andunsignedshortArg_, signature=b"@@:SS")


    def unsignedshortArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andunsignedintArg_ = objc.selector(unsignedshortArg_andunsignedintArg_, signature=b"@@:SI")


    def unsignedshortArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andunsignedlongArg_ = objc.selector(unsignedshortArg_andunsignedlongArg_, signature=b"@@:S" + ulong_tp)


    def unsignedshortArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andunsignedlonglongArg_ = objc.selector(unsignedshortArg_andunsignedlonglongArg_, signature=b"@@:SQ")


    def unsignedshortArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andfloatArg_ = objc.selector(unsignedshortArg_andfloatArg_, signature=b"@@:Sf")


    def unsignedshortArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_anddoubleArg_ = objc.selector(unsignedshortArg_anddoubleArg_, signature=b"@@:Sd")


    def unsignedshortArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andidArg_ = objc.selector(unsignedshortArg_andidArg_, signature=b"@@:S@")


    def unsignedshortArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    unsignedshortArg_andcharPtrArg_ = objc.selector(unsignedshortArg_andcharPtrArg_, signature=b"@@:S*")


    def unsignedshortArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andNSPointArg_ = objc.selector(unsignedshortArg_andNSPointArg_, signature=b"@@:S" + NSPoint_tp)


    def unsignedshortArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andNSRectArg_ = objc.selector(unsignedshortArg_andNSRectArg_, signature=b"@@:S" + NSRect_tp)


    def unsignedshortArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andstructTestStruct1Arg_ = objc.selector(unsignedshortArg_andstructTestStruct1Arg_, signature=b"@@:S{_TestStruct1=ii[5s]}")


    def unsignedshortArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andstructTestStruct2Arg_ = objc.selector(unsignedshortArg_andstructTestStruct2Arg_, signature=b"@@:S{_TestStruct2=id[5s]}")


    def unsignedshortArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andstructTestStruct3Arg_ = objc.selector(unsignedshortArg_andstructTestStruct3Arg_, signature=b"@@:S{_TestStruct3=ci}")


    def unsignedshortArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andstructTestStruct4Arg_ = objc.selector(unsignedshortArg_andstructTestStruct4Arg_, signature=b"@@:S{_TestStruct4=cq}")


    def unsignedshortArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedshortArg_andstructTestStruct5Arg_ = objc.selector(unsignedshortArg_andstructTestStruct5Arg_, signature=b"@@:S{_TestStruct5=cd}")


    def unsignedintArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andboolArg_ = objc.selector(unsignedintArg_andboolArg_, signature=b"@@:IB")


    def unsignedintArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andBOOLArg_ = objc.selector(unsignedintArg_andBOOLArg_, signature=b"@@:Ic")


    def unsignedintArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andcharArg_ = objc.selector(unsignedintArg_andcharArg_, signature=b"@@:Ic")


    def unsignedintArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andsignedshortArg_ = objc.selector(unsignedintArg_andsignedshortArg_, signature=b"@@:Is")


    def unsignedintArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andsignedintArg_ = objc.selector(unsignedintArg_andsignedintArg_, signature=b"@@:Ii")


    def unsignedintArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andsignedlongArg_ = objc.selector(unsignedintArg_andsignedlongArg_, signature=b"@@:I" + long_tp)


    def unsignedintArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andsignedlonglongArg_ = objc.selector(unsignedintArg_andsignedlonglongArg_, signature=b"@@:Iq")


    def unsignedintArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andunsignedcharArg_ = objc.selector(unsignedintArg_andunsignedcharArg_, signature=b"@@:IC")


    def unsignedintArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andunsignedshortArg_ = objc.selector(unsignedintArg_andunsignedshortArg_, signature=b"@@:IS")


    def unsignedintArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andunsignedintArg_ = objc.selector(unsignedintArg_andunsignedintArg_, signature=b"@@:II")


    def unsignedintArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andunsignedlongArg_ = objc.selector(unsignedintArg_andunsignedlongArg_, signature=b"@@:I" + ulong_tp)


    def unsignedintArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andunsignedlonglongArg_ = objc.selector(unsignedintArg_andunsignedlonglongArg_, signature=b"@@:IQ")


    def unsignedintArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andfloatArg_ = objc.selector(unsignedintArg_andfloatArg_, signature=b"@@:If")


    def unsignedintArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_anddoubleArg_ = objc.selector(unsignedintArg_anddoubleArg_, signature=b"@@:Id")


    def unsignedintArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andidArg_ = objc.selector(unsignedintArg_andidArg_, signature=b"@@:I@")


    def unsignedintArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    unsignedintArg_andcharPtrArg_ = objc.selector(unsignedintArg_andcharPtrArg_, signature=b"@@:I*")


    def unsignedintArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andNSPointArg_ = objc.selector(unsignedintArg_andNSPointArg_, signature=b"@@:I" + NSPoint_tp)


    def unsignedintArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andNSRectArg_ = objc.selector(unsignedintArg_andNSRectArg_, signature=b"@@:I" + NSRect_tp)


    def unsignedintArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andstructTestStruct1Arg_ = objc.selector(unsignedintArg_andstructTestStruct1Arg_, signature=b"@@:I{_TestStruct1=ii[5s]}")


    def unsignedintArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andstructTestStruct2Arg_ = objc.selector(unsignedintArg_andstructTestStruct2Arg_, signature=b"@@:I{_TestStruct2=id[5s]}")


    def unsignedintArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andstructTestStruct3Arg_ = objc.selector(unsignedintArg_andstructTestStruct3Arg_, signature=b"@@:I{_TestStruct3=ci}")


    def unsignedintArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andstructTestStruct4Arg_ = objc.selector(unsignedintArg_andstructTestStruct4Arg_, signature=b"@@:I{_TestStruct4=cq}")


    def unsignedintArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedintArg_andstructTestStruct5Arg_ = objc.selector(unsignedintArg_andstructTestStruct5Arg_, signature=b"@@:I{_TestStruct5=cd}")


    def unsignedlongArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andboolArg_ = objc.selector(unsignedlongArg_andboolArg_, signature=b"@@:" + ulong_tp + b"B")


    def unsignedlongArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andBOOLArg_ = objc.selector(unsignedlongArg_andBOOLArg_, signature=b"@@:" + ulong_tp + b"c")


    def unsignedlongArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andcharArg_ = objc.selector(unsignedlongArg_andcharArg_, signature=b"@@:" + ulong_tp + b"c")


    def unsignedlongArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andsignedshortArg_ = objc.selector(unsignedlongArg_andsignedshortArg_, signature=b"@@:" + ulong_tp + b"s")


    def unsignedlongArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andsignedintArg_ = objc.selector(unsignedlongArg_andsignedintArg_, signature=b"@@:" + ulong_tp + b"i")


    def unsignedlongArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andsignedlongArg_ = objc.selector(unsignedlongArg_andsignedlongArg_, signature=b"@@:" + ulong_tp + long_tp)


    def unsignedlongArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andsignedlonglongArg_ = objc.selector(unsignedlongArg_andsignedlonglongArg_, signature=b"@@:" + ulong_tp + b"q")


    def unsignedlongArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andunsignedcharArg_ = objc.selector(unsignedlongArg_andunsignedcharArg_, signature=b"@@:" + ulong_tp + b"C")


    def unsignedlongArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andunsignedshortArg_ = objc.selector(unsignedlongArg_andunsignedshortArg_, signature=b"@@:" + ulong_tp + b"S")


    def unsignedlongArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andunsignedintArg_ = objc.selector(unsignedlongArg_andunsignedintArg_, signature=b"@@:" + ulong_tp + b"I")


    def unsignedlongArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andunsignedlongArg_ = objc.selector(unsignedlongArg_andunsignedlongArg_, signature=b"@@:" + ulong_tp + ulong_tp)


    def unsignedlongArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andunsignedlonglongArg_ = objc.selector(unsignedlongArg_andunsignedlonglongArg_, signature=b"@@:" + ulong_tp + b"Q")


    def unsignedlongArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andfloatArg_ = objc.selector(unsignedlongArg_andfloatArg_, signature=b"@@:" + ulong_tp + b"f")


    def unsignedlongArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_anddoubleArg_ = objc.selector(unsignedlongArg_anddoubleArg_, signature=b"@@:" + ulong_tp + b"d")


    def unsignedlongArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andidArg_ = objc.selector(unsignedlongArg_andidArg_, signature=b"@@:" + ulong_tp + b"@")


    def unsignedlongArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    unsignedlongArg_andcharPtrArg_ = objc.selector(unsignedlongArg_andcharPtrArg_, signature=b"@@:" + ulong_tp + b"*")


    def unsignedlongArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andNSPointArg_ = objc.selector(unsignedlongArg_andNSPointArg_, signature=b"@@:" + ulong_tp + NSPoint_tp)


    def unsignedlongArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andNSRectArg_ = objc.selector(unsignedlongArg_andNSRectArg_, signature=b"@@:" + ulong_tp +  NSRect_tp)


    def unsignedlongArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andstructTestStruct1Arg_ = objc.selector(unsignedlongArg_andstructTestStruct1Arg_, signature=b"@@:" + ulong_tp + b"{_TestStruct1=ii[5s]}")


    def unsignedlongArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andstructTestStruct2Arg_ = objc.selector(unsignedlongArg_andstructTestStruct2Arg_, signature=b"@@:" + ulong_tp + b"{_TestStruct2=id[5s]}")


    def unsignedlongArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andstructTestStruct3Arg_ = objc.selector(unsignedlongArg_andstructTestStruct3Arg_, signature=b"@@:" + ulong_tp + b"{_TestStruct3=ci}")


    def unsignedlongArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andstructTestStruct4Arg_ = objc.selector(unsignedlongArg_andstructTestStruct4Arg_, signature=b"@@:" + ulong_tp + b"{_TestStruct4=cq}")


    def unsignedlongArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlongArg_andstructTestStruct5Arg_ = objc.selector(unsignedlongArg_andstructTestStruct5Arg_, signature=b"@@:" + ulong_tp + b"{_TestStruct5=cd}")


    def unsignedlonglongArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andboolArg_ = objc.selector(unsignedlonglongArg_andboolArg_, signature=b"@@:QB")


    def unsignedlonglongArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andBOOLArg_ = objc.selector(unsignedlonglongArg_andBOOLArg_, signature=b"@@:Qc")


    def unsignedlonglongArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andcharArg_ = objc.selector(unsignedlonglongArg_andcharArg_, signature=b"@@:Qc")


    def unsignedlonglongArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andsignedshortArg_ = objc.selector(unsignedlonglongArg_andsignedshortArg_, signature=b"@@:Qs")


    def unsignedlonglongArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andsignedintArg_ = objc.selector(unsignedlonglongArg_andsignedintArg_, signature=b"@@:Qi")


    def unsignedlonglongArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andsignedlongArg_ = objc.selector(unsignedlonglongArg_andsignedlongArg_, signature=b"@@:Q" + long_tp)


    def unsignedlonglongArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andsignedlonglongArg_ = objc.selector(unsignedlonglongArg_andsignedlonglongArg_, signature=b"@@:Qq")


    def unsignedlonglongArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andunsignedcharArg_ = objc.selector(unsignedlonglongArg_andunsignedcharArg_, signature=b"@@:QC")


    def unsignedlonglongArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andunsignedshortArg_ = objc.selector(unsignedlonglongArg_andunsignedshortArg_, signature=b"@@:QS")


    def unsignedlonglongArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andunsignedintArg_ = objc.selector(unsignedlonglongArg_andunsignedintArg_, signature=b"@@:QI")


    def unsignedlonglongArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andunsignedlongArg_ = objc.selector(unsignedlonglongArg_andunsignedlongArg_, signature=b"@@:Q" + ulong_tp)


    def unsignedlonglongArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andunsignedlonglongArg_ = objc.selector(unsignedlonglongArg_andunsignedlonglongArg_, signature=b"@@:QQ")


    def unsignedlonglongArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andfloatArg_ = objc.selector(unsignedlonglongArg_andfloatArg_, signature=b"@@:Qf")


    def unsignedlonglongArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_anddoubleArg_ = objc.selector(unsignedlonglongArg_anddoubleArg_, signature=b"@@:Qd")


    def unsignedlonglongArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andidArg_ = objc.selector(unsignedlonglongArg_andidArg_, signature=b"@@:Q@")


    def unsignedlonglongArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    unsignedlonglongArg_andcharPtrArg_ = objc.selector(unsignedlonglongArg_andcharPtrArg_, signature=b"@@:Q*")


    def unsignedlonglongArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andNSPointArg_ = objc.selector(unsignedlonglongArg_andNSPointArg_, signature=b"@@:Q" + NSPoint_tp)


    def unsignedlonglongArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andNSRectArg_ = objc.selector(unsignedlonglongArg_andNSRectArg_, signature=b"@@:Q" + NSRect_tp)


    def unsignedlonglongArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andstructTestStruct1Arg_ = objc.selector(unsignedlonglongArg_andstructTestStruct1Arg_, signature=b"@@:Q{_TestStruct1=ii[5s]}")


    def unsignedlonglongArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andstructTestStruct2Arg_ = objc.selector(unsignedlonglongArg_andstructTestStruct2Arg_, signature=b"@@:Q{_TestStruct2=id[5s]}")


    def unsignedlonglongArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andstructTestStruct3Arg_ = objc.selector(unsignedlonglongArg_andstructTestStruct3Arg_, signature=b"@@:Q{_TestStruct3=ci}")


    def unsignedlonglongArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andstructTestStruct4Arg_ = objc.selector(unsignedlonglongArg_andstructTestStruct4Arg_, signature=b"@@:Q{_TestStruct4=cq}")


    def unsignedlonglongArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    unsignedlonglongArg_andstructTestStruct5Arg_ = objc.selector(unsignedlonglongArg_andstructTestStruct5Arg_, signature=b"@@:Q{_TestStruct5=cd}")


    def floatArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andboolArg_ = objc.selector(floatArg_andboolArg_, signature=b"@@:fB")


    def floatArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andBOOLArg_ = objc.selector(floatArg_andBOOLArg_, signature=b"@@:fc")


    def floatArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andcharArg_ = objc.selector(floatArg_andcharArg_, signature=b"@@:fc")


    def floatArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andsignedshortArg_ = objc.selector(floatArg_andsignedshortArg_, signature=b"@@:fs")


    def floatArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andsignedintArg_ = objc.selector(floatArg_andsignedintArg_, signature=b"@@:fi")


    def floatArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andsignedlongArg_ = objc.selector(floatArg_andsignedlongArg_, signature=b"@@:f" + long_tp)


    def floatArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andsignedlonglongArg_ = objc.selector(floatArg_andsignedlonglongArg_, signature=b"@@:fq")


    def floatArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andunsignedcharArg_ = objc.selector(floatArg_andunsignedcharArg_, signature=b"@@:fC")


    def floatArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andunsignedshortArg_ = objc.selector(floatArg_andunsignedshortArg_, signature=b"@@:fS")


    def floatArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andunsignedintArg_ = objc.selector(floatArg_andunsignedintArg_, signature=b"@@:fI")


    def floatArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andunsignedlongArg_ = objc.selector(floatArg_andunsignedlongArg_, signature=b"@@:f" + ulong_tp)


    def floatArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andunsignedlonglongArg_ = objc.selector(floatArg_andunsignedlonglongArg_, signature=b"@@:fQ")


    def floatArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andfloatArg_ = objc.selector(floatArg_andfloatArg_, signature=b"@@:ff")


    def floatArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_anddoubleArg_ = objc.selector(floatArg_anddoubleArg_, signature=b"@@:fd")


    def floatArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andidArg_ = objc.selector(floatArg_andidArg_, signature=b"@@:f@")


    def floatArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    floatArg_andcharPtrArg_ = objc.selector(floatArg_andcharPtrArg_, signature=b"@@:f*")


    def floatArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andNSPointArg_ = objc.selector(floatArg_andNSPointArg_, signature=b"@@:f" + NSPoint_tp)


    def floatArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andNSRectArg_ = objc.selector(floatArg_andNSRectArg_, signature=b"@@:f" + NSRect_tp)


    def floatArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andstructTestStruct1Arg_ = objc.selector(floatArg_andstructTestStruct1Arg_, signature=b"@@:f{_TestStruct1=ii[5s]}")


    def floatArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andstructTestStruct2Arg_ = objc.selector(floatArg_andstructTestStruct2Arg_, signature=b"@@:f{_TestStruct2=id[5s]}")


    def floatArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andstructTestStruct3Arg_ = objc.selector(floatArg_andstructTestStruct3Arg_, signature=b"@@:f{_TestStruct3=ci}")


    def floatArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andstructTestStruct4Arg_ = objc.selector(floatArg_andstructTestStruct4Arg_, signature=b"@@:f{_TestStruct4=cq}")


    def floatArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    floatArg_andstructTestStruct5Arg_ = objc.selector(floatArg_andstructTestStruct5Arg_, signature=b"@@:f{_TestStruct5=cd}")


    def doubleArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andboolArg_ = objc.selector(doubleArg_andboolArg_, signature=b"@@:dB")


    def doubleArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andBOOLArg_ = objc.selector(doubleArg_andBOOLArg_, signature=b"@@:dc")


    def doubleArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andcharArg_ = objc.selector(doubleArg_andcharArg_, signature=b"@@:dc")


    def doubleArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andsignedshortArg_ = objc.selector(doubleArg_andsignedshortArg_, signature=b"@@:ds")


    def doubleArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andsignedintArg_ = objc.selector(doubleArg_andsignedintArg_, signature=b"@@:di")


    def doubleArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andsignedlongArg_ = objc.selector(doubleArg_andsignedlongArg_, signature=b"@@:d" + long_tp)


    def doubleArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andsignedlonglongArg_ = objc.selector(doubleArg_andsignedlonglongArg_, signature=b"@@:dq")


    def doubleArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andunsignedcharArg_ = objc.selector(doubleArg_andunsignedcharArg_, signature=b"@@:dC")


    def doubleArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andunsignedshortArg_ = objc.selector(doubleArg_andunsignedshortArg_, signature=b"@@:dS")


    def doubleArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andunsignedintArg_ = objc.selector(doubleArg_andunsignedintArg_, signature=b"@@:dI")


    def doubleArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andunsignedlongArg_ = objc.selector(doubleArg_andunsignedlongArg_, signature=b"@@:d" + ulong_tp)


    def doubleArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andunsignedlonglongArg_ = objc.selector(doubleArg_andunsignedlonglongArg_, signature=b"@@:dQ")


    def doubleArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andfloatArg_ = objc.selector(doubleArg_andfloatArg_, signature=b"@@:df")


    def doubleArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_anddoubleArg_ = objc.selector(doubleArg_anddoubleArg_, signature=b"@@:dd")


    def doubleArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andidArg_ = objc.selector(doubleArg_andidArg_, signature=b"@@:d@")


    def doubleArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    doubleArg_andcharPtrArg_ = objc.selector(doubleArg_andcharPtrArg_, signature=b"@@:d*")


    def doubleArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andNSPointArg_ = objc.selector(doubleArg_andNSPointArg_, signature=b"@@:d" + NSPoint_tp)


    def doubleArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andNSRectArg_ = objc.selector(doubleArg_andNSRectArg_, signature=b"@@:d" + NSRect_tp)


    def doubleArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andstructTestStruct1Arg_ = objc.selector(doubleArg_andstructTestStruct1Arg_, signature=b"@@:d{_TestStruct1=ii[5s]}")


    def doubleArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andstructTestStruct2Arg_ = objc.selector(doubleArg_andstructTestStruct2Arg_, signature=b"@@:d{_TestStruct2=id[5s]}")


    def doubleArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andstructTestStruct3Arg_ = objc.selector(doubleArg_andstructTestStruct3Arg_, signature=b"@@:d{_TestStruct3=ci}")


    def doubleArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andstructTestStruct4Arg_ = objc.selector(doubleArg_andstructTestStruct4Arg_, signature=b"@@:d{_TestStruct4=cq}")


    def doubleArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    doubleArg_andstructTestStruct5Arg_ = objc.selector(doubleArg_andstructTestStruct5Arg_, signature=b"@@:d{_TestStruct5=cd}")


    def idArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andboolArg_ = objc.selector(idArg_andboolArg_, signature=b"@@:@B")


    def idArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andBOOLArg_ = objc.selector(idArg_andBOOLArg_, signature=b"@@:@c")


    def idArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andcharArg_ = objc.selector(idArg_andcharArg_, signature=b"@@:@c")


    def idArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andsignedshortArg_ = objc.selector(idArg_andsignedshortArg_, signature=b"@@:@s")


    def idArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andsignedintArg_ = objc.selector(idArg_andsignedintArg_, signature=b"@@:@i")


    def idArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andsignedlongArg_ = objc.selector(idArg_andsignedlongArg_, signature=b"@@:@" + long_tp)


    def idArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andsignedlonglongArg_ = objc.selector(idArg_andsignedlonglongArg_, signature=b"@@:@q")


    def idArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andunsignedcharArg_ = objc.selector(idArg_andunsignedcharArg_, signature=b"@@:@C")


    def idArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andunsignedshortArg_ = objc.selector(idArg_andunsignedshortArg_, signature=b"@@:@S")


    def idArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andunsignedintArg_ = objc.selector(idArg_andunsignedintArg_, signature=b"@@:@I")


    def idArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andunsignedlongArg_ = objc.selector(idArg_andunsignedlongArg_, signature=b"@@:@" + ulong_tp)


    def idArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andunsignedlonglongArg_ = objc.selector(idArg_andunsignedlonglongArg_, signature=b"@@:@Q")


    def idArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andfloatArg_ = objc.selector(idArg_andfloatArg_, signature=b"@@:@f")


    def idArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_anddoubleArg_ = objc.selector(idArg_anddoubleArg_, signature=b"@@:@d")


    def idArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andidArg_ = objc.selector(idArg_andidArg_, signature=b"@@:@@")


    def idArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    idArg_andcharPtrArg_ = objc.selector(idArg_andcharPtrArg_, signature=b"@@:@*")


    def idArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andNSPointArg_ = objc.selector(idArg_andNSPointArg_, signature=b"@@:@" + NSPoint_tp)


    def idArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andNSRectArg_ = objc.selector(idArg_andNSRectArg_, signature=b"@@:@" + NSRect_tp)


    def idArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andstructTestStruct1Arg_ = objc.selector(idArg_andstructTestStruct1Arg_, signature=b"@@:@{_TestStruct1=ii[5s]}")


    def idArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andstructTestStruct2Arg_ = objc.selector(idArg_andstructTestStruct2Arg_, signature=b"@@:@{_TestStruct2=id[5s]}")


    def idArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andstructTestStruct3Arg_ = objc.selector(idArg_andstructTestStruct3Arg_, signature=b"@@:@{_TestStruct3=ci}")


    def idArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andstructTestStruct4Arg_ = objc.selector(idArg_andstructTestStruct4Arg_, signature=b"@@:@{_TestStruct4=cq}")


    def idArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    idArg_andstructTestStruct5Arg_ = objc.selector(idArg_andstructTestStruct5Arg_, signature=b"@@:@{_TestStruct5=cd}")


    def charPtrArg_andboolArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andboolArg_ = objc.selector(charPtrArg_andboolArg_, signature=b"@@:*B")


    def charPtrArg_andBOOLArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andBOOLArg_ = objc.selector(charPtrArg_andBOOLArg_, signature=b"@@:*c")


    def charPtrArg_andcharArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andcharArg_ = objc.selector(charPtrArg_andcharArg_, signature=b"@@:*c")


    def charPtrArg_andsignedshortArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andsignedshortArg_ = objc.selector(charPtrArg_andsignedshortArg_, signature=b"@@:*s")


    def charPtrArg_andsignedintArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andsignedintArg_ = objc.selector(charPtrArg_andsignedintArg_, signature=b"@@:*i")


    def charPtrArg_andsignedlongArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andsignedlongArg_ = objc.selector(charPtrArg_andsignedlongArg_, signature=b"@@:*" + long_tp)


    def charPtrArg_andsignedlonglongArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andsignedlonglongArg_ = objc.selector(charPtrArg_andsignedlonglongArg_, signature=b"@@:*q")


    def charPtrArg_andunsignedcharArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andunsignedcharArg_ = objc.selector(charPtrArg_andunsignedcharArg_, signature=b"@@:*C")


    def charPtrArg_andunsignedshortArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andunsignedshortArg_ = objc.selector(charPtrArg_andunsignedshortArg_, signature=b"@@:*S")


    def charPtrArg_andunsignedintArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andunsignedintArg_ = objc.selector(charPtrArg_andunsignedintArg_, signature=b"@@:*I")


    def charPtrArg_andunsignedlongArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andunsignedlongArg_ = objc.selector(charPtrArg_andunsignedlongArg_, signature=b"@@:*" + ulong_tp)


    def charPtrArg_andunsignedlonglongArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andunsignedlonglongArg_ = objc.selector(charPtrArg_andunsignedlonglongArg_, signature=b"@@:*Q")


    def charPtrArg_andfloatArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andfloatArg_ = objc.selector(charPtrArg_andfloatArg_, signature=b"@@:*f")


    def charPtrArg_anddoubleArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_anddoubleArg_ = objc.selector(charPtrArg_anddoubleArg_, signature=b"@@:*d")


    def charPtrArg_andidArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andidArg_ = objc.selector(charPtrArg_andidArg_, signature=b"@@:*@")


    def charPtrArg_andcharPtrArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    charPtrArg_andcharPtrArg_ = objc.selector(charPtrArg_andcharPtrArg_, signature=b"@@:**")


    def charPtrArg_andNSPointArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andNSPointArg_ = objc.selector(charPtrArg_andNSPointArg_, signature=b"@@:*" + NSPoint_tp)


    def charPtrArg_andNSRectArg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andNSRectArg_ = objc.selector(charPtrArg_andNSRectArg_, signature=b"@@:*" + NSRect_tp)


    def charPtrArg_andstructTestStruct1Arg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andstructTestStruct1Arg_ = objc.selector(charPtrArg_andstructTestStruct1Arg_, signature=b"@@:*{_TestStruct1=ii[5s]}")


    def charPtrArg_andstructTestStruct2Arg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andstructTestStruct2Arg_ = objc.selector(charPtrArg_andstructTestStruct2Arg_, signature=b"@@:*{_TestStruct2=id[5s]}")


    def charPtrArg_andstructTestStruct3Arg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andstructTestStruct3Arg_ = objc.selector(charPtrArg_andstructTestStruct3Arg_, signature=b"@@:*{_TestStruct3=ci}")


    def charPtrArg_andstructTestStruct4Arg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andstructTestStruct4Arg_ = objc.selector(charPtrArg_andstructTestStruct4Arg_, signature=b"@@:*{_TestStruct4=cq}")


    def charPtrArg_andstructTestStruct5Arg_(self, arg1, arg2):
        arg1 = unicode(arg1)
        return [ arg1, arg2 ]
    charPtrArg_andstructTestStruct5Arg_ = objc.selector(charPtrArg_andstructTestStruct5Arg_, signature=b"@@:*{_TestStruct5=cd}")


    def NSPointArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andboolArg_ = objc.selector(NSPointArg_andboolArg_, signature=b"@@:" + NSPoint_tp + b"B")


    def NSPointArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andBOOLArg_ = objc.selector(NSPointArg_andBOOLArg_, signature=b"@@:" + NSPoint_tp + b"c")


    def NSPointArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andcharArg_ = objc.selector(NSPointArg_andcharArg_, signature=b"@@:" + NSPoint_tp + b"c")


    def NSPointArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andsignedshortArg_ = objc.selector(NSPointArg_andsignedshortArg_, signature=b"@@:" + NSPoint_tp + b"s")


    def NSPointArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andsignedintArg_ = objc.selector(NSPointArg_andsignedintArg_, signature=b"@@:" + NSPoint_tp + b"i")


    def NSPointArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andsignedlongArg_ = objc.selector(NSPointArg_andsignedlongArg_, signature=b"@@:" + NSPoint_tp + long_tp)


    def NSPointArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andsignedlonglongArg_ = objc.selector(NSPointArg_andsignedlonglongArg_, signature=b"@@:" + NSPoint_tp + b"q")


    def NSPointArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andunsignedcharArg_ = objc.selector(NSPointArg_andunsignedcharArg_, signature=b"@@:" + NSPoint_tp + b"C")


    def NSPointArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andunsignedshortArg_ = objc.selector(NSPointArg_andunsignedshortArg_, signature=b"@@:" + NSPoint_tp + b"S")


    def NSPointArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andunsignedintArg_ = objc.selector(NSPointArg_andunsignedintArg_, signature=b"@@:" + NSPoint_tp + b"I")


    def NSPointArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andunsignedlongArg_ = objc.selector(NSPointArg_andunsignedlongArg_, signature=b"@@:" + NSPoint_tp + ulong_tp)


    def NSPointArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andunsignedlonglongArg_ = objc.selector(NSPointArg_andunsignedlonglongArg_, signature=b"@@:" + NSPoint_tp + b"Q")


    def NSPointArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andfloatArg_ = objc.selector(NSPointArg_andfloatArg_, signature=b"@@:" + NSPoint_tp + b"f")


    def NSPointArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_anddoubleArg_ = objc.selector(NSPointArg_anddoubleArg_, signature=b"@@:" + NSPoint_tp + b"d")


    def NSPointArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andidArg_ = objc.selector(NSPointArg_andidArg_, signature=b"@@:" + NSPoint_tp + b"@")


    def NSPointArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    NSPointArg_andcharPtrArg_ = objc.selector(NSPointArg_andcharPtrArg_, signature=b"@@:" + NSPoint_tp + b"*")


    def NSPointArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andNSPointArg_ = objc.selector(NSPointArg_andNSPointArg_, signature=b"@@:" + NSPoint_tp + NSPoint_tp)


    def NSPointArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andNSRectArg_ = objc.selector(NSPointArg_andNSRectArg_, signature=b"@@:" + NSPoint_tp + NSRect_tp)


    def NSPointArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andstructTestStruct1Arg_ = objc.selector(NSPointArg_andstructTestStruct1Arg_, signature=b"@@:" + NSPoint_tp + b"{_TestStruct1=ii[5s]}")


    def NSPointArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andstructTestStruct2Arg_ = objc.selector(NSPointArg_andstructTestStruct2Arg_, signature=b"@@:" + NSPoint_tp + b"{_TestStruct2=id[5s]}")


    def NSPointArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andstructTestStruct3Arg_ = objc.selector(NSPointArg_andstructTestStruct3Arg_, signature=b"@@:" + NSPoint_tp + b"{_TestStruct3=ci}")


    def NSPointArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andstructTestStruct4Arg_ = objc.selector(NSPointArg_andstructTestStruct4Arg_, signature=b"@@:" + NSPoint_tp + b"{_TestStruct4=cq}")


    def NSPointArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSPointArg_andstructTestStruct5Arg_ = objc.selector(NSPointArg_andstructTestStruct5Arg_, signature=b"@@:" + NSPoint_tp + b"{_TestStruct5=cd}")


    def NSRectArg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andboolArg_ = objc.selector(NSRectArg_andboolArg_, signature=b"@@:" + NSRect_tp + b"B")


    def NSRectArg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andBOOLArg_ = objc.selector(NSRectArg_andBOOLArg_, signature=b"@@:" + NSRect_tp + b"c")


    def NSRectArg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andcharArg_ = objc.selector(NSRectArg_andcharArg_, signature=b"@@:" + NSRect_tp + b"c")


    def NSRectArg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andsignedshortArg_ = objc.selector(NSRectArg_andsignedshortArg_, signature=b"@@:" + NSRect_tp + b"s")


    def NSRectArg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andsignedintArg_ = objc.selector(NSRectArg_andsignedintArg_, signature=b"@@:" + NSRect_tp + b"i")


    def NSRectArg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andsignedlongArg_ = objc.selector(NSRectArg_andsignedlongArg_, signature=b"@@:" + NSRect_tp + long_tp)


    def NSRectArg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andsignedlonglongArg_ = objc.selector(NSRectArg_andsignedlonglongArg_, signature=b"@@:" + NSRect_tp + b"q")


    def NSRectArg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andunsignedcharArg_ = objc.selector(NSRectArg_andunsignedcharArg_, signature=b"@@:" + NSRect_tp + b"C")


    def NSRectArg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andunsignedshortArg_ = objc.selector(NSRectArg_andunsignedshortArg_, signature=b"@@:" + NSRect_tp + b"S")


    def NSRectArg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andunsignedintArg_ = objc.selector(NSRectArg_andunsignedintArg_, signature=b"@@:" + NSRect_tp + b"I")


    def NSRectArg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andunsignedlongArg_ = objc.selector(NSRectArg_andunsignedlongArg_, signature=b"@@:" + NSRect_tp + ulong_tp)


    def NSRectArg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andunsignedlonglongArg_ = objc.selector(NSRectArg_andunsignedlonglongArg_, signature=b"@@:" + NSRect_tp + b"Q")


    def NSRectArg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andfloatArg_ = objc.selector(NSRectArg_andfloatArg_, signature=b"@@:" + NSRect_tp + b"f")


    def NSRectArg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_anddoubleArg_ = objc.selector(NSRectArg_anddoubleArg_, signature=b"@@:" + NSRect_tp + b"d")


    def NSRectArg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andidArg_ = objc.selector(NSRectArg_andidArg_, signature=b"@@:" + NSRect_tp + b"@")


    def NSRectArg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    NSRectArg_andcharPtrArg_ = objc.selector(NSRectArg_andcharPtrArg_, signature=b"@@:" + NSRect_tp + b"*")


    def NSRectArg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andNSPointArg_ = objc.selector(NSRectArg_andNSPointArg_, signature=b"@@:" + NSRect_tp + NSPoint_tp)


    def NSRectArg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andNSRectArg_ = objc.selector(NSRectArg_andNSRectArg_, signature=b"@@:" + NSRect_tp + NSRect_tp)


    def NSRectArg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andstructTestStruct1Arg_ = objc.selector(NSRectArg_andstructTestStruct1Arg_, signature=b"@@:" + NSRect_tp + b"{_TestStruct1=ii[5s]}")


    def NSRectArg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andstructTestStruct2Arg_ = objc.selector(NSRectArg_andstructTestStruct2Arg_, signature=b"@@:" + NSRect_tp + b"{_TestStruct2=id[5s]}")


    def NSRectArg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andstructTestStruct3Arg_ = objc.selector(NSRectArg_andstructTestStruct3Arg_, signature=b"@@:" + NSRect_tp + b"{_TestStruct3=ci}")


    def NSRectArg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andstructTestStruct4Arg_ = objc.selector(NSRectArg_andstructTestStruct4Arg_, signature=b"@@:" + NSRect_tp + b"{_TestStruct4=cq}")


    def NSRectArg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    NSRectArg_andstructTestStruct5Arg_ = objc.selector(NSRectArg_andstructTestStruct5Arg_, signature=b"@@:" + NSRect_tp + b"{_TestStruct5=cd}")


    def structTestStruct1Arg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andboolArg_ = objc.selector(structTestStruct1Arg_andboolArg_, signature=b"@@:{_TestStruct1=ii[5s]}B")


    def structTestStruct1Arg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andBOOLArg_ = objc.selector(structTestStruct1Arg_andBOOLArg_, signature=b"@@:{_TestStruct1=ii[5s]}c")


    def structTestStruct1Arg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andcharArg_ = objc.selector(structTestStruct1Arg_andcharArg_, signature=b"@@:{_TestStruct1=ii[5s]}c")


    def structTestStruct1Arg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andsignedshortArg_ = objc.selector(structTestStruct1Arg_andsignedshortArg_, signature=b"@@:{_TestStruct1=ii[5s]}s")


    def structTestStruct1Arg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andsignedintArg_ = objc.selector(structTestStruct1Arg_andsignedintArg_, signature=b"@@:{_TestStruct1=ii[5s]}i")


    def structTestStruct1Arg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andsignedlongArg_ = objc.selector(structTestStruct1Arg_andsignedlongArg_, signature=b"@@:{_TestStruct1=ii[5s]}" + long_tp)


    def structTestStruct1Arg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andsignedlonglongArg_ = objc.selector(structTestStruct1Arg_andsignedlonglongArg_, signature=b"@@:{_TestStruct1=ii[5s]}q")


    def structTestStruct1Arg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andunsignedcharArg_ = objc.selector(structTestStruct1Arg_andunsignedcharArg_, signature=b"@@:{_TestStruct1=ii[5s]}C")


    def structTestStruct1Arg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andunsignedshortArg_ = objc.selector(structTestStruct1Arg_andunsignedshortArg_, signature=b"@@:{_TestStruct1=ii[5s]}S")


    def structTestStruct1Arg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andunsignedintArg_ = objc.selector(structTestStruct1Arg_andunsignedintArg_, signature=b"@@:{_TestStruct1=ii[5s]}I")


    def structTestStruct1Arg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andunsignedlongArg_ = objc.selector(structTestStruct1Arg_andunsignedlongArg_, signature=b"@@:{_TestStruct1=ii[5s]}" + ulong_tp)


    def structTestStruct1Arg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andunsignedlonglongArg_ = objc.selector(structTestStruct1Arg_andunsignedlonglongArg_, signature=b"@@:{_TestStruct1=ii[5s]}Q")


    def structTestStruct1Arg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andfloatArg_ = objc.selector(structTestStruct1Arg_andfloatArg_, signature=b"@@:{_TestStruct1=ii[5s]}f")


    def structTestStruct1Arg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_anddoubleArg_ = objc.selector(structTestStruct1Arg_anddoubleArg_, signature=b"@@:{_TestStruct1=ii[5s]}d")


    def structTestStruct1Arg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andidArg_ = objc.selector(structTestStruct1Arg_andidArg_, signature=b"@@:{_TestStruct1=ii[5s]}@")


    def structTestStruct1Arg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    structTestStruct1Arg_andcharPtrArg_ = objc.selector(structTestStruct1Arg_andcharPtrArg_, signature=b"@@:{_TestStruct1=ii[5s]}*")


    def structTestStruct1Arg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andNSPointArg_ = objc.selector(structTestStruct1Arg_andNSPointArg_, signature=b"@@:{_TestStruct1=ii[5s]}" + NSPoint_tp)


    def structTestStruct1Arg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andNSRectArg_ = objc.selector(structTestStruct1Arg_andNSRectArg_, signature=b"@@:{_TestStruct1=ii[5s]}" + NSRect_tp)


    def structTestStruct1Arg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andstructTestStruct1Arg_ = objc.selector(structTestStruct1Arg_andstructTestStruct1Arg_, signature=b"@@:{_TestStruct1=ii[5s]}{_TestStruct1=ii[5s]}")


    def structTestStruct1Arg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andstructTestStruct2Arg_ = objc.selector(structTestStruct1Arg_andstructTestStruct2Arg_, signature=b"@@:{_TestStruct1=ii[5s]}{_TestStruct2=id[5s]}")


    def structTestStruct1Arg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andstructTestStruct3Arg_ = objc.selector(structTestStruct1Arg_andstructTestStruct3Arg_, signature=b"@@:{_TestStruct1=ii[5s]}{_TestStruct3=ci}")


    def structTestStruct1Arg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andstructTestStruct4Arg_ = objc.selector(structTestStruct1Arg_andstructTestStruct4Arg_, signature=b"@@:{_TestStruct1=ii[5s]}{_TestStruct4=cq}")


    def structTestStruct1Arg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct1Arg_andstructTestStruct5Arg_ = objc.selector(structTestStruct1Arg_andstructTestStruct5Arg_, signature=b"@@:{_TestStruct1=ii[5s]}{_TestStruct5=cd}")


    def structTestStruct2Arg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andboolArg_ = objc.selector(structTestStruct2Arg_andboolArg_, signature=b"@@:{_TestStruct2=id[5s]}B")


    def structTestStruct2Arg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andBOOLArg_ = objc.selector(structTestStruct2Arg_andBOOLArg_, signature=b"@@:{_TestStruct2=id[5s]}c")


    def structTestStruct2Arg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andcharArg_ = objc.selector(structTestStruct2Arg_andcharArg_, signature=b"@@:{_TestStruct2=id[5s]}c")


    def structTestStruct2Arg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andsignedshortArg_ = objc.selector(structTestStruct2Arg_andsignedshortArg_, signature=b"@@:{_TestStruct2=id[5s]}s")


    def structTestStruct2Arg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andsignedintArg_ = objc.selector(structTestStruct2Arg_andsignedintArg_, signature=b"@@:{_TestStruct2=id[5s]}i")


    def structTestStruct2Arg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andsignedlongArg_ = objc.selector(structTestStruct2Arg_andsignedlongArg_, signature=b"@@:{_TestStruct2=id[5s]}" + long_tp)


    def structTestStruct2Arg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andsignedlonglongArg_ = objc.selector(structTestStruct2Arg_andsignedlonglongArg_, signature=b"@@:{_TestStruct2=id[5s]}q")


    def structTestStruct2Arg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andunsignedcharArg_ = objc.selector(structTestStruct2Arg_andunsignedcharArg_, signature=b"@@:{_TestStruct2=id[5s]}C")


    def structTestStruct2Arg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andunsignedshortArg_ = objc.selector(structTestStruct2Arg_andunsignedshortArg_, signature=b"@@:{_TestStruct2=id[5s]}S")


    def structTestStruct2Arg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andunsignedintArg_ = objc.selector(structTestStruct2Arg_andunsignedintArg_, signature=b"@@:{_TestStruct2=id[5s]}I")


    def structTestStruct2Arg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andunsignedlongArg_ = objc.selector(structTestStruct2Arg_andunsignedlongArg_, signature=b"@@:{_TestStruct2=id[5s]}" + ulong_tp)


    def structTestStruct2Arg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andunsignedlonglongArg_ = objc.selector(structTestStruct2Arg_andunsignedlonglongArg_, signature=b"@@:{_TestStruct2=id[5s]}Q")


    def structTestStruct2Arg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andfloatArg_ = objc.selector(structTestStruct2Arg_andfloatArg_, signature=b"@@:{_TestStruct2=id[5s]}f")


    def structTestStruct2Arg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_anddoubleArg_ = objc.selector(structTestStruct2Arg_anddoubleArg_, signature=b"@@:{_TestStruct2=id[5s]}d")


    def structTestStruct2Arg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andidArg_ = objc.selector(structTestStruct2Arg_andidArg_, signature=b"@@:{_TestStruct2=id[5s]}@")


    def structTestStruct2Arg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    structTestStruct2Arg_andcharPtrArg_ = objc.selector(structTestStruct2Arg_andcharPtrArg_, signature=b"@@:{_TestStruct2=id[5s]}*")


    def structTestStruct2Arg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andNSPointArg_ = objc.selector(structTestStruct2Arg_andNSPointArg_, signature=b"@@:{_TestStruct2=id[5s]}" + NSPoint_tp)


    def structTestStruct2Arg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andNSRectArg_ = objc.selector(structTestStruct2Arg_andNSRectArg_, signature=b"@@:{_TestStruct2=id[5s]}" + NSRect_tp)


    def structTestStruct2Arg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andstructTestStruct1Arg_ = objc.selector(structTestStruct2Arg_andstructTestStruct1Arg_, signature=b"@@:{_TestStruct2=id[5s]}{_TestStruct1=ii[5s]}")


    def structTestStruct2Arg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andstructTestStruct2Arg_ = objc.selector(structTestStruct2Arg_andstructTestStruct2Arg_, signature=b"@@:{_TestStruct2=id[5s]}{_TestStruct2=id[5s]}")


    def structTestStruct2Arg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andstructTestStruct3Arg_ = objc.selector(structTestStruct2Arg_andstructTestStruct3Arg_, signature=b"@@:{_TestStruct2=id[5s]}{_TestStruct3=ci}")


    def structTestStruct2Arg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andstructTestStruct4Arg_ = objc.selector(structTestStruct2Arg_andstructTestStruct4Arg_, signature=b"@@:{_TestStruct2=id[5s]}{_TestStruct4=cq}")


    def structTestStruct2Arg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct2Arg_andstructTestStruct5Arg_ = objc.selector(structTestStruct2Arg_andstructTestStruct5Arg_, signature=b"@@:{_TestStruct2=id[5s]}{_TestStruct5=cd}")


    def structTestStruct3Arg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andboolArg_ = objc.selector(structTestStruct3Arg_andboolArg_, signature=b"@@:{_TestStruct3=ci}B")


    def structTestStruct3Arg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andBOOLArg_ = objc.selector(structTestStruct3Arg_andBOOLArg_, signature=b"@@:{_TestStruct3=ci}c")


    def structTestStruct3Arg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andcharArg_ = objc.selector(structTestStruct3Arg_andcharArg_, signature=b"@@:{_TestStruct3=ci}c")


    def structTestStruct3Arg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andsignedshortArg_ = objc.selector(structTestStruct3Arg_andsignedshortArg_, signature=b"@@:{_TestStruct3=ci}s")


    def structTestStruct3Arg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andsignedintArg_ = objc.selector(structTestStruct3Arg_andsignedintArg_, signature=b"@@:{_TestStruct3=ci}i")


    def structTestStruct3Arg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andsignedlongArg_ = objc.selector(structTestStruct3Arg_andsignedlongArg_, signature=b"@@:{_TestStruct3=ci}" + long_tp)


    def structTestStruct3Arg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andsignedlonglongArg_ = objc.selector(structTestStruct3Arg_andsignedlonglongArg_, signature=b"@@:{_TestStruct3=ci}q")


    def structTestStruct3Arg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andunsignedcharArg_ = objc.selector(structTestStruct3Arg_andunsignedcharArg_, signature=b"@@:{_TestStruct3=ci}C")


    def structTestStruct3Arg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andunsignedshortArg_ = objc.selector(structTestStruct3Arg_andunsignedshortArg_, signature=b"@@:{_TestStruct3=ci}S")


    def structTestStruct3Arg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andunsignedintArg_ = objc.selector(structTestStruct3Arg_andunsignedintArg_, signature=b"@@:{_TestStruct3=ci}I")


    def structTestStruct3Arg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andunsignedlongArg_ = objc.selector(structTestStruct3Arg_andunsignedlongArg_, signature=b"@@:{_TestStruct3=ci}" + ulong_tp)


    def structTestStruct3Arg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andunsignedlonglongArg_ = objc.selector(structTestStruct3Arg_andunsignedlonglongArg_, signature=b"@@:{_TestStruct3=ci}Q")


    def structTestStruct3Arg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andfloatArg_ = objc.selector(structTestStruct3Arg_andfloatArg_, signature=b"@@:{_TestStruct3=ci}f")


    def structTestStruct3Arg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_anddoubleArg_ = objc.selector(structTestStruct3Arg_anddoubleArg_, signature=b"@@:{_TestStruct3=ci}d")


    def structTestStruct3Arg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andidArg_ = objc.selector(structTestStruct3Arg_andidArg_, signature=b"@@:{_TestStruct3=ci}@")


    def structTestStruct3Arg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    structTestStruct3Arg_andcharPtrArg_ = objc.selector(structTestStruct3Arg_andcharPtrArg_, signature=b"@@:{_TestStruct3=ci}*")


    def structTestStruct3Arg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andNSPointArg_ = objc.selector(structTestStruct3Arg_andNSPointArg_, signature=b"@@:{_TestStruct3=ci}" + NSPoint_tp)


    def structTestStruct3Arg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andNSRectArg_ = objc.selector(structTestStruct3Arg_andNSRectArg_, signature=b"@@:{_TestStruct3=ci}" + NSRect_tp)


    def structTestStruct3Arg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andstructTestStruct1Arg_ = objc.selector(structTestStruct3Arg_andstructTestStruct1Arg_, signature=b"@@:{_TestStruct3=ci}{_TestStruct1=ii[5s]}")


    def structTestStruct3Arg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andstructTestStruct2Arg_ = objc.selector(structTestStruct3Arg_andstructTestStruct2Arg_, signature=b"@@:{_TestStruct3=ci}{_TestStruct2=id[5s]}")


    def structTestStruct3Arg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andstructTestStruct3Arg_ = objc.selector(structTestStruct3Arg_andstructTestStruct3Arg_, signature=b"@@:{_TestStruct3=ci}{_TestStruct3=ci}")


    def structTestStruct3Arg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andstructTestStruct4Arg_ = objc.selector(structTestStruct3Arg_andstructTestStruct4Arg_, signature=b"@@:{_TestStruct3=ci}{_TestStruct4=cq}")


    def structTestStruct3Arg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct3Arg_andstructTestStruct5Arg_ = objc.selector(structTestStruct3Arg_andstructTestStruct5Arg_, signature=b"@@:{_TestStruct3=ci}{_TestStruct5=cd}")


    def structTestStruct4Arg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andboolArg_ = objc.selector(structTestStruct4Arg_andboolArg_, signature=b"@@:{_TestStruct4=cq}B")


    def structTestStruct4Arg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andBOOLArg_ = objc.selector(structTestStruct4Arg_andBOOLArg_, signature=b"@@:{_TestStruct4=cq}c")


    def structTestStruct4Arg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andcharArg_ = objc.selector(structTestStruct4Arg_andcharArg_, signature=b"@@:{_TestStruct4=cq}c")


    def structTestStruct4Arg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andsignedshortArg_ = objc.selector(structTestStruct4Arg_andsignedshortArg_, signature=b"@@:{_TestStruct4=cq}s")


    def structTestStruct4Arg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andsignedintArg_ = objc.selector(structTestStruct4Arg_andsignedintArg_, signature=b"@@:{_TestStruct4=cq}i")


    def structTestStruct4Arg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andsignedlongArg_ = objc.selector(structTestStruct4Arg_andsignedlongArg_, signature=b"@@:{_TestStruct4=cq}" + long_tp)


    def structTestStruct4Arg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andsignedlonglongArg_ = objc.selector(structTestStruct4Arg_andsignedlonglongArg_, signature=b"@@:{_TestStruct4=cq}q")


    def structTestStruct4Arg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andunsignedcharArg_ = objc.selector(structTestStruct4Arg_andunsignedcharArg_, signature=b"@@:{_TestStruct4=cq}C")


    def structTestStruct4Arg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andunsignedshortArg_ = objc.selector(structTestStruct4Arg_andunsignedshortArg_, signature=b"@@:{_TestStruct4=cq}S")


    def structTestStruct4Arg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andunsignedintArg_ = objc.selector(structTestStruct4Arg_andunsignedintArg_, signature=b"@@:{_TestStruct4=cq}I")


    def structTestStruct4Arg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andunsignedlongArg_ = objc.selector(structTestStruct4Arg_andunsignedlongArg_, signature=b"@@:{_TestStruct4=cq}" + ulong_tp)


    def structTestStruct4Arg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andunsignedlonglongArg_ = objc.selector(structTestStruct4Arg_andunsignedlonglongArg_, signature=b"@@:{_TestStruct4=cq}Q")


    def structTestStruct4Arg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andfloatArg_ = objc.selector(structTestStruct4Arg_andfloatArg_, signature=b"@@:{_TestStruct4=cq}f")


    def structTestStruct4Arg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_anddoubleArg_ = objc.selector(structTestStruct4Arg_anddoubleArg_, signature=b"@@:{_TestStruct4=cq}d")


    def structTestStruct4Arg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andidArg_ = objc.selector(structTestStruct4Arg_andidArg_, signature=b"@@:{_TestStruct4=cq}@")


    def structTestStruct4Arg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    structTestStruct4Arg_andcharPtrArg_ = objc.selector(structTestStruct4Arg_andcharPtrArg_, signature=b"@@:{_TestStruct4=cq}*")


    def structTestStruct4Arg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andNSPointArg_ = objc.selector(structTestStruct4Arg_andNSPointArg_, signature=b"@@:{_TestStruct4=cq}" + NSPoint_tp)


    def structTestStruct4Arg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andNSRectArg_ = objc.selector(structTestStruct4Arg_andNSRectArg_, signature=b"@@:{_TestStruct4=cq}" + NSRect_tp)


    def structTestStruct4Arg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andstructTestStruct1Arg_ = objc.selector(structTestStruct4Arg_andstructTestStruct1Arg_, signature=b"@@:{_TestStruct4=cq}{_TestStruct1=ii[5s]}")


    def structTestStruct4Arg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andstructTestStruct2Arg_ = objc.selector(structTestStruct4Arg_andstructTestStruct2Arg_, signature=b"@@:{_TestStruct4=cq}{_TestStruct2=id[5s]}")


    def structTestStruct4Arg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andstructTestStruct3Arg_ = objc.selector(structTestStruct4Arg_andstructTestStruct3Arg_, signature=b"@@:{_TestStruct4=cq}{_TestStruct3=ci}")


    def structTestStruct4Arg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andstructTestStruct4Arg_ = objc.selector(structTestStruct4Arg_andstructTestStruct4Arg_, signature=b"@@:{_TestStruct4=cq}{_TestStruct4=cq}")


    def structTestStruct4Arg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct4Arg_andstructTestStruct5Arg_ = objc.selector(structTestStruct4Arg_andstructTestStruct5Arg_, signature=b"@@:{_TestStruct4=cq}{_TestStruct5=cd}")


    def structTestStruct5Arg_andboolArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andboolArg_ = objc.selector(structTestStruct5Arg_andboolArg_, signature=b"@@:{_TestStruct5=cd}B")


    def structTestStruct5Arg_andBOOLArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andBOOLArg_ = objc.selector(structTestStruct5Arg_andBOOLArg_, signature=b"@@:{_TestStruct5=cd}c")


    def structTestStruct5Arg_andcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andcharArg_ = objc.selector(structTestStruct5Arg_andcharArg_, signature=b"@@:{_TestStruct5=cd}c")


    def structTestStruct5Arg_andsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andsignedshortArg_ = objc.selector(structTestStruct5Arg_andsignedshortArg_, signature=b"@@:{_TestStruct5=cd}s")


    def structTestStruct5Arg_andsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andsignedintArg_ = objc.selector(structTestStruct5Arg_andsignedintArg_, signature=b"@@:{_TestStruct5=cd}i")


    def structTestStruct5Arg_andsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andsignedlongArg_ = objc.selector(structTestStruct5Arg_andsignedlongArg_, signature=b"@@:{_TestStruct5=cd}" + long_tp)


    def structTestStruct5Arg_andsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andsignedlonglongArg_ = objc.selector(structTestStruct5Arg_andsignedlonglongArg_, signature=b"@@:{_TestStruct5=cd}q")


    def structTestStruct5Arg_andunsignedcharArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andunsignedcharArg_ = objc.selector(structTestStruct5Arg_andunsignedcharArg_, signature=b"@@:{_TestStruct5=cd}C")


    def structTestStruct5Arg_andunsignedshortArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andunsignedshortArg_ = objc.selector(structTestStruct5Arg_andunsignedshortArg_, signature=b"@@:{_TestStruct5=cd}S")


    def structTestStruct5Arg_andunsignedintArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andunsignedintArg_ = objc.selector(structTestStruct5Arg_andunsignedintArg_, signature=b"@@:{_TestStruct5=cd}I")


    def structTestStruct5Arg_andunsignedlongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andunsignedlongArg_ = objc.selector(structTestStruct5Arg_andunsignedlongArg_, signature=b"@@:{_TestStruct5=cd}" + ulong_tp)


    def structTestStruct5Arg_andunsignedlonglongArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andunsignedlonglongArg_ = objc.selector(structTestStruct5Arg_andunsignedlonglongArg_, signature=b"@@:{_TestStruct5=cd}Q")


    def structTestStruct5Arg_andfloatArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andfloatArg_ = objc.selector(structTestStruct5Arg_andfloatArg_, signature=b"@@:{_TestStruct5=cd}f")


    def structTestStruct5Arg_anddoubleArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_anddoubleArg_ = objc.selector(structTestStruct5Arg_anddoubleArg_, signature=b"@@:{_TestStruct5=cd}d")


    def structTestStruct5Arg_andidArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andidArg_ = objc.selector(structTestStruct5Arg_andidArg_, signature=b"@@:{_TestStruct5=cd}@")


    def structTestStruct5Arg_andcharPtrArg_(self, arg1, arg2):
        arg2 = unicode(arg2)
        return [ arg1, arg2 ]
    structTestStruct5Arg_andcharPtrArg_ = objc.selector(structTestStruct5Arg_andcharPtrArg_, signature=b"@@:{_TestStruct5=cd}*")


    def structTestStruct5Arg_andNSPointArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andNSPointArg_ = objc.selector(structTestStruct5Arg_andNSPointArg_, signature=b"@@:{_TestStruct5=cd}" + NSPoint_tp)


    def structTestStruct5Arg_andNSRectArg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andNSRectArg_ = objc.selector(structTestStruct5Arg_andNSRectArg_, signature=b"@@:{_TestStruct5=cd}" + NSRect_tp)


    def structTestStruct5Arg_andstructTestStruct1Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andstructTestStruct1Arg_ = objc.selector(structTestStruct5Arg_andstructTestStruct1Arg_, signature=b"@@:{_TestStruct5=cd}{_TestStruct1=ii[5s]}")


    def structTestStruct5Arg_andstructTestStruct2Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andstructTestStruct2Arg_ = objc.selector(structTestStruct5Arg_andstructTestStruct2Arg_, signature=b"@@:{_TestStruct5=cd}{_TestStruct2=id[5s]}")


    def structTestStruct5Arg_andstructTestStruct3Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andstructTestStruct3Arg_ = objc.selector(structTestStruct5Arg_andstructTestStruct3Arg_, signature=b"@@:{_TestStruct5=cd}{_TestStruct3=ci}")


    def structTestStruct5Arg_andstructTestStruct4Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andstructTestStruct4Arg_ = objc.selector(structTestStruct5Arg_andstructTestStruct4Arg_, signature=b"@@:{_TestStruct5=cd}{_TestStruct4=cq}")


    def structTestStruct5Arg_andstructTestStruct5Arg_(self, arg1, arg2):
        return [ arg1, arg2 ]
    structTestStruct5Arg_andstructTestStruct5Arg_ = objc.selector(structTestStruct5Arg_andstructTestStruct5Arg_, signature=b"@@:{_TestStruct5=cd}{_TestStruct5=cd}")


    def boolInArg_(self, arg):
        return arg # return the same
    boolInArg_ = objc.selector(boolInArg_, signature=b"@@:n^B")


    def boolOutArg_(self, arg):
        assert arg is None
        if (self.counter > 2): self.reset()
        res = g_bool_values[self.counter]
        self.counter += 1
        return res
    boolOutArg_ = objc.selector(boolOutArg_, signature=b"v@:o^B")


    def boolInOutArg_(self, arg):
        if (self.counter > 2): self.reset()
        res = g_bool_values[self.counter];
        self.counter += 1
        return (arg, res)
    boolInOutArg_ = objc.selector(boolInOutArg_, signature=b"@@:N^B")


    def BOOLInArg_(self, arg):
        return arg # return the same
    BOOLInArg_ = objc.selector(BOOLInArg_, signature=b"@@:n^c")


    def BOOLOutArg_(self, arg):
        assert arg is None
        if (self.counter > 2): self.reset()
        res = g_BOOL_values[self.counter]
        self.counter += 1
        return res
    BOOLOutArg_ = objc.selector(BOOLOutArg_, signature=b"v@:o^c")


    def BOOLInOutArg_(self, arg):
        if (self.counter > 2): self.reset()
        res = g_BOOL_values[self.counter];
        self.counter += 1
        return (arg, res)
    BOOLInOutArg_ = objc.selector(BOOLInOutArg_, signature=b"@@:N^c")


    def charInArg_(self, arg):
        return arg # return the same
    charInArg_ = objc.selector(charInArg_, signature=b"@@:n^c")


    def charOutArg_(self, arg):
        assert arg is None
        if (self.counter > 3): self.reset()
        res = g_char_values[self.counter]
        self.counter += 1
        return res
    charOutArg_ = objc.selector(charOutArg_, signature=b"v@:o^c")


    def charInOutArg_(self, arg):
        if (self.counter > 3): self.reset()
        res = g_char_values[self.counter];
        self.counter += 1
        return (arg, res)
    charInOutArg_ = objc.selector(charInOutArg_, signature=b"@@:N^c")


    def signedshortInArg_(self, arg):
        return arg # return the same
    signedshortInArg_ = objc.selector(signedshortInArg_, signature=b"@@:n^s")


    def signedshortOutArg_(self, arg):
        assert arg is None
        if (self.counter > 5): self.reset()
        res = g_signedshort_values[self.counter]
        self.counter += 1
        return res
    signedshortOutArg_ = objc.selector(signedshortOutArg_, signature=b"v@:o^s")


    def signedshortInOutArg_(self, arg):
        if (self.counter > 5): self.reset()
        res = g_signedshort_values[self.counter];
        self.counter += 1
        return (arg, res)
    signedshortInOutArg_ = objc.selector(signedshortInOutArg_, signature=b"@@:N^s")


    def signedintInArg_(self, arg):
        return arg # return the same
    signedintInArg_ = objc.selector(signedintInArg_, signature=b"@@:n^i")


    def signedintOutArg_(self, arg):
        assert arg is None
        if (self.counter > 5): self.reset()
        res = g_signedint_values[self.counter]
        self.counter += 1
        return res
    signedintOutArg_ = objc.selector(signedintOutArg_, signature=b"v@:o^i")


    def signedintInOutArg_(self, arg):
        if (self.counter > 5): self.reset()
        res = g_signedint_values[self.counter];
        self.counter += 1
        return (arg, res)
    signedintInOutArg_ = objc.selector(signedintInOutArg_, signature=b"@@:N^i")


    def signedlongInArg_(self, arg):
        return arg # return the same
    signedlongInArg_ = objc.selector(signedlongInArg_, signature=b"@@:n^" + long_tp)


    def signedlongOutArg_(self, arg):
        assert arg is None
        if (self.counter > 5): self.reset()
        res = g_signedlong_values[self.counter]
        self.counter += 1
        return res
    signedlongOutArg_ = objc.selector(signedlongOutArg_, signature=b"v@:o^" + long_tp)


    def signedlongInOutArg_(self, arg):
        if (self.counter > 5): self.reset()
        res = g_signedlong_values[self.counter];
        self.counter += 1
        return (arg, res)
    signedlongInOutArg_ = objc.selector(signedlongInOutArg_, signature=b"@@:N^" + long_tp)


    def signedlonglongInArg_(self, arg):
        return arg # return the same
    signedlonglongInArg_ = objc.selector(signedlonglongInArg_, signature=b"@@:n^q")


    def signedlonglongOutArg_(self, arg):
        assert arg is None
        if (self.counter > 5): self.reset()
        res = g_signedlonglong_values[self.counter]
        self.counter += 1
        return res
    signedlonglongOutArg_ = objc.selector(signedlonglongOutArg_, signature=b"v@:o^q")


    def signedlonglongInOutArg_(self, arg):
        if (self.counter > 5): self.reset()
        res = g_signedlonglong_values[self.counter];
        self.counter += 1
        return (arg, res)
    signedlonglongInOutArg_ = objc.selector(signedlonglongInOutArg_, signature=b"@@:N^q")


    def unsignedcharInArg_(self, arg):
        return arg # return the same
    unsignedcharInArg_ = objc.selector(unsignedcharInArg_, signature=b"@@:n^C")


    def unsignedcharOutArg_(self, arg):
        assert arg is None
        if (self.counter > 3): self.reset()
        res = g_unsignedchar_values[self.counter]
        self.counter += 1
        return res
    unsignedcharOutArg_ = objc.selector(unsignedcharOutArg_, signature=b"v@:o^C")


    def unsignedcharInOutArg_(self, arg):
        if (self.counter > 3): self.reset()
        res = g_unsignedchar_values[self.counter];
        self.counter += 1
        return (arg, res)
    unsignedcharInOutArg_ = objc.selector(unsignedcharInOutArg_, signature=b"@@:N^C")


    def unsignedshortInArg_(self, arg):
        return arg # return the same
    unsignedshortInArg_ = objc.selector(unsignedshortInArg_, signature=b"@@:n^S")


    def unsignedshortOutArg_(self, arg):
        assert arg is None
        if (self.counter > 3): self.reset()
        res = g_unsignedshort_values[self.counter]
        self.counter += 1
        return res
    unsignedshortOutArg_ = objc.selector(unsignedshortOutArg_, signature=b"v@:o^S")


    def unsignedshortInOutArg_(self, arg):
        if (self.counter > 3): self.reset()
        res = g_unsignedshort_values[self.counter];
        self.counter += 1
        return (arg, res)
    unsignedshortInOutArg_ = objc.selector(unsignedshortInOutArg_, signature=b"@@:N^S")


    def unsignedintInArg_(self, arg):
        return arg # return the same
    unsignedintInArg_ = objc.selector(unsignedintInArg_, signature=b"@@:n^I")


    def unsignedintOutArg_(self, arg):
        assert arg is None
        if (self.counter > 3): self.reset()
        res = g_unsignedint_values[self.counter]
        self.counter += 1
        return res
    unsignedintOutArg_ = objc.selector(unsignedintOutArg_, signature=b"v@:o^I")


    def unsignedintInOutArg_(self, arg):
        if (self.counter > 3): self.reset()
        res = g_unsignedint_values[self.counter];
        self.counter += 1
        return (arg, res)
    unsignedintInOutArg_ = objc.selector(unsignedintInOutArg_, signature=b"@@:N^I")


    def unsignedlongInArg_(self, arg):
        return arg # return the same
    unsignedlongInArg_ = objc.selector(unsignedlongInArg_, signature=b"@@:n^" + ulong_tp)


    def unsignedlongOutArg_(self, arg):
        assert arg is None
        if (self.counter > 3): self.reset()
        res = g_unsignedlong_values[self.counter]
        self.counter += 1
        return res
    unsignedlongOutArg_ = objc.selector(unsignedlongOutArg_, signature=b"v@:o^" + ulong_tp)


    def unsignedlongInOutArg_(self, arg):
        if (self.counter > 3): self.reset()
        res = g_unsignedlong_values[self.counter];
        self.counter += 1
        return (arg, res)
    unsignedlongInOutArg_ = objc.selector(unsignedlongInOutArg_, signature=b"@@:N^" + ulong_tp)


    def unsignedlonglongInArg_(self, arg):
        return arg # return the same
    unsignedlonglongInArg_ = objc.selector(unsignedlonglongInArg_, signature=b"@@:n^Q")


    def unsignedlonglongOutArg_(self, arg):
        assert arg is None
        if (self.counter > 3): self.reset()
        res = g_unsignedlonglong_values[self.counter]
        self.counter += 1
        return res
    unsignedlonglongOutArg_ = objc.selector(unsignedlonglongOutArg_, signature=b"v@:o^Q")


    def unsignedlonglongInOutArg_(self, arg):
        if (self.counter > 3): self.reset()
        res = g_unsignedlonglong_values[self.counter];
        self.counter += 1
        return (arg, res)
    unsignedlonglongInOutArg_ = objc.selector(unsignedlonglongInOutArg_, signature=b"@@:N^Q")


    def floatInArg_(self, arg):
        return arg # return the same
    floatInArg_ = objc.selector(floatInArg_, signature=b"@@:n^f")


    def floatOutArg_(self, arg):
        assert arg is None
        if (self.counter > 4): self.reset()
        res = g_float_values[self.counter]
        self.counter += 1
        return res
    floatOutArg_ = objc.selector(floatOutArg_, signature=b"v@:o^f")


    def floatInOutArg_(self, arg):
        if (self.counter > 4): self.reset()
        res = g_float_values[self.counter];
        self.counter += 1
        return (arg, res)
    floatInOutArg_ = objc.selector(floatInOutArg_, signature=b"@@:N^f")


    def doubleInArg_(self, arg):
        return arg # return the same
    doubleInArg_ = objc.selector(doubleInArg_, signature=b"@@:n^d")


    def doubleOutArg_(self, arg):
        assert arg is None
        if (self.counter > 4): self.reset()
        res = g_double_values[self.counter]
        self.counter += 1
        return res
    doubleOutArg_ = objc.selector(doubleOutArg_, signature=b"v@:o^d")


    def doubleInOutArg_(self, arg):
        if (self.counter > 4): self.reset()
        res = g_double_values[self.counter];
        self.counter += 1
        return (arg, res)
    doubleInOutArg_ = objc.selector(doubleInOutArg_, signature=b"@@:N^d")


    def idInArg_(self, arg):
        return arg # return the same
    idInArg_ = objc.selector(idInArg_, signature=b"@@:n^@")


    def idOutArg_(self, arg):
        assert arg is None
        if (self.counter > 1): self.reset()
        res = g_id_values[self.counter]
        self.counter += 1
        return res
    idOutArg_ = objc.selector(idOutArg_, signature=b"v@:o^@")


    def idInOutArg_(self, arg):
        if (self.counter > 1): self.reset()
        res = g_id_values[self.counter];
        self.counter += 1
        return (arg, res)
    idInOutArg_ = objc.selector(idInOutArg_, signature=b"@@:N^@")


    def charPtrInArg_(self, arg):
        return unicode(arg) # return the unicode
    charPtrInArg_ = objc.selector(charPtrInArg_, signature=b"@@:n^*")


    def charPtrOutArg_(self, arg):
        assert arg is None
        if (self.counter > 3): self.reset()
        res = g_charPtr_values[self.counter]
        self.counter += 1
        return res
    charPtrOutArg_ = objc.selector(charPtrOutArg_, signature=b"v@:o^*")


    def charPtrInOutArg_(self, arg):
        if (self.counter > 3): self.reset()
        res = g_charPtr_values[self.counter];
        self.counter += 1
        return (arg, res)
    charPtrInOutArg_ = objc.selector(charPtrInOutArg_, signature=b"@@:N^*")


    def NSPointInArg_(self, arg):
        return arg # return the same
    NSPointInArg_ = objc.selector(NSPointInArg_, signature=b"@@:n^" + NSPoint_tp)


    def NSPointOutArg_(self, arg):
        assert arg is None
        if (self.counter > 2): self.reset()
        res = g_NSPoint_values[self.counter]
        self.counter += 1
        return res
    NSPointOutArg_ = objc.selector(NSPointOutArg_, signature=b"v@:o^" + NSPoint_tp)


    def NSPointInOutArg_(self, arg):
        if (self.counter > 2): self.reset()
        res = g_NSPoint_values[self.counter];
        self.counter += 1
        return (arg, res)
    NSPointInOutArg_ = objc.selector(NSPointInOutArg_, signature=b"@@:N^" + NSPoint_tp)


    def NSRectInArg_(self, arg):
        return arg # return the same
    NSRectInArg_ = objc.selector(NSRectInArg_, signature=b"@@:n^" + NSRect_tp)


    def NSRectOutArg_(self, arg):
        assert arg is None
        if (self.counter > 2): self.reset()
        res = g_NSRect_values[self.counter]
        self.counter += 1
        return res
    NSRectOutArg_ = objc.selector(NSRectOutArg_, signature=b"v@:o^" + NSRect_tp)


    def NSRectInOutArg_(self, arg):
        if (self.counter > 2): self.reset()
        res = g_NSRect_values[self.counter];
        self.counter += 1
        return (arg, res)
    NSRectInOutArg_ = objc.selector(NSRectInOutArg_, signature=b"@@:N^" + NSRect_tp)


    def structTestStruct1InArg_(self, arg):
        return arg # return the same
    structTestStruct1InArg_ = objc.selector(structTestStruct1InArg_, signature=b"@@:n^{_TestStruct1=ii[5s]}")


    def structTestStruct1OutArg_(self, arg):
        assert arg is None
        if (self.counter > 2): self.reset()
        res = g_structTestStruct1_values[self.counter]
        self.counter += 1
        return res
    structTestStruct1OutArg_ = objc.selector(structTestStruct1OutArg_, signature=b"v@:o^{_TestStruct1=ii[5s]}")


    def structTestStruct1InOutArg_(self, arg):
        if (self.counter > 2): self.reset()
        res = g_structTestStruct1_values[self.counter];
        self.counter += 1
        return (arg, res)
    structTestStruct1InOutArg_ = objc.selector(structTestStruct1InOutArg_, signature=b"@@:N^{_TestStruct1=ii[5s]}")


    def structTestStruct2InArg_(self, arg):
        return arg # return the same
    structTestStruct2InArg_ = objc.selector(structTestStruct2InArg_, signature=b"@@:n^{_TestStruct2=id[5s]}")


    def structTestStruct2OutArg_(self, arg):
        assert arg is None
        if (self.counter > 2): self.reset()
        res = g_structTestStruct2_values[self.counter]
        self.counter += 1
        return res
    structTestStruct2OutArg_ = objc.selector(structTestStruct2OutArg_, signature=b"v@:o^{_TestStruct2=id[5s]}")


    def structTestStruct2InOutArg_(self, arg):
        if (self.counter > 2): self.reset()
        res = g_structTestStruct2_values[self.counter];
        self.counter += 1
        return (arg, res)
    structTestStruct2InOutArg_ = objc.selector(structTestStruct2InOutArg_, signature=b"@@:N^{_TestStruct2=id[5s]}")


    def structTestStruct3InArg_(self, arg):
        return arg # return the same
    structTestStruct3InArg_ = objc.selector(structTestStruct3InArg_, signature=b"@@:n^{_TestStruct3=ci}")


    def structTestStruct3OutArg_(self, arg):
        assert arg is None
        if (self.counter > 2): self.reset()
        res = g_structTestStruct3_values[self.counter]
        self.counter += 1
        return res
    structTestStruct3OutArg_ = objc.selector(structTestStruct3OutArg_, signature=b"v@:o^{_TestStruct3=ci}")


    def structTestStruct3InOutArg_(self, arg):
        if (self.counter > 2): self.reset()
        res = g_structTestStruct3_values[self.counter];
        self.counter += 1
        return (arg, res)
    structTestStruct3InOutArg_ = objc.selector(structTestStruct3InOutArg_, signature=b"@@:N^{_TestStruct3=ci}")


    def structTestStruct4InArg_(self, arg):
        return arg # return the same
    structTestStruct4InArg_ = objc.selector(structTestStruct4InArg_, signature=b"@@:n^{_TestStruct4=cq}")


    def structTestStruct4OutArg_(self, arg):
        assert arg is None
        if (self.counter > 2): self.reset()
        res = g_structTestStruct4_values[self.counter]
        self.counter += 1
        return res
    structTestStruct4OutArg_ = objc.selector(structTestStruct4OutArg_, signature=b"v@:o^{_TestStruct4=cq}")


    def structTestStruct4InOutArg_(self, arg):
        if (self.counter > 2): self.reset()
        res = g_structTestStruct4_values[self.counter];
        self.counter += 1
        return (arg, res)
    structTestStruct4InOutArg_ = objc.selector(structTestStruct4InOutArg_, signature=b"@@:N^{_TestStruct4=cq}")


    def structTestStruct5InArg_(self, arg):
        return arg # return the same
    structTestStruct5InArg_ = objc.selector(structTestStruct5InArg_, signature=b"@@:n^{_TestStruct5=cd}")


    def structTestStruct5OutArg_(self, arg):
        assert arg is None
        if (self.counter > 2): self.reset()
        res = g_structTestStruct5_values[self.counter]
        self.counter += 1
        return res
    structTestStruct5OutArg_ = objc.selector(structTestStruct5OutArg_, signature=b"v@:o^{_TestStruct5=cd}")


    def structTestStruct5InOutArg_(self, arg):
        if (self.counter > 2): self.reset()
        res = g_structTestStruct5_values[self.counter];
        self.counter += 1
        return (arg, res)
    structTestStruct5InOutArg_ = objc.selector(structTestStruct5InOutArg_, signature=b"@@:N^{_TestStruct5=cd}")


class ObjCToPy (TestCase):
    # Test calling Python from Objective-C
    # Simple returns from instance methods

    def testcallboolResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callboolMethodOf_(o), YES)
        self.assertEqual(PyObjC_TestClass2.callboolMethodOf_(o), NO)


    def testinvokeboolResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokeboolMethodOf_(o), YES)
        self.assertEqual(PyObjC_TestClass2.invokeboolMethodOf_(o), NO)


    def testcallBOOLResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callBOOLMethodOf_(o), YES)
        self.assertEqual(PyObjC_TestClass2.callBOOLMethodOf_(o), NO)


    def testinvokeBOOLResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokeBOOLMethodOf_(o), YES)
        self.assertEqual(PyObjC_TestClass2.invokeBOOLMethodOf_(o), NO)


    def testcallcharResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callcharMethodOf_(o), -128)
        self.assertEqual(PyObjC_TestClass2.callcharMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.callcharMethodOf_(o), 127)


    def testinvokecharResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokecharMethodOf_(o), -128)
        self.assertEqual(PyObjC_TestClass2.invokecharMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.invokecharMethodOf_(o), 127)


    def testcallsignedshortResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callsignedshortMethodOf_(o), -(1<<14))
        self.assertEqual(PyObjC_TestClass2.callsignedshortMethodOf_(o), -42)
        self.assertEqual(PyObjC_TestClass2.callsignedshortMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.callsignedshortMethodOf_(o), 42)
        self.assertEqual(PyObjC_TestClass2.callsignedshortMethodOf_(o), 1 << 14)


    def testinvokesignedshortResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokesignedshortMethodOf_(o), -(1<<14))
        self.assertEqual(PyObjC_TestClass2.invokesignedshortMethodOf_(o), -42)
        self.assertEqual(PyObjC_TestClass2.invokesignedshortMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.invokesignedshortMethodOf_(o), 42)
        self.assertEqual(PyObjC_TestClass2.invokesignedshortMethodOf_(o), 1 << 14)


    def testcallsignedintResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callsignedintMethodOf_(o), -(1<<30))
        self.assertEqual(PyObjC_TestClass2.callsignedintMethodOf_(o), -42)
        self.assertEqual(PyObjC_TestClass2.callsignedintMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.callsignedintMethodOf_(o), 42)
        self.assertEqual(PyObjC_TestClass2.callsignedintMethodOf_(o), 1 << 30)


    def testinvokesignedintResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokesignedintMethodOf_(o), -(1<<30))
        self.assertEqual(PyObjC_TestClass2.invokesignedintMethodOf_(o), -42)
        self.assertEqual(PyObjC_TestClass2.invokesignedintMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.invokesignedintMethodOf_(o), 42)
        self.assertEqual(PyObjC_TestClass2.invokesignedintMethodOf_(o), 1 << 30)


    def testcallsignedlongResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callsignedlongMethodOf_(o), -(1<<30))
        self.assertEqual(PyObjC_TestClass2.callsignedlongMethodOf_(o), -42)
        self.assertEqual(PyObjC_TestClass2.callsignedlongMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.callsignedlongMethodOf_(o), 42)
        self.assertEqual(PyObjC_TestClass2.callsignedlongMethodOf_(o), 1 << 30)


    def testinvokesignedlongResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokesignedlongMethodOf_(o), -(1<<30))
        self.assertEqual(PyObjC_TestClass2.invokesignedlongMethodOf_(o), -42)
        self.assertEqual(PyObjC_TestClass2.invokesignedlongMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.invokesignedlongMethodOf_(o), 42)
        self.assertEqual(PyObjC_TestClass2.invokesignedlongMethodOf_(o), 1 << 30)


    def testcallsignedlonglongResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callsignedlonglongMethodOf_(o), -(1 << 60))
        self.assertEqual(PyObjC_TestClass2.callsignedlonglongMethodOf_(o), -42)
        self.assertEqual(PyObjC_TestClass2.callsignedlonglongMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.callsignedlonglongMethodOf_(o), 42)
        self.assertEqual(PyObjC_TestClass2.callsignedlonglongMethodOf_(o), 1 << 60)


    def testinvokesignedlonglongResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokesignedlonglongMethodOf_(o), -(1 << 60))
        self.assertEqual(PyObjC_TestClass2.invokesignedlonglongMethodOf_(o), -42)
        self.assertEqual(PyObjC_TestClass2.invokesignedlonglongMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.invokesignedlonglongMethodOf_(o), 42)
        self.assertEqual(PyObjC_TestClass2.invokesignedlonglongMethodOf_(o), 1 << 60)


    def testcallunsignedcharResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callunsignedcharMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.callunsignedcharMethodOf_(o), 128)
        self.assertEqual(PyObjC_TestClass2.callunsignedcharMethodOf_(o), 255)


    def testinvokeunsignedcharResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokeunsignedcharMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.invokeunsignedcharMethodOf_(o), 128)
        self.assertEqual(PyObjC_TestClass2.invokeunsignedcharMethodOf_(o), 255)


    def testcallunsignedshortResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callunsignedshortMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.callunsignedshortMethodOf_(o), 42)
        self.assertEqual(PyObjC_TestClass2.callunsignedshortMethodOf_(o), 1<<14)


    def testinvokeunsignedshortResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokeunsignedshortMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.invokeunsignedshortMethodOf_(o), 42)
        self.assertEqual(PyObjC_TestClass2.invokeunsignedshortMethodOf_(o), 1<<14)


    def testcallunsignedintResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callunsignedintMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.callunsignedintMethodOf_(o), 42)
        self.assertEqual(PyObjC_TestClass2.callunsignedintMethodOf_(o), 1 << 30)


    def testinvokeunsignedintResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokeunsignedintMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.invokeunsignedintMethodOf_(o), 42)
        self.assertEqual(PyObjC_TestClass2.invokeunsignedintMethodOf_(o), 1 << 30)


    def testcallunsignedlongResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callunsignedlongMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.callunsignedlongMethodOf_(o), 42)
        self.assertEqual(PyObjC_TestClass2.callunsignedlongMethodOf_(o), 1 << 30)


    def testinvokeunsignedlongResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokeunsignedlongMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.invokeunsignedlongMethodOf_(o), 42)
        self.assertEqual(PyObjC_TestClass2.invokeunsignedlongMethodOf_(o), 1 << 30)


    def testcallunsignedlonglongResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callunsignedlonglongMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.callunsignedlonglongMethodOf_(o), 42)
        self.assertEqual(PyObjC_TestClass2.callunsignedlonglongMethodOf_(o), 1 << 62)


    def testinvokeunsignedlonglongResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokeunsignedlonglongMethodOf_(o), 0)
        self.assertEqual(PyObjC_TestClass2.invokeunsignedlonglongMethodOf_(o), 42)
        self.assertEqual(PyObjC_TestClass2.invokeunsignedlonglongMethodOf_(o), 1 << 62)


    def testcallfloatResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertAlmostEqual(PyObjC_TestClass2.callfloatMethodOf_(o), 0.128)
        self.assertAlmostEqual(PyObjC_TestClass2.callfloatMethodOf_(o), 1.0)
        self.assertAlmostEqual(PyObjC_TestClass2.callfloatMethodOf_(o), 42.0)
        self.assertAlmostEqual(PyObjC_TestClass2.callfloatMethodOf_(o), 1e10)


    def testinvokefloatResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertAlmostEqual(PyObjC_TestClass2.invokefloatMethodOf_(o), 0.128)
        self.assertAlmostEqual(PyObjC_TestClass2.invokefloatMethodOf_(o), 1.0)
        self.assertAlmostEqual(PyObjC_TestClass2.invokefloatMethodOf_(o), 42.0)
        self.assertAlmostEqual(PyObjC_TestClass2.invokefloatMethodOf_(o), 1e10)


    def testcalldoubleResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertAlmostEqual(PyObjC_TestClass2.calldoubleMethodOf_(o), 0.128)
        self.assertAlmostEqual(PyObjC_TestClass2.calldoubleMethodOf_(o), 1.0)
        self.assertAlmostEqual(PyObjC_TestClass2.calldoubleMethodOf_(o), 42.0)
        self.assertAlmostEqual(PyObjC_TestClass2.calldoubleMethodOf_(o), 1e10)


    def testinvokedoubleResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertAlmostEqual(PyObjC_TestClass2.invokedoubleMethodOf_(o), 0.128)
        self.assertAlmostEqual(PyObjC_TestClass2.invokedoubleMethodOf_(o), 1.0)
        self.assertAlmostEqual(PyObjC_TestClass2.invokedoubleMethodOf_(o), 42.0)
        self.assertAlmostEqual(PyObjC_TestClass2.invokedoubleMethodOf_(o), 1e10)


    def testcallidResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callidMethodOf_(o), NSPriorDayDesignations)


    def testinvokeidResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokeidMethodOf_(o), NSPriorDayDesignations)


    def testcallcharPtrResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callcharPtrMethodOf_(o), b"hello")
        self.assertEqual(PyObjC_TestClass2.callcharPtrMethodOf_(o), b"world")
        self.assertEqual(PyObjC_TestClass2.callcharPtrMethodOf_(o), b"foobar")


    def testinvokecharPtrResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokecharPtrMethodOf_(o), (b"hello"))
        self.assertEqual(PyObjC_TestClass2.invokecharPtrMethodOf_(o), (b"world"))
        self.assertEqual(PyObjC_TestClass2.invokecharPtrMethodOf_(o), (b"foobar"))


    def testcallNSPointResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callNSPointMethodOf_(o), (1, 2))
        self.assertEqual(PyObjC_TestClass2.callNSPointMethodOf_(o), (3, 4))


    def testinvokeNSPointResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokeNSPointMethodOf_(o), (1, 2))
        self.assertEqual(PyObjC_TestClass2.invokeNSPointMethodOf_(o), (3, 4))


    def testcallNSRectResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callNSRectMethodOf_(o), ((1, 2), (3, 4)))
        self.assertEqual(PyObjC_TestClass2.callNSRectMethodOf_(o), ((7, 8), (9, 10)))


    def testinvokeNSRectResult(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokeNSRectMethodOf_(o), ((1, 2), (3, 4)))
        self.assertEqual(PyObjC_TestClass2.invokeNSRectMethodOf_(o), ((7, 8), (9, 10)))


    def testcallstructTestStruct1Result(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callstructTestStruct1MethodOf_(o), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(PyObjC_TestClass2.callstructTestStruct1MethodOf_(o), (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct1Result(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokestructTestStruct1MethodOf_(o), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(PyObjC_TestClass2.invokestructTestStruct1MethodOf_(o), (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct2Result(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callstructTestStruct2MethodOf_(o), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(PyObjC_TestClass2.callstructTestStruct2MethodOf_(o), (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct2Result(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokestructTestStruct2MethodOf_(o), (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(PyObjC_TestClass2.invokestructTestStruct2MethodOf_(o), (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct3Result(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callstructTestStruct3MethodOf_(o), (1, 2))
        self.assertEqual(PyObjC_TestClass2.callstructTestStruct3MethodOf_(o), (2, 4))


    def testinvokestructTestStruct3Result(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokestructTestStruct3MethodOf_(o), (1, 2))
        self.assertEqual(PyObjC_TestClass2.invokestructTestStruct3MethodOf_(o), (2, 4))


    def testcallstructTestStruct4Result(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callstructTestStruct4MethodOf_(o), (1, 1<<60))
        self.assertEqual(PyObjC_TestClass2.callstructTestStruct4MethodOf_(o), (2, 4))


    def testinvokestructTestStruct4Result(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokestructTestStruct4MethodOf_(o), (1, 1<<60))
        self.assertEqual(PyObjC_TestClass2.invokestructTestStruct4MethodOf_(o), (2, 4))


    def testcallstructTestStruct5Result(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.callstructTestStruct5MethodOf_(o), (1, 2.5))
        self.assertEqual(PyObjC_TestClass2.callstructTestStruct5MethodOf_(o), (2, 4.5))


    def testinvokestructTestStruct5Result(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        self.assertEqual(PyObjC_TestClass2.invokestructTestStruct5MethodOf_(o), (1, 2.5))
        self.assertEqual(PyObjC_TestClass2.invokestructTestStruct5MethodOf_(o), (2, 4.5))


    # One argument

    def testcallboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_of_(YES, o)
        self.assertEqual(r, YES)
        r = PyObjC_TestClass2.invokeboolArg_of_(NO, o)
        self.assertEqual(r, NO)


    def testinvokeboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_of_(YES, o)
        self.assertEqual(r, YES)
        r = PyObjC_TestClass2.invokeboolArg_of_(NO, o)
        self.assertEqual(r, NO)


    def testcallBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_of_(YES, o)
        self.assertEqual(r, YES)
        r = PyObjC_TestClass2.invokeBOOLArg_of_(NO, o)
        self.assertEqual(r, NO)


    def testinvokeBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_of_(YES, o)
        self.assertEqual(r, YES)
        r = PyObjC_TestClass2.invokeBOOLArg_of_(NO, o)
        self.assertEqual(r, NO)


    def testcallcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_of_(-128, o)
        self.assertEqual(r, -128)
        r = PyObjC_TestClass2.invokecharArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokecharArg_of_(127, o)
        self.assertEqual(r, 127)


    def testinvokecharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_of_(-128, o)
        self.assertEqual(r, -128)
        r = PyObjC_TestClass2.invokecharArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokecharArg_of_(127, o)
        self.assertEqual(r, 127)


    def testcallsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_of_(-(1<<14), o)
        self.assertEqual(r, -(1<<14))
        r = PyObjC_TestClass2.invokesignedshortArg_of_(-42, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.invokesignedshortArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokesignedshortArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokesignedshortArg_of_(1 << 14, o)
        self.assertEqual(r, 1 << 14)


    def testinvokesignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_of_(-(1<<14), o)
        self.assertEqual(r, -(1<<14))
        r = PyObjC_TestClass2.invokesignedshortArg_of_(-42, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.invokesignedshortArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokesignedshortArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokesignedshortArg_of_(1 << 14, o)
        self.assertEqual(r, 1 << 14)


    def testcallsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_of_(-(1<<30), o)
        self.assertEqual(r, -(1<<30))
        r = PyObjC_TestClass2.invokesignedintArg_of_(-42, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.invokesignedintArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokesignedintArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokesignedintArg_of_(1 << 30, o)
        self.assertEqual(r, 1 << 30)


    def testinvokesignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_of_(-(1<<30), o)
        self.assertEqual(r, -(1<<30))
        r = PyObjC_TestClass2.invokesignedintArg_of_(-42, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.invokesignedintArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokesignedintArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokesignedintArg_of_(1 << 30, o)
        self.assertEqual(r, 1 << 30)


    def testcallsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_of_(-(1<<30), o)
        self.assertEqual(r, -(1<<30))
        r = PyObjC_TestClass2.invokesignedlongArg_of_(-42, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.invokesignedlongArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokesignedlongArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokesignedlongArg_of_(1 << 30, o)
        self.assertEqual(r, 1 << 30)


    def testinvokesignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_of_(-(1<<30), o)
        self.assertEqual(r, -(1<<30))
        r = PyObjC_TestClass2.invokesignedlongArg_of_(-42, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.invokesignedlongArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokesignedlongArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokesignedlongArg_of_(1 << 30, o)
        self.assertEqual(r, 1 << 30)


    def testcallsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_of_(-(1 << 60), o)
        self.assertEqual(r, -(1 << 60))
        r = PyObjC_TestClass2.invokesignedlonglongArg_of_(-42, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_of_(1 << 60, o)
        self.assertEqual(r, 1 << 60)


    def testinvokesignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_of_(-(1 << 60), o)
        self.assertEqual(r, -(1 << 60))
        r = PyObjC_TestClass2.invokesignedlonglongArg_of_(-42, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_of_(1 << 60, o)
        self.assertEqual(r, 1 << 60)


    def testcallunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_of_(128, o)
        self.assertEqual(r, 128)
        r = PyObjC_TestClass2.invokeunsignedcharArg_of_(255, o)
        self.assertEqual(r, 255)


    def testinvokeunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_of_(128, o)
        self.assertEqual(r, 128)
        r = PyObjC_TestClass2.invokeunsignedcharArg_of_(255, o)
        self.assertEqual(r, 255)


    def testcallunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_of_(1<<14, o)
        self.assertEqual(r, 1<<14)


    def testinvokeunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_of_(1<<14, o)
        self.assertEqual(r, 1<<14)


    def testcallunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_of_(1 << 30, o)
        self.assertEqual(r, 1 << 30)


    def testinvokeunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_of_(1 << 30, o)
        self.assertEqual(r, 1 << 30)


    def testcallunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_of_(1 << 30, o)
        self.assertEqual(r, 1 << 30)


    def testinvokeunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_of_(1 << 30, o)
        self.assertEqual(r, 1 << 30)


    def testcallunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_of_(1 << 62, o)
        self.assertEqual(r, 1 << 62)


    def testinvokeunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_of_(1 << 62, o)
        self.assertEqual(r, 1 << 62)


    def testcallfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_of_(0.128, o)
        self.assertAlmostEqual(r, 0.128)
        r = PyObjC_TestClass2.invokefloatArg_of_(1.0, o)
        self.assertAlmostEqual(r, 1.0)
        r = PyObjC_TestClass2.invokefloatArg_of_(42.0, o)
        self.assertAlmostEqual(r, 42.0)
        r = PyObjC_TestClass2.invokefloatArg_of_(1e10, o)
        self.assertAlmostEqual(r, 1e10)


    def testinvokefloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_of_(0.128, o)
        self.assertAlmostEqual(r, 0.128)
        r = PyObjC_TestClass2.invokefloatArg_of_(1.0, o)
        self.assertAlmostEqual(r, 1.0)
        r = PyObjC_TestClass2.invokefloatArg_of_(42.0, o)
        self.assertAlmostEqual(r, 42.0)
        r = PyObjC_TestClass2.invokefloatArg_of_(1e10, o)
        self.assertAlmostEqual(r, 1e10)


    def testcalldoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_of_(0.128, o)
        self.assertAlmostEqual(r, 0.128)
        r = PyObjC_TestClass2.invokedoubleArg_of_(1.0, o)
        self.assertAlmostEqual(r, 1.0)
        r = PyObjC_TestClass2.invokedoubleArg_of_(42.0, o)
        self.assertAlmostEqual(r, 42.0)
        r = PyObjC_TestClass2.invokedoubleArg_of_(1e10, o)
        self.assertAlmostEqual(r, 1e10)


    def testinvokedoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_of_(0.128, o)
        self.assertAlmostEqual(r, 0.128)
        r = PyObjC_TestClass2.invokedoubleArg_of_(1.0, o)
        self.assertAlmostEqual(r, 1.0)
        r = PyObjC_TestClass2.invokedoubleArg_of_(42.0, o)
        self.assertAlmostEqual(r, 42.0)
        r = PyObjC_TestClass2.invokedoubleArg_of_(1e10, o)
        self.assertAlmostEqual(r, 1e10)


    def testcallidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_of_(NSPriorDayDesignations, o)
        self.assertEqual(r, NSPriorDayDesignations)


    def testinvokeidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_of_(NSPriorDayDesignations, o)
        self.assertEqual(r, NSPriorDayDesignations)


    def testcallcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_of_(b"hello", o)
        self.assertEqual(r, unicode(b"hello"))
        r = PyObjC_TestClass2.invokecharPtrArg_of_(b"world", o)
        self.assertEqual(r, unicode(b"world"))
        r = PyObjC_TestClass2.invokecharPtrArg_of_(b"foobar", o)
        self.assertEqual(r, unicode(b"foobar"))


    def testinvokecharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_of_(b"hello", o)
        self.assertEqual(r, unicode(b"hello"))
        r = PyObjC_TestClass2.invokecharPtrArg_of_(b"world", o)
        self.assertEqual(r, unicode(b"world"))
        r = PyObjC_TestClass2.invokecharPtrArg_of_(b"foobar", o)
        self.assertEqual(r, unicode(b"foobar"))


    def testcallNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_of_((1, 2), o)
        self.assertEqual(r, (1, 2))
        r = PyObjC_TestClass2.invokeNSPointArg_of_((3, 4), o)
        self.assertEqual(r, (3, 4))


    def testinvokeNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_of_((1, 2), o)
        self.assertEqual(r, (1, 2))
        r = PyObjC_TestClass2.invokeNSPointArg_of_((3, 4), o)
        self.assertEqual(r, (3, 4))


    def testcallNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_of_(((1, 2), (3, 4)), o)
        self.assertEqual(r, ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeNSRectArg_of_(((7, 8), (9, 10)), o)
        self.assertEqual(r, ((7, 8), (9, 10)))


    def testinvokeNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_of_(((1, 2), (3, 4)), o)
        self.assertEqual(r, ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeNSRectArg_of_(((7, 8), (9, 10)), o)
        self.assertEqual(r, ((7, 8), (9, 10)))


    def testcallstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_of_((1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_of_((9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_of_((1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_of_((9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_of_((1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_of_((9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_of_((1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_of_((9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_of_((1, 2), o)
        self.assertEqual(r, (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_of_((2, 4), o)
        self.assertEqual(r, (2, 4))


    def testinvokestructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_of_((1, 2), o)
        self.assertEqual(r, (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_of_((2, 4), o)
        self.assertEqual(r, (2, 4))


    def testcallstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_of_((1, 1<<60), o)
        self.assertEqual(r, (1, 1<<60))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_of_((2, 4), o)
        self.assertEqual(r, (2, 4))


    def testinvokestructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_of_((1, 1<<60), o)
        self.assertEqual(r, (1, 1<<60))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_of_((2, 4), o)
        self.assertEqual(r, (2, 4))


    def testcallstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_of_((1, 2.5), o)
        self.assertEqual(r, (1, 2.5))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_of_((2, 4.5), o)
        self.assertEqual(r, (2, 4.5))


    def testinvokestructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_of_((1, 2.5), o)
        self.assertEqual(r, (1, 2.5))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_of_((2, 4.5), o)
        self.assertEqual(r, (2, 4.5))


    # Two arguments

    def testcallboolAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andboolArg_of_(YES, YES, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callboolArg_andboolArg_of_(YES, NO, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callboolArg_andboolArg_of_(NO, YES, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callboolArg_andboolArg_of_(NO, NO, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NO)


    def testinvokeboolAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andboolArg_of_(YES, YES, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeboolArg_andboolArg_of_(YES, NO, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeboolArg_andboolArg_of_(NO, YES, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeboolArg_andboolArg_of_(NO, NO, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NO)


    def testcallboolAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andBOOLArg_of_(YES, YES, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callboolArg_andBOOLArg_of_(YES, NO, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callboolArg_andBOOLArg_of_(NO, YES, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callboolArg_andBOOLArg_of_(NO, NO, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NO)


    def testinvokeboolAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andBOOLArg_of_(YES, YES, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeboolArg_andBOOLArg_of_(YES, NO, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeboolArg_andBOOLArg_of_(NO, YES, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeboolArg_andBOOLArg_of_(NO, NO, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NO)


    def testcallboolAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andcharArg_of_(YES, -128, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callboolArg_andcharArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andcharArg_of_(YES, 127, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callboolArg_andcharArg_of_(NO, -128, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callboolArg_andcharArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andcharArg_of_(NO, 127, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 127)


    def testinvokeboolAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andcharArg_of_(YES, -128, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeboolArg_andcharArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andcharArg_of_(YES, 127, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokeboolArg_andcharArg_of_(NO, -128, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeboolArg_andcharArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andcharArg_of_(NO, 127, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 127)


    def testcallboolAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andsignedshortArg_of_(YES, -(1<<14), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callboolArg_andsignedshortArg_of_(YES, -42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callboolArg_andsignedshortArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andsignedshortArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callboolArg_andsignedshortArg_of_(YES, 1 << 14, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callboolArg_andsignedshortArg_of_(NO, -(1<<14), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callboolArg_andsignedshortArg_of_(NO, -42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callboolArg_andsignedshortArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andsignedshortArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callboolArg_andsignedshortArg_of_(NO, 1 << 14, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 14)


    def testinvokeboolAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andsignedshortArg_of_(YES, -(1<<14), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeboolArg_andsignedshortArg_of_(YES, -42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeboolArg_andsignedshortArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andsignedshortArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeboolArg_andsignedshortArg_of_(YES, 1 << 14, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokeboolArg_andsignedshortArg_of_(NO, -(1<<14), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeboolArg_andsignedshortArg_of_(NO, -42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeboolArg_andsignedshortArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andsignedshortArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeboolArg_andsignedshortArg_of_(NO, 1 << 14, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 14)


    def testcallboolAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andsignedintArg_of_(YES, -(1<<30), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callboolArg_andsignedintArg_of_(YES, -42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callboolArg_andsignedintArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andsignedintArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callboolArg_andsignedintArg_of_(YES, 1 << 30, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callboolArg_andsignedintArg_of_(NO, -(1<<30), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callboolArg_andsignedintArg_of_(NO, -42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callboolArg_andsignedintArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andsignedintArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callboolArg_andsignedintArg_of_(NO, 1 << 30, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeboolAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andsignedintArg_of_(YES, -(1<<30), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeboolArg_andsignedintArg_of_(YES, -42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeboolArg_andsignedintArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andsignedintArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeboolArg_andsignedintArg_of_(YES, 1 << 30, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeboolArg_andsignedintArg_of_(NO, -(1<<30), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeboolArg_andsignedintArg_of_(NO, -42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeboolArg_andsignedintArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andsignedintArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeboolArg_andsignedintArg_of_(NO, 1 << 30, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testcallboolAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andsignedlongArg_of_(YES, -(1<<30), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callboolArg_andsignedlongArg_of_(YES, -42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callboolArg_andsignedlongArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andsignedlongArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callboolArg_andsignedlongArg_of_(YES, 1 << 30, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callboolArg_andsignedlongArg_of_(NO, -(1<<30), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callboolArg_andsignedlongArg_of_(NO, -42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callboolArg_andsignedlongArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andsignedlongArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callboolArg_andsignedlongArg_of_(NO, 1 << 30, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeboolAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andsignedlongArg_of_(YES, -(1<<30), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeboolArg_andsignedlongArg_of_(YES, -42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeboolArg_andsignedlongArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andsignedlongArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeboolArg_andsignedlongArg_of_(YES, 1 << 30, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeboolArg_andsignedlongArg_of_(NO, -(1<<30), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeboolArg_andsignedlongArg_of_(NO, -42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeboolArg_andsignedlongArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andsignedlongArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeboolArg_andsignedlongArg_of_(NO, 1 << 30, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testcallboolAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andsignedlonglongArg_of_(YES, -(1 << 60), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callboolArg_andsignedlonglongArg_of_(YES, -42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callboolArg_andsignedlonglongArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andsignedlonglongArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callboolArg_andsignedlonglongArg_of_(YES, 1 << 60, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callboolArg_andsignedlonglongArg_of_(NO, -(1 << 60), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callboolArg_andsignedlonglongArg_of_(NO, -42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callboolArg_andsignedlonglongArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andsignedlonglongArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callboolArg_andsignedlonglongArg_of_(NO, 1 << 60, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 60)


    def testinvokeboolAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andsignedlonglongArg_of_(YES, -(1 << 60), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeboolArg_andsignedlonglongArg_of_(YES, -42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeboolArg_andsignedlonglongArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andsignedlonglongArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeboolArg_andsignedlonglongArg_of_(YES, 1 << 60, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokeboolArg_andsignedlonglongArg_of_(NO, -(1 << 60), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeboolArg_andsignedlonglongArg_of_(NO, -42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeboolArg_andsignedlonglongArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andsignedlonglongArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeboolArg_andsignedlonglongArg_of_(NO, 1 << 60, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 60)


    def testcallboolAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andunsignedcharArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andunsignedcharArg_of_(YES, 128, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callboolArg_andunsignedcharArg_of_(YES, 255, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callboolArg_andunsignedcharArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andunsignedcharArg_of_(NO, 128, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callboolArg_andunsignedcharArg_of_(NO, 255, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 255)


    def testinvokeboolAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedcharArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedcharArg_of_(YES, 128, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedcharArg_of_(YES, 255, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedcharArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedcharArg_of_(NO, 128, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedcharArg_of_(NO, 255, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 255)


    def testcallboolAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andunsignedshortArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andunsignedshortArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callboolArg_andunsignedshortArg_of_(YES, 1<<14, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callboolArg_andunsignedshortArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andunsignedshortArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callboolArg_andunsignedshortArg_of_(NO, 1<<14, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1<<14)


    def testinvokeboolAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedshortArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedshortArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedshortArg_of_(YES, 1<<14, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedshortArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedshortArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedshortArg_of_(NO, 1<<14, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1<<14)


    def testcallboolAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andunsignedintArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andunsignedintArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callboolArg_andunsignedintArg_of_(YES, 1 << 30, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callboolArg_andunsignedintArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andunsignedintArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callboolArg_andunsignedintArg_of_(NO, 1 << 30, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeboolAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedintArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedintArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedintArg_of_(YES, 1 << 30, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedintArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedintArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedintArg_of_(NO, 1 << 30, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testcallboolAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andunsignedlongArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andunsignedlongArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callboolArg_andunsignedlongArg_of_(YES, 1 << 30, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callboolArg_andunsignedlongArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andunsignedlongArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callboolArg_andunsignedlongArg_of_(NO, 1 << 30, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeboolAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedlongArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedlongArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedlongArg_of_(YES, 1 << 30, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedlongArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedlongArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedlongArg_of_(NO, 1 << 30, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testcallboolAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andunsignedlonglongArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andunsignedlonglongArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callboolArg_andunsignedlonglongArg_of_(YES, 1 << 62, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callboolArg_andunsignedlonglongArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callboolArg_andunsignedlonglongArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callboolArg_andunsignedlonglongArg_of_(NO, 1 << 62, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 62)


    def testinvokeboolAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedlonglongArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedlonglongArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedlonglongArg_of_(YES, 1 << 62, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedlonglongArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedlonglongArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeboolArg_andunsignedlonglongArg_of_(NO, 1 << 62, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 62)


    def testcallboolAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andfloatArg_of_(YES, 0.128, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callboolArg_andfloatArg_of_(YES, 1.0, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callboolArg_andfloatArg_of_(YES, 42.0, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callboolArg_andfloatArg_of_(YES, 1e10, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callboolArg_andfloatArg_of_(NO, 0.128, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callboolArg_andfloatArg_of_(NO, 1.0, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callboolArg_andfloatArg_of_(NO, 42.0, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callboolArg_andfloatArg_of_(NO, 1e10, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeboolAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andfloatArg_of_(YES, 0.128, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeboolArg_andfloatArg_of_(YES, 1.0, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeboolArg_andfloatArg_of_(YES, 42.0, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeboolArg_andfloatArg_of_(YES, 1e10, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeboolArg_andfloatArg_of_(NO, 0.128, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeboolArg_andfloatArg_of_(NO, 1.0, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeboolArg_andfloatArg_of_(NO, 42.0, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeboolArg_andfloatArg_of_(NO, 1e10, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallboolAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_anddoubleArg_of_(YES, 0.128, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callboolArg_anddoubleArg_of_(YES, 1.0, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callboolArg_anddoubleArg_of_(YES, 42.0, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callboolArg_anddoubleArg_of_(YES, 1e10, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callboolArg_anddoubleArg_of_(NO, 0.128, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callboolArg_anddoubleArg_of_(NO, 1.0, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callboolArg_anddoubleArg_of_(NO, 42.0, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callboolArg_anddoubleArg_of_(NO, 1e10, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeboolAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_anddoubleArg_of_(YES, 0.128, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeboolArg_anddoubleArg_of_(YES, 1.0, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeboolArg_anddoubleArg_of_(YES, 42.0, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeboolArg_anddoubleArg_of_(YES, 1e10, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeboolArg_anddoubleArg_of_(NO, 0.128, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeboolArg_anddoubleArg_of_(NO, 1.0, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeboolArg_anddoubleArg_of_(NO, 42.0, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeboolArg_anddoubleArg_of_(NO, 1e10, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallboolAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andidArg_of_(YES, NSPriorDayDesignations, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callboolArg_andidArg_of_(NO, NSPriorDayDesignations, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokeboolAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andidArg_of_(YES, NSPriorDayDesignations, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokeboolArg_andidArg_of_(NO, NSPriorDayDesignations, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallboolAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andcharPtrArg_of_(YES, b"hello", o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callboolArg_andcharPtrArg_of_(YES, b"world", o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callboolArg_andcharPtrArg_of_(YES, b"foobar", o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callboolArg_andcharPtrArg_of_(NO, b"hello", o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callboolArg_andcharPtrArg_of_(NO, b"world", o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callboolArg_andcharPtrArg_of_(NO, b"foobar", o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokeboolAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andcharPtrArg_of_(YES, b"hello", o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeboolArg_andcharPtrArg_of_(YES, b"world", o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeboolArg_andcharPtrArg_of_(YES, b"foobar", o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokeboolArg_andcharPtrArg_of_(NO, b"hello", o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeboolArg_andcharPtrArg_of_(NO, b"world", o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeboolArg_andcharPtrArg_of_(NO, b"foobar", o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallboolAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andNSPointArg_of_(YES, (1, 2), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callboolArg_andNSPointArg_of_(YES, (3, 4), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callboolArg_andNSPointArg_of_(NO, (1, 2), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callboolArg_andNSPointArg_of_(NO, (3, 4), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (3, 4))


    def testinvokeboolAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andNSPointArg_of_(YES, (1, 2), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeboolArg_andNSPointArg_of_(YES, (3, 4), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokeboolArg_andNSPointArg_of_(NO, (1, 2), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeboolArg_andNSPointArg_of_(NO, (3, 4), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (3, 4))


    def testcallboolAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andNSRectArg_of_(YES, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callboolArg_andNSRectArg_of_(YES, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callboolArg_andNSRectArg_of_(NO, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callboolArg_andNSRectArg_of_(NO, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokeboolAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andNSRectArg_of_(YES, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeboolArg_andNSRectArg_of_(YES, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokeboolArg_andNSRectArg_of_(NO, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeboolArg_andNSRectArg_of_(NO, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallboolAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct1Arg_of_(YES, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct1Arg_of_(YES, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct1Arg_of_(NO, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct1Arg_of_(NO, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeboolAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct1Arg_of_(YES, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct1Arg_of_(YES, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct1Arg_of_(NO, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct1Arg_of_(NO, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallboolAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct2Arg_of_(YES, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct2Arg_of_(YES, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct2Arg_of_(NO, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct2Arg_of_(NO, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeboolAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct2Arg_of_(YES, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct2Arg_of_(YES, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct2Arg_of_(NO, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct2Arg_of_(NO, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallboolAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct3Arg_of_(YES, (1, 2), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct3Arg_of_(YES, (2, 4), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct3Arg_of_(NO, (1, 2), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct3Arg_of_(NO, (2, 4), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4))


    def testinvokeboolAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct3Arg_of_(YES, (1, 2), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct3Arg_of_(YES, (2, 4), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct3Arg_of_(NO, (1, 2), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct3Arg_of_(NO, (2, 4), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4))


    def testcallboolAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct4Arg_of_(YES, (1, 1<<60), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct4Arg_of_(YES, (2, 4), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct4Arg_of_(NO, (1, 1<<60), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct4Arg_of_(NO, (2, 4), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4))


    def testinvokeboolAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct4Arg_of_(YES, (1, 1<<60), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct4Arg_of_(YES, (2, 4), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct4Arg_of_(NO, (1, 1<<60), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct4Arg_of_(NO, (2, 4), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4))


    def testcallboolAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct5Arg_of_(YES, (1, 2.5), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct5Arg_of_(YES, (2, 4.5), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct5Arg_of_(NO, (1, 2.5), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callboolArg_andstructTestStruct5Arg_of_(NO, (2, 4.5), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4.5))


    def testinvokeboolAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct5Arg_of_(YES, (1, 2.5), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct5Arg_of_(YES, (2, 4.5), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct5Arg_of_(NO, (1, 2.5), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeboolArg_andstructTestStruct5Arg_of_(NO, (2, 4.5), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4.5))


    def testcallBOOLAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andboolArg_of_(YES, YES, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callBOOLArg_andboolArg_of_(YES, NO, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callBOOLArg_andboolArg_of_(NO, YES, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callBOOLArg_andboolArg_of_(NO, NO, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NO)


    def testinvokeBOOLAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andboolArg_of_(YES, YES, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeBOOLArg_andboolArg_of_(YES, NO, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeBOOLArg_andboolArg_of_(NO, YES, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeBOOLArg_andboolArg_of_(NO, NO, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NO)


    def testcallBOOLAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andBOOLArg_of_(YES, YES, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callBOOLArg_andBOOLArg_of_(YES, NO, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callBOOLArg_andBOOLArg_of_(NO, YES, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callBOOLArg_andBOOLArg_of_(NO, NO, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NO)


    def testinvokeBOOLAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andBOOLArg_of_(YES, YES, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeBOOLArg_andBOOLArg_of_(YES, NO, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeBOOLArg_andBOOLArg_of_(NO, YES, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeBOOLArg_andBOOLArg_of_(NO, NO, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NO)


    def testcallBOOLAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andcharArg_of_(YES, -128, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callBOOLArg_andcharArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andcharArg_of_(YES, 127, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callBOOLArg_andcharArg_of_(NO, -128, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callBOOLArg_andcharArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andcharArg_of_(NO, 127, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 127)


    def testinvokeBOOLAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andcharArg_of_(YES, -128, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeBOOLArg_andcharArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andcharArg_of_(YES, 127, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokeBOOLArg_andcharArg_of_(NO, -128, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeBOOLArg_andcharArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andcharArg_of_(NO, 127, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 127)


    def testcallBOOLAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andsignedshortArg_of_(YES, -(1<<14), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callBOOLArg_andsignedshortArg_of_(YES, -42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callBOOLArg_andsignedshortArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andsignedshortArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callBOOLArg_andsignedshortArg_of_(YES, 1 << 14, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callBOOLArg_andsignedshortArg_of_(NO, -(1<<14), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callBOOLArg_andsignedshortArg_of_(NO, -42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callBOOLArg_andsignedshortArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andsignedshortArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callBOOLArg_andsignedshortArg_of_(NO, 1 << 14, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 14)


    def testinvokeBOOLAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedshortArg_of_(YES, -(1<<14), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedshortArg_of_(YES, -42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedshortArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedshortArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedshortArg_of_(YES, 1 << 14, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedshortArg_of_(NO, -(1<<14), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedshortArg_of_(NO, -42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedshortArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedshortArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedshortArg_of_(NO, 1 << 14, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 14)


    def testcallBOOLAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andsignedintArg_of_(YES, -(1<<30), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callBOOLArg_andsignedintArg_of_(YES, -42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callBOOLArg_andsignedintArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andsignedintArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callBOOLArg_andsignedintArg_of_(YES, 1 << 30, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callBOOLArg_andsignedintArg_of_(NO, -(1<<30), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callBOOLArg_andsignedintArg_of_(NO, -42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callBOOLArg_andsignedintArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andsignedintArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callBOOLArg_andsignedintArg_of_(NO, 1 << 30, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeBOOLAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedintArg_of_(YES, -(1<<30), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedintArg_of_(YES, -42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedintArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedintArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedintArg_of_(YES, 1 << 30, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedintArg_of_(NO, -(1<<30), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedintArg_of_(NO, -42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedintArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedintArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedintArg_of_(NO, 1 << 30, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testcallBOOLAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andsignedlongArg_of_(YES, -(1<<30), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callBOOLArg_andsignedlongArg_of_(YES, -42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callBOOLArg_andsignedlongArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andsignedlongArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callBOOLArg_andsignedlongArg_of_(YES, 1 << 30, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callBOOLArg_andsignedlongArg_of_(NO, -(1<<30), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callBOOLArg_andsignedlongArg_of_(NO, -42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callBOOLArg_andsignedlongArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andsignedlongArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callBOOLArg_andsignedlongArg_of_(NO, 1 << 30, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeBOOLAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlongArg_of_(YES, -(1<<30), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlongArg_of_(YES, -42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlongArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlongArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlongArg_of_(YES, 1 << 30, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlongArg_of_(NO, -(1<<30), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlongArg_of_(NO, -42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlongArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlongArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlongArg_of_(NO, 1 << 30, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testcallBOOLAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andsignedlonglongArg_of_(YES, -(1 << 60), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callBOOLArg_andsignedlonglongArg_of_(YES, -42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callBOOLArg_andsignedlonglongArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andsignedlonglongArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callBOOLArg_andsignedlonglongArg_of_(YES, 1 << 60, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callBOOLArg_andsignedlonglongArg_of_(NO, -(1 << 60), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callBOOLArg_andsignedlonglongArg_of_(NO, -42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callBOOLArg_andsignedlonglongArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andsignedlonglongArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callBOOLArg_andsignedlonglongArg_of_(NO, 1 << 60, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 60)


    def testinvokeBOOLAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlonglongArg_of_(YES, -(1 << 60), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlonglongArg_of_(YES, -42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlonglongArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlonglongArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlonglongArg_of_(YES, 1 << 60, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlonglongArg_of_(NO, -(1 << 60), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlonglongArg_of_(NO, -42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlonglongArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlonglongArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeBOOLArg_andsignedlonglongArg_of_(NO, 1 << 60, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 60)


    def testcallBOOLAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedcharArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedcharArg_of_(YES, 128, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedcharArg_of_(YES, 255, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedcharArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedcharArg_of_(NO, 128, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedcharArg_of_(NO, 255, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 255)


    def testinvokeBOOLAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedcharArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedcharArg_of_(YES, 128, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedcharArg_of_(YES, 255, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedcharArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedcharArg_of_(NO, 128, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedcharArg_of_(NO, 255, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 255)


    def testcallBOOLAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedshortArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedshortArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedshortArg_of_(YES, 1<<14, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedshortArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedshortArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedshortArg_of_(NO, 1<<14, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1<<14)


    def testinvokeBOOLAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedshortArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedshortArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedshortArg_of_(YES, 1<<14, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedshortArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedshortArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedshortArg_of_(NO, 1<<14, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1<<14)


    def testcallBOOLAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedintArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedintArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedintArg_of_(YES, 1 << 30, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedintArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedintArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedintArg_of_(NO, 1 << 30, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeBOOLAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedintArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedintArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedintArg_of_(YES, 1 << 30, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedintArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedintArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedintArg_of_(NO, 1 << 30, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testcallBOOLAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedlongArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedlongArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedlongArg_of_(YES, 1 << 30, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedlongArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedlongArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedlongArg_of_(NO, 1 << 30, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeBOOLAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedlongArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedlongArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedlongArg_of_(YES, 1 << 30, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedlongArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedlongArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedlongArg_of_(NO, 1 << 30, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 30)


    def testcallBOOLAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedlonglongArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedlonglongArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedlonglongArg_of_(YES, 1 << 62, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedlonglongArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedlonglongArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callBOOLArg_andunsignedlonglongArg_of_(NO, 1 << 62, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 62)


    def testinvokeBOOLAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedlonglongArg_of_(YES, 0, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedlonglongArg_of_(YES, 42, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedlonglongArg_of_(YES, 1 << 62, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedlonglongArg_of_(NO, 0, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedlonglongArg_of_(NO, 42, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeBOOLArg_andunsignedlonglongArg_of_(NO, 1 << 62, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], 1 << 62)


    def testcallBOOLAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andfloatArg_of_(YES, 0.128, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callBOOLArg_andfloatArg_of_(YES, 1.0, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callBOOLArg_andfloatArg_of_(YES, 42.0, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callBOOLArg_andfloatArg_of_(YES, 1e10, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callBOOLArg_andfloatArg_of_(NO, 0.128, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callBOOLArg_andfloatArg_of_(NO, 1.0, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callBOOLArg_andfloatArg_of_(NO, 42.0, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callBOOLArg_andfloatArg_of_(NO, 1e10, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeBOOLAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andfloatArg_of_(YES, 0.128, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeBOOLArg_andfloatArg_of_(YES, 1.0, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeBOOLArg_andfloatArg_of_(YES, 42.0, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeBOOLArg_andfloatArg_of_(YES, 1e10, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeBOOLArg_andfloatArg_of_(NO, 0.128, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeBOOLArg_andfloatArg_of_(NO, 1.0, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeBOOLArg_andfloatArg_of_(NO, 42.0, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeBOOLArg_andfloatArg_of_(NO, 1e10, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallBOOLAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_anddoubleArg_of_(YES, 0.128, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callBOOLArg_anddoubleArg_of_(YES, 1.0, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callBOOLArg_anddoubleArg_of_(YES, 42.0, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callBOOLArg_anddoubleArg_of_(YES, 1e10, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callBOOLArg_anddoubleArg_of_(NO, 0.128, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callBOOLArg_anddoubleArg_of_(NO, 1.0, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callBOOLArg_anddoubleArg_of_(NO, 42.0, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callBOOLArg_anddoubleArg_of_(NO, 1e10, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeBOOLAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_anddoubleArg_of_(YES, 0.128, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeBOOLArg_anddoubleArg_of_(YES, 1.0, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeBOOLArg_anddoubleArg_of_(YES, 42.0, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeBOOLArg_anddoubleArg_of_(YES, 1e10, o)
        self.assertEqual(r[0], YES)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeBOOLArg_anddoubleArg_of_(NO, 0.128, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeBOOLArg_anddoubleArg_of_(NO, 1.0, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeBOOLArg_anddoubleArg_of_(NO, 42.0, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeBOOLArg_anddoubleArg_of_(NO, 1e10, o)
        self.assertEqual(r[0], NO)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallBOOLAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andidArg_of_(YES, NSPriorDayDesignations, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callBOOLArg_andidArg_of_(NO, NSPriorDayDesignations, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokeBOOLAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andidArg_of_(YES, NSPriorDayDesignations, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokeBOOLArg_andidArg_of_(NO, NSPriorDayDesignations, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallBOOLAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andcharPtrArg_of_(YES, b"hello", o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callBOOLArg_andcharPtrArg_of_(YES, b"world", o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callBOOLArg_andcharPtrArg_of_(YES, b"foobar", o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callBOOLArg_andcharPtrArg_of_(NO, b"hello", o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callBOOLArg_andcharPtrArg_of_(NO, b"world", o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callBOOLArg_andcharPtrArg_of_(NO, b"foobar", o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokeBOOLAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andcharPtrArg_of_(YES, b"hello", o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeBOOLArg_andcharPtrArg_of_(YES, b"world", o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeBOOLArg_andcharPtrArg_of_(YES, b"foobar", o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokeBOOLArg_andcharPtrArg_of_(NO, b"hello", o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeBOOLArg_andcharPtrArg_of_(NO, b"world", o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeBOOLArg_andcharPtrArg_of_(NO, b"foobar", o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallBOOLAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andNSPointArg_of_(YES, (1, 2), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callBOOLArg_andNSPointArg_of_(YES, (3, 4), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callBOOLArg_andNSPointArg_of_(NO, (1, 2), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callBOOLArg_andNSPointArg_of_(NO, (3, 4), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (3, 4))


    def testinvokeBOOLAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andNSPointArg_of_(YES, (1, 2), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeBOOLArg_andNSPointArg_of_(YES, (3, 4), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokeBOOLArg_andNSPointArg_of_(NO, (1, 2), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeBOOLArg_andNSPointArg_of_(NO, (3, 4), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (3, 4))


    def testcallBOOLAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andNSRectArg_of_(YES, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callBOOLArg_andNSRectArg_of_(YES, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callBOOLArg_andNSRectArg_of_(NO, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callBOOLArg_andNSRectArg_of_(NO, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokeBOOLAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andNSRectArg_of_(YES, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeBOOLArg_andNSRectArg_of_(YES, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokeBOOLArg_andNSRectArg_of_(NO, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeBOOLArg_andNSRectArg_of_(NO, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallBOOLAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct1Arg_of_(YES, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct1Arg_of_(YES, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct1Arg_of_(NO, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct1Arg_of_(NO, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeBOOLAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct1Arg_of_(YES, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct1Arg_of_(YES, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct1Arg_of_(NO, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct1Arg_of_(NO, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallBOOLAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct2Arg_of_(YES, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct2Arg_of_(YES, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct2Arg_of_(NO, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct2Arg_of_(NO, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeBOOLAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct2Arg_of_(YES, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct2Arg_of_(YES, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct2Arg_of_(NO, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct2Arg_of_(NO, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallBOOLAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct3Arg_of_(YES, (1, 2), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct3Arg_of_(YES, (2, 4), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct3Arg_of_(NO, (1, 2), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct3Arg_of_(NO, (2, 4), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4))


    def testinvokeBOOLAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct3Arg_of_(YES, (1, 2), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct3Arg_of_(YES, (2, 4), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct3Arg_of_(NO, (1, 2), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct3Arg_of_(NO, (2, 4), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4))


    def testcallBOOLAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct4Arg_of_(YES, (1, 1<<60), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct4Arg_of_(YES, (2, 4), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct4Arg_of_(NO, (1, 1<<60), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct4Arg_of_(NO, (2, 4), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4))


    def testinvokeBOOLAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct4Arg_of_(YES, (1, 1<<60), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct4Arg_of_(YES, (2, 4), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct4Arg_of_(NO, (1, 1<<60), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct4Arg_of_(NO, (2, 4), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4))


    def testcallBOOLAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct5Arg_of_(YES, (1, 2.5), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct5Arg_of_(YES, (2, 4.5), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct5Arg_of_(NO, (1, 2.5), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callBOOLArg_andstructTestStruct5Arg_of_(NO, (2, 4.5), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4.5))


    def testinvokeBOOLAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct5Arg_of_(YES, (1, 2.5), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct5Arg_of_(YES, (2, 4.5), o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct5Arg_of_(NO, (1, 2.5), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeBOOLArg_andstructTestStruct5Arg_of_(NO, (2, 4.5), o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], (2, 4.5))


    def testcallcharAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andboolArg_of_(-128, YES, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callcharArg_andboolArg_of_(-128, NO, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callcharArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callcharArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callcharArg_andboolArg_of_(127, YES, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callcharArg_andboolArg_of_(127, NO, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], NO)


    def testinvokecharAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andboolArg_of_(-128, YES, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokecharArg_andboolArg_of_(-128, NO, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokecharArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokecharArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokecharArg_andboolArg_of_(127, YES, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokecharArg_andboolArg_of_(127, NO, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], NO)


    def testcallcharAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andBOOLArg_of_(-128, YES, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callcharArg_andBOOLArg_of_(-128, NO, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callcharArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callcharArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callcharArg_andBOOLArg_of_(127, YES, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callcharArg_andBOOLArg_of_(127, NO, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], NO)


    def testinvokecharAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andBOOLArg_of_(-128, YES, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokecharArg_andBOOLArg_of_(-128, NO, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokecharArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokecharArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokecharArg_andBOOLArg_of_(127, YES, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokecharArg_andBOOLArg_of_(127, NO, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], NO)


    def testcallcharAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andcharArg_of_(-128, -128, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callcharArg_andcharArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andcharArg_of_(-128, 127, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callcharArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callcharArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callcharArg_andcharArg_of_(127, -128, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callcharArg_andcharArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andcharArg_of_(127, 127, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 127)


    def testinvokecharAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andcharArg_of_(-128, -128, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokecharArg_andcharArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andcharArg_of_(-128, 127, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokecharArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokecharArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokecharArg_andcharArg_of_(127, -128, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokecharArg_andcharArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andcharArg_of_(127, 127, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 127)


    def testcallcharAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andsignedshortArg_of_(-128, -(1<<14), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callcharArg_andsignedshortArg_of_(-128, -42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharArg_andsignedshortArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andsignedshortArg_of_(-128, 42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andsignedshortArg_of_(-128, 1 << 14, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callcharArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callcharArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callcharArg_andsignedshortArg_of_(127, -(1<<14), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callcharArg_andsignedshortArg_of_(127, -42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharArg_andsignedshortArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andsignedshortArg_of_(127, 42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andsignedshortArg_of_(127, 1 << 14, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 14)


    def testinvokecharAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andsignedshortArg_of_(-128, -(1<<14), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokecharArg_andsignedshortArg_of_(-128, -42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharArg_andsignedshortArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andsignedshortArg_of_(-128, 42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andsignedshortArg_of_(-128, 1 << 14, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokecharArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokecharArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokecharArg_andsignedshortArg_of_(127, -(1<<14), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokecharArg_andsignedshortArg_of_(127, -42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharArg_andsignedshortArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andsignedshortArg_of_(127, 42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andsignedshortArg_of_(127, 1 << 14, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 14)


    def testcallcharAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andsignedintArg_of_(-128, -(1<<30), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callcharArg_andsignedintArg_of_(-128, -42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharArg_andsignedintArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andsignedintArg_of_(-128, 42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andsignedintArg_of_(-128, 1 << 30, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callcharArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callcharArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callcharArg_andsignedintArg_of_(127, -(1<<30), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callcharArg_andsignedintArg_of_(127, -42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharArg_andsignedintArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andsignedintArg_of_(127, 42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andsignedintArg_of_(127, 1 << 30, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 30)


    def testinvokecharAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andsignedintArg_of_(-128, -(1<<30), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokecharArg_andsignedintArg_of_(-128, -42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharArg_andsignedintArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andsignedintArg_of_(-128, 42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andsignedintArg_of_(-128, 1 << 30, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokecharArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokecharArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokecharArg_andsignedintArg_of_(127, -(1<<30), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokecharArg_andsignedintArg_of_(127, -42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharArg_andsignedintArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andsignedintArg_of_(127, 42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andsignedintArg_of_(127, 1 << 30, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 30)


    def testcallcharAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andsignedlongArg_of_(-128, -(1<<30), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callcharArg_andsignedlongArg_of_(-128, -42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharArg_andsignedlongArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andsignedlongArg_of_(-128, 42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andsignedlongArg_of_(-128, 1 << 30, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callcharArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callcharArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callcharArg_andsignedlongArg_of_(127, -(1<<30), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callcharArg_andsignedlongArg_of_(127, -42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharArg_andsignedlongArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andsignedlongArg_of_(127, 42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andsignedlongArg_of_(127, 1 << 30, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 30)


    def testinvokecharAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andsignedlongArg_of_(-128, -(1<<30), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokecharArg_andsignedlongArg_of_(-128, -42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharArg_andsignedlongArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andsignedlongArg_of_(-128, 42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andsignedlongArg_of_(-128, 1 << 30, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokecharArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokecharArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokecharArg_andsignedlongArg_of_(127, -(1<<30), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokecharArg_andsignedlongArg_of_(127, -42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharArg_andsignedlongArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andsignedlongArg_of_(127, 42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andsignedlongArg_of_(127, 1 << 30, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 30)


    def testcallcharAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andsignedlonglongArg_of_(-128, -(1 << 60), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callcharArg_andsignedlonglongArg_of_(-128, -42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharArg_andsignedlonglongArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andsignedlonglongArg_of_(-128, 42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andsignedlonglongArg_of_(-128, 1 << 60, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callcharArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callcharArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callcharArg_andsignedlonglongArg_of_(127, -(1 << 60), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callcharArg_andsignedlonglongArg_of_(127, -42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharArg_andsignedlonglongArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andsignedlonglongArg_of_(127, 42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andsignedlonglongArg_of_(127, 1 << 60, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 60)


    def testinvokecharAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andsignedlonglongArg_of_(-128, -(1 << 60), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokecharArg_andsignedlonglongArg_of_(-128, -42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharArg_andsignedlonglongArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andsignedlonglongArg_of_(-128, 42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andsignedlonglongArg_of_(-128, 1 << 60, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokecharArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokecharArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokecharArg_andsignedlonglongArg_of_(127, -(1 << 60), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokecharArg_andsignedlonglongArg_of_(127, -42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharArg_andsignedlonglongArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andsignedlonglongArg_of_(127, 42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andsignedlonglongArg_of_(127, 1 << 60, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 60)


    def testcallcharAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andunsignedcharArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andunsignedcharArg_of_(-128, 128, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callcharArg_andunsignedcharArg_of_(-128, 255, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callcharArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callcharArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callcharArg_andunsignedcharArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andunsignedcharArg_of_(127, 128, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callcharArg_andunsignedcharArg_of_(127, 255, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 255)


    def testinvokecharAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andunsignedcharArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andunsignedcharArg_of_(-128, 128, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokecharArg_andunsignedcharArg_of_(-128, 255, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokecharArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokecharArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokecharArg_andunsignedcharArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andunsignedcharArg_of_(127, 128, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokecharArg_andunsignedcharArg_of_(127, 255, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 255)


    def testcallcharAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andunsignedshortArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andunsignedshortArg_of_(-128, 42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andunsignedshortArg_of_(-128, 1<<14, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callcharArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callcharArg_andunsignedshortArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andunsignedshortArg_of_(127, 42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andunsignedshortArg_of_(127, 1<<14, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1<<14)


    def testinvokecharAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andunsignedshortArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andunsignedshortArg_of_(-128, 42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andunsignedshortArg_of_(-128, 1<<14, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokecharArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokecharArg_andunsignedshortArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andunsignedshortArg_of_(127, 42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andunsignedshortArg_of_(127, 1<<14, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1<<14)


    def testcallcharAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andunsignedintArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andunsignedintArg_of_(-128, 42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andunsignedintArg_of_(-128, 1 << 30, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callcharArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callcharArg_andunsignedintArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andunsignedintArg_of_(127, 42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andunsignedintArg_of_(127, 1 << 30, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 30)


    def testinvokecharAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andunsignedintArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andunsignedintArg_of_(-128, 42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andunsignedintArg_of_(-128, 1 << 30, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokecharArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokecharArg_andunsignedintArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andunsignedintArg_of_(127, 42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andunsignedintArg_of_(127, 1 << 30, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 30)


    def testcallcharAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andunsignedlongArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andunsignedlongArg_of_(-128, 42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andunsignedlongArg_of_(-128, 1 << 30, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callcharArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callcharArg_andunsignedlongArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andunsignedlongArg_of_(127, 42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andunsignedlongArg_of_(127, 1 << 30, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 30)


    def testinvokecharAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlongArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlongArg_of_(-128, 42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlongArg_of_(-128, 1 << 30, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlongArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlongArg_of_(127, 42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlongArg_of_(127, 1 << 30, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 30)


    def testcallcharAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andunsignedlonglongArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andunsignedlonglongArg_of_(-128, 42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andunsignedlonglongArg_of_(-128, 1 << 62, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callcharArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callcharArg_andunsignedlonglongArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharArg_andunsignedlonglongArg_of_(127, 42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharArg_andunsignedlonglongArg_of_(127, 1 << 62, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 62)


    def testinvokecharAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlonglongArg_of_(-128, 0, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlonglongArg_of_(-128, 42, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlonglongArg_of_(-128, 1 << 62, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlonglongArg_of_(127, 0, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlonglongArg_of_(127, 42, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharArg_andunsignedlonglongArg_of_(127, 1 << 62, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], 1 << 62)


    def testcallcharAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andfloatArg_of_(-128, 0.128, o)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callcharArg_andfloatArg_of_(-128, 1.0, o)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callcharArg_andfloatArg_of_(-128, 42.0, o)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callcharArg_andfloatArg_of_(-128, 1e10, o)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callcharArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callcharArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callcharArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callcharArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callcharArg_andfloatArg_of_(127, 0.128, o)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callcharArg_andfloatArg_of_(127, 1.0, o)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callcharArg_andfloatArg_of_(127, 42.0, o)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callcharArg_andfloatArg_of_(127, 1e10, o)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokecharAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andfloatArg_of_(-128, 0.128, o)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokecharArg_andfloatArg_of_(-128, 1.0, o)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokecharArg_andfloatArg_of_(-128, 42.0, o)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokecharArg_andfloatArg_of_(-128, 1e10, o)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokecharArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokecharArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokecharArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokecharArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokecharArg_andfloatArg_of_(127, 0.128, o)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokecharArg_andfloatArg_of_(127, 1.0, o)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokecharArg_andfloatArg_of_(127, 42.0, o)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokecharArg_andfloatArg_of_(127, 1e10, o)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallcharAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_anddoubleArg_of_(-128, 0.128, o)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callcharArg_anddoubleArg_of_(-128, 1.0, o)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callcharArg_anddoubleArg_of_(-128, 42.0, o)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callcharArg_anddoubleArg_of_(-128, 1e10, o)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callcharArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callcharArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callcharArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callcharArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callcharArg_anddoubleArg_of_(127, 0.128, o)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callcharArg_anddoubleArg_of_(127, 1.0, o)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callcharArg_anddoubleArg_of_(127, 42.0, o)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callcharArg_anddoubleArg_of_(127, 1e10, o)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokecharAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_anddoubleArg_of_(-128, 0.128, o)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokecharArg_anddoubleArg_of_(-128, 1.0, o)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokecharArg_anddoubleArg_of_(-128, 42.0, o)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokecharArg_anddoubleArg_of_(-128, 1e10, o)
        self.assertEqual(r[0], -128)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokecharArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokecharArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokecharArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokecharArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokecharArg_anddoubleArg_of_(127, 0.128, o)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokecharArg_anddoubleArg_of_(127, 1.0, o)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokecharArg_anddoubleArg_of_(127, 42.0, o)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokecharArg_anddoubleArg_of_(127, 1e10, o)
        self.assertEqual(r[0], 127)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallcharAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andidArg_of_(-128, NSPriorDayDesignations, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callcharArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callcharArg_andidArg_of_(127, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokecharAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andidArg_of_(-128, NSPriorDayDesignations, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokecharArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokecharArg_andidArg_of_(127, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallcharAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andcharPtrArg_of_(-128, b"hello", o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callcharArg_andcharPtrArg_of_(-128, b"world", o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callcharArg_andcharPtrArg_of_(-128, b"foobar", o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callcharArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callcharArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callcharArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callcharArg_andcharPtrArg_of_(127, b"hello", o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callcharArg_andcharPtrArg_of_(127, b"world", o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callcharArg_andcharPtrArg_of_(127, b"foobar", o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokecharAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andcharPtrArg_of_(-128, b"hello", o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokecharArg_andcharPtrArg_of_(-128, b"world", o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokecharArg_andcharPtrArg_of_(-128, b"foobar", o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokecharArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokecharArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokecharArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokecharArg_andcharPtrArg_of_(127, b"hello", o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokecharArg_andcharPtrArg_of_(127, b"world", o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokecharArg_andcharPtrArg_of_(127, b"foobar", o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallcharAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andNSPointArg_of_(-128, (1, 2), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callcharArg_andNSPointArg_of_(-128, (3, 4), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callcharArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callcharArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callcharArg_andNSPointArg_of_(127, (1, 2), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callcharArg_andNSPointArg_of_(127, (3, 4), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (3, 4))


    def testinvokecharAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andNSPointArg_of_(-128, (1, 2), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokecharArg_andNSPointArg_of_(-128, (3, 4), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokecharArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokecharArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokecharArg_andNSPointArg_of_(127, (1, 2), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokecharArg_andNSPointArg_of_(127, (3, 4), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (3, 4))


    def testcallcharAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andNSRectArg_of_(-128, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callcharArg_andNSRectArg_of_(-128, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callcharArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callcharArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callcharArg_andNSRectArg_of_(127, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callcharArg_andNSRectArg_of_(127, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokecharAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andNSRectArg_of_(-128, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokecharArg_andNSRectArg_of_(-128, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokecharArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokecharArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokecharArg_andNSRectArg_of_(127, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokecharArg_andNSRectArg_of_(127, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallcharAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct1Arg_of_(-128, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct1Arg_of_(-128, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct1Arg_of_(127, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct1Arg_of_(127, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokecharAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct1Arg_of_(-128, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct1Arg_of_(-128, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct1Arg_of_(127, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct1Arg_of_(127, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallcharAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct2Arg_of_(-128, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct2Arg_of_(-128, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct2Arg_of_(127, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct2Arg_of_(127, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokecharAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct2Arg_of_(-128, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct2Arg_of_(-128, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct2Arg_of_(127, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct2Arg_of_(127, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallcharAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct3Arg_of_(-128, (1, 2), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct3Arg_of_(-128, (2, 4), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct3Arg_of_(127, (1, 2), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct3Arg_of_(127, (2, 4), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (2, 4))


    def testinvokecharAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct3Arg_of_(-128, (1, 2), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct3Arg_of_(-128, (2, 4), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct3Arg_of_(127, (1, 2), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct3Arg_of_(127, (2, 4), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (2, 4))


    def testcallcharAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct4Arg_of_(-128, (1, 1<<60), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct4Arg_of_(-128, (2, 4), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct4Arg_of_(127, (1, 1<<60), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct4Arg_of_(127, (2, 4), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (2, 4))


    def testinvokecharAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct4Arg_of_(-128, (1, 1<<60), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct4Arg_of_(-128, (2, 4), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct4Arg_of_(127, (1, 1<<60), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct4Arg_of_(127, (2, 4), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (2, 4))


    def testcallcharAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct5Arg_of_(-128, (1, 2.5), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct5Arg_of_(-128, (2, 4.5), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct5Arg_of_(127, (1, 2.5), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callcharArg_andstructTestStruct5Arg_of_(127, (2, 4.5), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (2, 4.5))


    def testinvokecharAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct5Arg_of_(-128, (1, 2.5), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct5Arg_of_(-128, (2, 4.5), o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct5Arg_of_(127, (1, 2.5), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokecharArg_andstructTestStruct5Arg_of_(127, (2, 4.5), o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], (2, 4.5))


    def testcallsignedshortAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andboolArg_of_(-(1<<14), YES, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedshortArg_andboolArg_of_(-(1<<14), NO, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedshortArg_andboolArg_of_(-42, YES, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedshortArg_andboolArg_of_(-42, NO, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedshortArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedshortArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedshortArg_andboolArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedshortArg_andboolArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedshortArg_andboolArg_of_(1 << 14, YES, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedshortArg_andboolArg_of_(1 << 14, NO, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], NO)


    def testinvokesignedshortAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andboolArg_of_(-(1<<14), YES, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedshortArg_andboolArg_of_(-(1<<14), NO, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedshortArg_andboolArg_of_(-42, YES, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedshortArg_andboolArg_of_(-42, NO, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedshortArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedshortArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedshortArg_andboolArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedshortArg_andboolArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedshortArg_andboolArg_of_(1 << 14, YES, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedshortArg_andboolArg_of_(1 << 14, NO, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], NO)


    def testcallsignedshortAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andBOOLArg_of_(-(1<<14), YES, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedshortArg_andBOOLArg_of_(-(1<<14), NO, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedshortArg_andBOOLArg_of_(-42, YES, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedshortArg_andBOOLArg_of_(-42, NO, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedshortArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedshortArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedshortArg_andBOOLArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedshortArg_andBOOLArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedshortArg_andBOOLArg_of_(1 << 14, YES, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedshortArg_andBOOLArg_of_(1 << 14, NO, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], NO)


    def testinvokesignedshortAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andBOOLArg_of_(-(1<<14), YES, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedshortArg_andBOOLArg_of_(-(1<<14), NO, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedshortArg_andBOOLArg_of_(-42, YES, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedshortArg_andBOOLArg_of_(-42, NO, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedshortArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedshortArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedshortArg_andBOOLArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedshortArg_andBOOLArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedshortArg_andBOOLArg_of_(1 << 14, YES, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedshortArg_andBOOLArg_of_(1 << 14, NO, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], NO)


    def testcallsignedshortAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andcharArg_of_(-(1<<14), -128, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedshortArg_andcharArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andcharArg_of_(-(1<<14), 127, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callsignedshortArg_andcharArg_of_(-42, -128, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedshortArg_andcharArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andcharArg_of_(-42, 127, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callsignedshortArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedshortArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callsignedshortArg_andcharArg_of_(42, -128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedshortArg_andcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andcharArg_of_(42, 127, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callsignedshortArg_andcharArg_of_(1 << 14, -128, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedshortArg_andcharArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andcharArg_of_(1 << 14, 127, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 127)


    def testinvokesignedshortAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andcharArg_of_(-(1<<14), -128, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedshortArg_andcharArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andcharArg_of_(-(1<<14), 127, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokesignedshortArg_andcharArg_of_(-42, -128, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedshortArg_andcharArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andcharArg_of_(-42, 127, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokesignedshortArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedshortArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokesignedshortArg_andcharArg_of_(42, -128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedshortArg_andcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andcharArg_of_(42, 127, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokesignedshortArg_andcharArg_of_(1 << 14, -128, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedshortArg_andcharArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andcharArg_of_(1 << 14, 127, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 127)


    def testcallsignedshortAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(-(1<<14), -(1<<14), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(-(1<<14), -42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(-(1<<14), 42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(-(1<<14), 1 << 14, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(-42, -(1<<14), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(-42, 1 << 14, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(42, -(1<<14), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(42, 1 << 14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(1 << 14, -(1<<14), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(1 << 14, -42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(1 << 14, 42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedshortArg_of_(1 << 14, 1 << 14, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 14)


    def testinvokesignedshortAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(-(1<<14), -(1<<14), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(-(1<<14), -42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(-(1<<14), 42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(-(1<<14), 1 << 14, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(-42, -(1<<14), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(-42, 1 << 14, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(42, -(1<<14), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(42, 1 << 14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(1 << 14, -(1<<14), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(1 << 14, -42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(1 << 14, 42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedshortArg_of_(1 << 14, 1 << 14, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 14)


    def testcallsignedshortAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(-(1<<14), -(1<<30), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(-(1<<14), -42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(-(1<<14), 42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(-(1<<14), 1 << 30, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(-42, -(1<<30), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(1 << 14, -(1<<30), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(1 << 14, -42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(1 << 14, 42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedintArg_of_(1 << 14, 1 << 30, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedshortAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(-(1<<14), -(1<<30), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(-(1<<14), -42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(-(1<<14), 42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(-(1<<14), 1 << 30, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(-42, -(1<<30), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(1 << 14, -(1<<30), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(1 << 14, -42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(1 << 14, 42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedintArg_of_(1 << 14, 1 << 30, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedshortAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(-(1<<14), -(1<<30), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(-(1<<14), -42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(-(1<<14), 42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(-(1<<14), 1 << 30, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(-42, -(1<<30), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(1 << 14, -(1<<30), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(1 << 14, -42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(1 << 14, 42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlongArg_of_(1 << 14, 1 << 30, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedshortAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(-(1<<14), -(1<<30), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(-(1<<14), -42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(-(1<<14), 42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(-(1<<14), 1 << 30, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(-42, -(1<<30), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(1 << 14, -(1<<30), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(1 << 14, -42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(1 << 14, 42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlongArg_of_(1 << 14, 1 << 30, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedshortAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(-(1<<14), -(1 << 60), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(-(1<<14), -42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(-(1<<14), 42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(-(1<<14), 1 << 60, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(-42, -(1 << 60), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(-42, 1 << 60, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(42, -(1 << 60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(42, 1 << 60, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(1 << 14, -(1 << 60), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(1 << 14, -42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(1 << 14, 42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andsignedlonglongArg_of_(1 << 14, 1 << 60, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 60)


    def testinvokesignedshortAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(-(1<<14), -(1 << 60), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(-(1<<14), -42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(-(1<<14), 42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(-(1<<14), 1 << 60, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(-42, -(1 << 60), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(-42, 1 << 60, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(42, -(1 << 60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(42, 1 << 60, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(1 << 14, -(1 << 60), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(1 << 14, -42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(1 << 14, 42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andsignedlonglongArg_of_(1 << 14, 1 << 60, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 60)


    def testcallsignedshortAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedcharArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedcharArg_of_(-(1<<14), 128, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedcharArg_of_(-(1<<14), 255, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedcharArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedcharArg_of_(-42, 128, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedcharArg_of_(-42, 255, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedcharArg_of_(42, 128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedcharArg_of_(42, 255, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedcharArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedcharArg_of_(1 << 14, 128, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedcharArg_of_(1 << 14, 255, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 255)


    def testinvokesignedshortAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedcharArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedcharArg_of_(-(1<<14), 128, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedcharArg_of_(-(1<<14), 255, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedcharArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedcharArg_of_(-42, 128, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedcharArg_of_(-42, 255, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedcharArg_of_(42, 128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedcharArg_of_(42, 255, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedcharArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedcharArg_of_(1 << 14, 128, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedcharArg_of_(1 << 14, 255, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 255)


    def testcallsignedshortAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedshortArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedshortArg_of_(-(1<<14), 42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedshortArg_of_(-(1<<14), 1<<14, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedshortArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedshortArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedshortArg_of_(-42, 1<<14, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedshortArg_of_(42, 1<<14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedshortArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedshortArg_of_(1 << 14, 42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedshortArg_of_(1 << 14, 1<<14, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1<<14)


    def testinvokesignedshortAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedshortArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedshortArg_of_(-(1<<14), 42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedshortArg_of_(-(1<<14), 1<<14, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedshortArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedshortArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedshortArg_of_(-42, 1<<14, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedshortArg_of_(42, 1<<14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedshortArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedshortArg_of_(1 << 14, 42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedshortArg_of_(1 << 14, 1<<14, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1<<14)


    def testcallsignedshortAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedintArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedintArg_of_(-(1<<14), 42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedintArg_of_(-(1<<14), 1 << 30, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedintArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedintArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedintArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedintArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedintArg_of_(1 << 14, 42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedintArg_of_(1 << 14, 1 << 30, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedshortAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedintArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedintArg_of_(-(1<<14), 42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedintArg_of_(-(1<<14), 1 << 30, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedintArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedintArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedintArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedintArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedintArg_of_(1 << 14, 42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedintArg_of_(1 << 14, 1 << 30, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedshortAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlongArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlongArg_of_(-(1<<14), 42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlongArg_of_(-(1<<14), 1 << 30, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlongArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlongArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlongArg_of_(1 << 14, 42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlongArg_of_(1 << 14, 1 << 30, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedshortAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlongArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlongArg_of_(-(1<<14), 42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlongArg_of_(-(1<<14), 1 << 30, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlongArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlongArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlongArg_of_(1 << 14, 42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlongArg_of_(1 << 14, 1 << 30, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedshortAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlonglongArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlonglongArg_of_(-(1<<14), 42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlonglongArg_of_(-(1<<14), 1 << 62, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlonglongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlonglongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlonglongArg_of_(-42, 1 << 62, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlonglongArg_of_(42, 1 << 62, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlonglongArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlonglongArg_of_(1 << 14, 42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortArg_andunsignedlonglongArg_of_(1 << 14, 1 << 62, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 62)


    def testinvokesignedshortAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlonglongArg_of_(-(1<<14), 0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlonglongArg_of_(-(1<<14), 42, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlonglongArg_of_(-(1<<14), 1 << 62, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlonglongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlonglongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlonglongArg_of_(-42, 1 << 62, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlonglongArg_of_(42, 1 << 62, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlonglongArg_of_(1 << 14, 0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlonglongArg_of_(1 << 14, 42, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortArg_andunsignedlonglongArg_of_(1 << 14, 1 << 62, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], 1 << 62)


    def testcallsignedshortAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(-(1<<14), 0.128, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(-(1<<14), 1.0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(-(1<<14), 42.0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(-(1<<14), 1e10, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(-42, 0.128, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(-42, 1.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(-42, 42.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(-42, 1e10, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(1 << 14, 0.128, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(1 << 14, 1.0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(1 << 14, 42.0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedshortArg_andfloatArg_of_(1 << 14, 1e10, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokesignedshortAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(-(1<<14), 0.128, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(-(1<<14), 1.0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(-(1<<14), 42.0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(-(1<<14), 1e10, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(-42, 0.128, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(-42, 1.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(-42, 42.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(-42, 1e10, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(1 << 14, 0.128, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(1 << 14, 1.0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(1 << 14, 42.0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedshortArg_andfloatArg_of_(1 << 14, 1e10, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallsignedshortAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(-(1<<14), 0.128, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(-(1<<14), 1.0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(-(1<<14), 42.0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(-(1<<14), 1e10, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(-42, 0.128, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(-42, 1.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(-42, 42.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(-42, 1e10, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(1 << 14, 0.128, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(1 << 14, 1.0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(1 << 14, 42.0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedshortArg_anddoubleArg_of_(1 << 14, 1e10, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokesignedshortAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(-(1<<14), 0.128, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(-(1<<14), 1.0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(-(1<<14), 42.0, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(-(1<<14), 1e10, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(-42, 0.128, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(-42, 1.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(-42, 42.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(-42, 1e10, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(1 << 14, 0.128, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(1 << 14, 1.0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(1 << 14, 42.0, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedshortArg_anddoubleArg_of_(1 << 14, 1e10, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallsignedshortAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andidArg_of_(-(1<<14), NSPriorDayDesignations, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callsignedshortArg_andidArg_of_(-42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callsignedshortArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callsignedshortArg_andidArg_of_(42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callsignedshortArg_andidArg_of_(1 << 14, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokesignedshortAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andidArg_of_(-(1<<14), NSPriorDayDesignations, o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokesignedshortArg_andidArg_of_(-42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokesignedshortArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokesignedshortArg_andidArg_of_(42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokesignedshortArg_andidArg_of_(1 << 14, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallsignedshortAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andcharPtrArg_of_(-(1<<14), b"hello", o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedshortArg_andcharPtrArg_of_(-(1<<14), b"world", o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedshortArg_andcharPtrArg_of_(-(1<<14), b"foobar", o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callsignedshortArg_andcharPtrArg_of_(-42, b"hello", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedshortArg_andcharPtrArg_of_(-42, b"world", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedshortArg_andcharPtrArg_of_(-42, b"foobar", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callsignedshortArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedshortArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedshortArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callsignedshortArg_andcharPtrArg_of_(42, b"hello", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedshortArg_andcharPtrArg_of_(42, b"world", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedshortArg_andcharPtrArg_of_(42, b"foobar", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callsignedshortArg_andcharPtrArg_of_(1 << 14, b"hello", o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedshortArg_andcharPtrArg_of_(1 << 14, b"world", o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedshortArg_andcharPtrArg_of_(1 << 14, b"foobar", o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokesignedshortAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andcharPtrArg_of_(-(1<<14), b"hello", o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedshortArg_andcharPtrArg_of_(-(1<<14), b"world", o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedshortArg_andcharPtrArg_of_(-(1<<14), b"foobar", o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokesignedshortArg_andcharPtrArg_of_(-42, b"hello", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedshortArg_andcharPtrArg_of_(-42, b"world", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedshortArg_andcharPtrArg_of_(-42, b"foobar", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokesignedshortArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedshortArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedshortArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokesignedshortArg_andcharPtrArg_of_(42, b"hello", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedshortArg_andcharPtrArg_of_(42, b"world", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedshortArg_andcharPtrArg_of_(42, b"foobar", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokesignedshortArg_andcharPtrArg_of_(1 << 14, b"hello", o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedshortArg_andcharPtrArg_of_(1 << 14, b"world", o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedshortArg_andcharPtrArg_of_(1 << 14, b"foobar", o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallsignedshortAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andNSPointArg_of_(-(1<<14), (1, 2), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedshortArg_andNSPointArg_of_(-(1<<14), (3, 4), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callsignedshortArg_andNSPointArg_of_(-42, (1, 2), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedshortArg_andNSPointArg_of_(-42, (3, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callsignedshortArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedshortArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callsignedshortArg_andNSPointArg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedshortArg_andNSPointArg_of_(42, (3, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callsignedshortArg_andNSPointArg_of_(1 << 14, (1, 2), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedshortArg_andNSPointArg_of_(1 << 14, (3, 4), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (3, 4))


    def testinvokesignedshortAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andNSPointArg_of_(-(1<<14), (1, 2), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSPointArg_of_(-(1<<14), (3, 4), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSPointArg_of_(-42, (1, 2), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSPointArg_of_(-42, (3, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSPointArg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSPointArg_of_(42, (3, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSPointArg_of_(1 << 14, (1, 2), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSPointArg_of_(1 << 14, (3, 4), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (3, 4))


    def testcallsignedshortAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andNSRectArg_of_(-(1<<14), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedshortArg_andNSRectArg_of_(-(1<<14), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callsignedshortArg_andNSRectArg_of_(-42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedshortArg_andNSRectArg_of_(-42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callsignedshortArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedshortArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callsignedshortArg_andNSRectArg_of_(42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedshortArg_andNSRectArg_of_(42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callsignedshortArg_andNSRectArg_of_(1 << 14, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedshortArg_andNSRectArg_of_(1 << 14, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokesignedshortAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andNSRectArg_of_(-(1<<14), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSRectArg_of_(-(1<<14), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSRectArg_of_(-42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSRectArg_of_(-42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSRectArg_of_(42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSRectArg_of_(42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSRectArg_of_(1 << 14, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedshortArg_andNSRectArg_of_(1 << 14, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallsignedshortAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct1Arg_of_(-(1<<14), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct1Arg_of_(-(1<<14), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct1Arg_of_(-42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct1Arg_of_(-42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct1Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct1Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct1Arg_of_(1 << 14, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct1Arg_of_(1 << 14, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokesignedshortAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct1Arg_of_(-(1<<14), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct1Arg_of_(-(1<<14), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct1Arg_of_(-42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct1Arg_of_(-42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct1Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct1Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct1Arg_of_(1 << 14, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct1Arg_of_(1 << 14, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallsignedshortAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct2Arg_of_(-(1<<14), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct2Arg_of_(-(1<<14), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct2Arg_of_(-42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct2Arg_of_(-42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct2Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct2Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct2Arg_of_(1 << 14, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct2Arg_of_(1 << 14, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokesignedshortAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct2Arg_of_(-(1<<14), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct2Arg_of_(-(1<<14), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct2Arg_of_(-42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct2Arg_of_(-42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct2Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct2Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct2Arg_of_(1 << 14, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct2Arg_of_(1 << 14, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallsignedshortAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct3Arg_of_(-(1<<14), (1, 2), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct3Arg_of_(-(1<<14), (2, 4), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct3Arg_of_(-42, (1, 2), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct3Arg_of_(-42, (2, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct3Arg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct3Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct3Arg_of_(1 << 14, (1, 2), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct3Arg_of_(1 << 14, (2, 4), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (2, 4))


    def testinvokesignedshortAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct3Arg_of_(-(1<<14), (1, 2), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct3Arg_of_(-(1<<14), (2, 4), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct3Arg_of_(-42, (1, 2), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct3Arg_of_(-42, (2, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct3Arg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct3Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct3Arg_of_(1 << 14, (1, 2), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct3Arg_of_(1 << 14, (2, 4), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (2, 4))


    def testcallsignedshortAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct4Arg_of_(-(1<<14), (1, 1<<60), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct4Arg_of_(-(1<<14), (2, 4), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct4Arg_of_(-42, (1, 1<<60), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct4Arg_of_(-42, (2, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct4Arg_of_(42, (1, 1<<60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct4Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct4Arg_of_(1 << 14, (1, 1<<60), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct4Arg_of_(1 << 14, (2, 4), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (2, 4))


    def testinvokesignedshortAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct4Arg_of_(-(1<<14), (1, 1<<60), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct4Arg_of_(-(1<<14), (2, 4), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct4Arg_of_(-42, (1, 1<<60), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct4Arg_of_(-42, (2, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct4Arg_of_(42, (1, 1<<60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct4Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct4Arg_of_(1 << 14, (1, 1<<60), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct4Arg_of_(1 << 14, (2, 4), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (2, 4))


    def testcallsignedshortAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct5Arg_of_(-(1<<14), (1, 2.5), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct5Arg_of_(-(1<<14), (2, 4.5), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct5Arg_of_(-42, (1, 2.5), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct5Arg_of_(-42, (2, 4.5), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct5Arg_of_(42, (1, 2.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct5Arg_of_(42, (2, 4.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct5Arg_of_(1 << 14, (1, 2.5), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedshortArg_andstructTestStruct5Arg_of_(1 << 14, (2, 4.5), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (2, 4.5))


    def testinvokesignedshortAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct5Arg_of_(-(1<<14), (1, 2.5), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct5Arg_of_(-(1<<14), (2, 4.5), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct5Arg_of_(-42, (1, 2.5), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct5Arg_of_(-42, (2, 4.5), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct5Arg_of_(42, (1, 2.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct5Arg_of_(42, (2, 4.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct5Arg_of_(1 << 14, (1, 2.5), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedshortArg_andstructTestStruct5Arg_of_(1 << 14, (2, 4.5), o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], (2, 4.5))


    def testcallsignedintAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andboolArg_of_(-(1<<30), YES, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedintArg_andboolArg_of_(-(1<<30), NO, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedintArg_andboolArg_of_(-42, YES, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedintArg_andboolArg_of_(-42, NO, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedintArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedintArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedintArg_andboolArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedintArg_andboolArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedintArg_andboolArg_of_(1 << 30, YES, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedintArg_andboolArg_of_(1 << 30, NO, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testinvokesignedintAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andboolArg_of_(-(1<<30), YES, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedintArg_andboolArg_of_(-(1<<30), NO, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedintArg_andboolArg_of_(-42, YES, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedintArg_andboolArg_of_(-42, NO, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedintArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedintArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedintArg_andboolArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedintArg_andboolArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedintArg_andboolArg_of_(1 << 30, YES, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedintArg_andboolArg_of_(1 << 30, NO, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testcallsignedintAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andBOOLArg_of_(-(1<<30), YES, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedintArg_andBOOLArg_of_(-(1<<30), NO, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedintArg_andBOOLArg_of_(-42, YES, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedintArg_andBOOLArg_of_(-42, NO, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedintArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedintArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedintArg_andBOOLArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedintArg_andBOOLArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedintArg_andBOOLArg_of_(1 << 30, YES, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedintArg_andBOOLArg_of_(1 << 30, NO, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testinvokesignedintAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andBOOLArg_of_(-(1<<30), YES, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedintArg_andBOOLArg_of_(-(1<<30), NO, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedintArg_andBOOLArg_of_(-42, YES, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedintArg_andBOOLArg_of_(-42, NO, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedintArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedintArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedintArg_andBOOLArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedintArg_andBOOLArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedintArg_andBOOLArg_of_(1 << 30, YES, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedintArg_andBOOLArg_of_(1 << 30, NO, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testcallsignedintAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andcharArg_of_(-(1<<30), -128, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedintArg_andcharArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andcharArg_of_(-(1<<30), 127, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callsignedintArg_andcharArg_of_(-42, -128, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedintArg_andcharArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andcharArg_of_(-42, 127, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callsignedintArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedintArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callsignedintArg_andcharArg_of_(42, -128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedintArg_andcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andcharArg_of_(42, 127, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callsignedintArg_andcharArg_of_(1 << 30, -128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedintArg_andcharArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andcharArg_of_(1 << 30, 127, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 127)


    def testinvokesignedintAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andcharArg_of_(-(1<<30), -128, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedintArg_andcharArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andcharArg_of_(-(1<<30), 127, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokesignedintArg_andcharArg_of_(-42, -128, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedintArg_andcharArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andcharArg_of_(-42, 127, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokesignedintArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedintArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokesignedintArg_andcharArg_of_(42, -128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedintArg_andcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andcharArg_of_(42, 127, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokesignedintArg_andcharArg_of_(1 << 30, -128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedintArg_andcharArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andcharArg_of_(1 << 30, 127, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 127)


    def testcallsignedintAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(-(1<<30), -(1<<14), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(-(1<<30), -42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(-(1<<30), 1 << 14, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(-42, -(1<<14), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(-42, 1 << 14, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(42, -(1<<14), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(42, 1 << 14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(1 << 30, -(1<<14), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedshortArg_of_(1 << 30, 1 << 14, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 14)


    def testinvokesignedintAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(-(1<<30), -(1<<14), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(-(1<<30), -42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(-(1<<30), 1 << 14, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(-42, -(1<<14), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(-42, 1 << 14, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(42, -(1<<14), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(42, 1 << 14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(1 << 30, -(1<<14), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedshortArg_of_(1 << 30, 1 << 14, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 14)


    def testcallsignedintAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(-(1<<30), -(1<<30), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(-(1<<30), -42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(-(1<<30), 1 << 30, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(-42, -(1<<30), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(1 << 30, -(1<<30), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedintArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedintAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(-(1<<30), -(1<<30), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(-(1<<30), -42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(-(1<<30), 1 << 30, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(-42, -(1<<30), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(1 << 30, -(1<<30), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedintArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedintAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(-(1<<30), -(1<<30), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(-(1<<30), -42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(-(1<<30), 1 << 30, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(-42, -(1<<30), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(1 << 30, -(1<<30), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlongArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedintAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(-(1<<30), -(1<<30), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(-(1<<30), -42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(-(1<<30), 1 << 30, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(-42, -(1<<30), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(1 << 30, -(1<<30), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlongArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedintAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(-(1<<30), -(1 << 60), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(-(1<<30), -42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(-(1<<30), 1 << 60, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(-42, -(1 << 60), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(-42, 1 << 60, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(42, -(1 << 60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(42, 1 << 60, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(1 << 30, -(1 << 60), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andsignedlonglongArg_of_(1 << 30, 1 << 60, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 60)


    def testinvokesignedintAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(-(1<<30), -(1 << 60), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(-(1<<30), -42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(-(1<<30), 1 << 60, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(-42, -(1 << 60), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(-42, 1 << 60, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(42, -(1 << 60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(42, 1 << 60, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(1 << 30, -(1 << 60), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andsignedlonglongArg_of_(1 << 30, 1 << 60, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 60)


    def testcallsignedintAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedcharArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedcharArg_of_(-(1<<30), 128, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedcharArg_of_(-(1<<30), 255, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedcharArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedcharArg_of_(-42, 128, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedcharArg_of_(-42, 255, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedcharArg_of_(42, 128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedcharArg_of_(42, 255, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedcharArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedcharArg_of_(1 << 30, 128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedcharArg_of_(1 << 30, 255, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 255)


    def testinvokesignedintAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedcharArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedcharArg_of_(-(1<<30), 128, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedcharArg_of_(-(1<<30), 255, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedcharArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedcharArg_of_(-42, 128, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedcharArg_of_(-42, 255, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedcharArg_of_(42, 128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedcharArg_of_(42, 255, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedcharArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedcharArg_of_(1 << 30, 128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedcharArg_of_(1 << 30, 255, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 255)


    def testcallsignedintAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedshortArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedshortArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedshortArg_of_(-(1<<30), 1<<14, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedshortArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedshortArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedshortArg_of_(-42, 1<<14, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedshortArg_of_(42, 1<<14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedshortArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedshortArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedshortArg_of_(1 << 30, 1<<14, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1<<14)


    def testinvokesignedintAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedshortArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedshortArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedshortArg_of_(-(1<<30), 1<<14, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedshortArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedshortArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedshortArg_of_(-42, 1<<14, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedshortArg_of_(42, 1<<14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedshortArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedshortArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedshortArg_of_(1 << 30, 1<<14, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1<<14)


    def testcallsignedintAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedintArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedintArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedintArg_of_(-(1<<30), 1 << 30, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedintArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedintArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedintArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedintArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedintArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedintArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedintAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedintArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedintArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedintArg_of_(-(1<<30), 1 << 30, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedintArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedintArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedintArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedintArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedintArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedintArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedintAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlongArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlongArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlongArg_of_(-(1<<30), 1 << 30, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlongArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlongArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedintAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlongArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlongArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlongArg_of_(-(1<<30), 1 << 30, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlongArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlongArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedintAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlonglongArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlonglongArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlonglongArg_of_(-(1<<30), 1 << 62, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlonglongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlonglongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlonglongArg_of_(-42, 1 << 62, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlonglongArg_of_(42, 1 << 62, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlonglongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlonglongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintArg_andunsignedlonglongArg_of_(1 << 30, 1 << 62, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 62)


    def testinvokesignedintAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlonglongArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlonglongArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlonglongArg_of_(-(1<<30), 1 << 62, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlonglongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlonglongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlonglongArg_of_(-42, 1 << 62, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlonglongArg_of_(42, 1 << 62, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlonglongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlonglongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintArg_andunsignedlonglongArg_of_(1 << 30, 1 << 62, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 62)


    def testcallsignedintAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(-(1<<30), 0.128, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(-(1<<30), 1.0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(-(1<<30), 42.0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(-(1<<30), 1e10, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(-42, 0.128, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(-42, 1.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(-42, 42.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(-42, 1e10, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(1 << 30, 0.128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(1 << 30, 1.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(1 << 30, 42.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedintArg_andfloatArg_of_(1 << 30, 1e10, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokesignedintAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(-(1<<30), 0.128, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(-(1<<30), 1.0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(-(1<<30), 42.0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(-(1<<30), 1e10, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(-42, 0.128, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(-42, 1.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(-42, 42.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(-42, 1e10, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(1 << 30, 0.128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(1 << 30, 1.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(1 << 30, 42.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedintArg_andfloatArg_of_(1 << 30, 1e10, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallsignedintAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(-(1<<30), 0.128, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(-(1<<30), 1.0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(-(1<<30), 42.0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(-(1<<30), 1e10, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(-42, 0.128, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(-42, 1.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(-42, 42.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(-42, 1e10, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(1 << 30, 0.128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(1 << 30, 1.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(1 << 30, 42.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedintArg_anddoubleArg_of_(1 << 30, 1e10, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokesignedintAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(-(1<<30), 0.128, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(-(1<<30), 1.0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(-(1<<30), 42.0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(-(1<<30), 1e10, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(-42, 0.128, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(-42, 1.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(-42, 42.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(-42, 1e10, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(1 << 30, 0.128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(1 << 30, 1.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(1 << 30, 42.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedintArg_anddoubleArg_of_(1 << 30, 1e10, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallsignedintAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andidArg_of_(-(1<<30), NSPriorDayDesignations, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callsignedintArg_andidArg_of_(-42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callsignedintArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callsignedintArg_andidArg_of_(42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callsignedintArg_andidArg_of_(1 << 30, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokesignedintAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andidArg_of_(-(1<<30), NSPriorDayDesignations, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokesignedintArg_andidArg_of_(-42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokesignedintArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokesignedintArg_andidArg_of_(42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokesignedintArg_andidArg_of_(1 << 30, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallsignedintAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andcharPtrArg_of_(-(1<<30), b"hello", o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedintArg_andcharPtrArg_of_(-(1<<30), b"world", o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedintArg_andcharPtrArg_of_(-(1<<30), b"foobar", o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callsignedintArg_andcharPtrArg_of_(-42, b"hello", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedintArg_andcharPtrArg_of_(-42, b"world", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedintArg_andcharPtrArg_of_(-42, b"foobar", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callsignedintArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedintArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedintArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callsignedintArg_andcharPtrArg_of_(42, b"hello", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedintArg_andcharPtrArg_of_(42, b"world", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedintArg_andcharPtrArg_of_(42, b"foobar", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callsignedintArg_andcharPtrArg_of_(1 << 30, b"hello", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedintArg_andcharPtrArg_of_(1 << 30, b"world", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedintArg_andcharPtrArg_of_(1 << 30, b"foobar", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokesignedintAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andcharPtrArg_of_(-(1<<30), b"hello", o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedintArg_andcharPtrArg_of_(-(1<<30), b"world", o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedintArg_andcharPtrArg_of_(-(1<<30), b"foobar", o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokesignedintArg_andcharPtrArg_of_(-42, b"hello", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedintArg_andcharPtrArg_of_(-42, b"world", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedintArg_andcharPtrArg_of_(-42, b"foobar", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokesignedintArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedintArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedintArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokesignedintArg_andcharPtrArg_of_(42, b"hello", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedintArg_andcharPtrArg_of_(42, b"world", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedintArg_andcharPtrArg_of_(42, b"foobar", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokesignedintArg_andcharPtrArg_of_(1 << 30, b"hello", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedintArg_andcharPtrArg_of_(1 << 30, b"world", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedintArg_andcharPtrArg_of_(1 << 30, b"foobar", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallsignedintAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andNSPointArg_of_(-(1<<30), (1, 2), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedintArg_andNSPointArg_of_(-(1<<30), (3, 4), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callsignedintArg_andNSPointArg_of_(-42, (1, 2), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedintArg_andNSPointArg_of_(-42, (3, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callsignedintArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedintArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callsignedintArg_andNSPointArg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedintArg_andNSPointArg_of_(42, (3, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callsignedintArg_andNSPointArg_of_(1 << 30, (1, 2), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedintArg_andNSPointArg_of_(1 << 30, (3, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (3, 4))


    def testinvokesignedintAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andNSPointArg_of_(-(1<<30), (1, 2), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedintArg_andNSPointArg_of_(-(1<<30), (3, 4), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokesignedintArg_andNSPointArg_of_(-42, (1, 2), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedintArg_andNSPointArg_of_(-42, (3, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokesignedintArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedintArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokesignedintArg_andNSPointArg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedintArg_andNSPointArg_of_(42, (3, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokesignedintArg_andNSPointArg_of_(1 << 30, (1, 2), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedintArg_andNSPointArg_of_(1 << 30, (3, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (3, 4))


    def testcallsignedintAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andNSRectArg_of_(-(1<<30), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedintArg_andNSRectArg_of_(-(1<<30), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callsignedintArg_andNSRectArg_of_(-42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedintArg_andNSRectArg_of_(-42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callsignedintArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedintArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callsignedintArg_andNSRectArg_of_(42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedintArg_andNSRectArg_of_(42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callsignedintArg_andNSRectArg_of_(1 << 30, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedintArg_andNSRectArg_of_(1 << 30, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokesignedintAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andNSRectArg_of_(-(1<<30), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedintArg_andNSRectArg_of_(-(1<<30), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokesignedintArg_andNSRectArg_of_(-42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedintArg_andNSRectArg_of_(-42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokesignedintArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedintArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokesignedintArg_andNSRectArg_of_(42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedintArg_andNSRectArg_of_(42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokesignedintArg_andNSRectArg_of_(1 << 30, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedintArg_andNSRectArg_of_(1 << 30, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallsignedintAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct1Arg_of_(-(1<<30), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct1Arg_of_(-(1<<30), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct1Arg_of_(-42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct1Arg_of_(-42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct1Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct1Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct1Arg_of_(1 << 30, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct1Arg_of_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokesignedintAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct1Arg_of_(-(1<<30), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct1Arg_of_(-(1<<30), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct1Arg_of_(-42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct1Arg_of_(-42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct1Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct1Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct1Arg_of_(1 << 30, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct1Arg_of_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallsignedintAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct2Arg_of_(-(1<<30), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct2Arg_of_(-(1<<30), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct2Arg_of_(-42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct2Arg_of_(-42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct2Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct2Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct2Arg_of_(1 << 30, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct2Arg_of_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokesignedintAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct2Arg_of_(-(1<<30), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct2Arg_of_(-(1<<30), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct2Arg_of_(-42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct2Arg_of_(-42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct2Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct2Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct2Arg_of_(1 << 30, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct2Arg_of_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallsignedintAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct3Arg_of_(-(1<<30), (1, 2), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct3Arg_of_(-(1<<30), (2, 4), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct3Arg_of_(-42, (1, 2), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct3Arg_of_(-42, (2, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct3Arg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct3Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct3Arg_of_(1 << 30, (1, 2), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct3Arg_of_(1 << 30, (2, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testinvokesignedintAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct3Arg_of_(-(1<<30), (1, 2), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct3Arg_of_(-(1<<30), (2, 4), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct3Arg_of_(-42, (1, 2), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct3Arg_of_(-42, (2, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct3Arg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct3Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct3Arg_of_(1 << 30, (1, 2), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct3Arg_of_(1 << 30, (2, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testcallsignedintAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct4Arg_of_(-(1<<30), (1, 1<<60), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct4Arg_of_(-(1<<30), (2, 4), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct4Arg_of_(-42, (1, 1<<60), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct4Arg_of_(-42, (2, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct4Arg_of_(42, (1, 1<<60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct4Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct4Arg_of_(1 << 30, (1, 1<<60), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct4Arg_of_(1 << 30, (2, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testinvokesignedintAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct4Arg_of_(-(1<<30), (1, 1<<60), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct4Arg_of_(-(1<<30), (2, 4), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct4Arg_of_(-42, (1, 1<<60), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct4Arg_of_(-42, (2, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct4Arg_of_(42, (1, 1<<60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct4Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct4Arg_of_(1 << 30, (1, 1<<60), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct4Arg_of_(1 << 30, (2, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testcallsignedintAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct5Arg_of_(-(1<<30), (1, 2.5), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct5Arg_of_(-(1<<30), (2, 4.5), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct5Arg_of_(-42, (1, 2.5), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct5Arg_of_(-42, (2, 4.5), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct5Arg_of_(42, (1, 2.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct5Arg_of_(42, (2, 4.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct5Arg_of_(1 << 30, (1, 2.5), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedintArg_andstructTestStruct5Arg_of_(1 << 30, (2, 4.5), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4.5))


    def testinvokesignedintAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct5Arg_of_(-(1<<30), (1, 2.5), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct5Arg_of_(-(1<<30), (2, 4.5), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct5Arg_of_(-42, (1, 2.5), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct5Arg_of_(-42, (2, 4.5), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct5Arg_of_(42, (1, 2.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct5Arg_of_(42, (2, 4.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct5Arg_of_(1 << 30, (1, 2.5), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedintArg_andstructTestStruct5Arg_of_(1 << 30, (2, 4.5), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4.5))


    def testcallsignedlongAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andboolArg_of_(-(1<<30), YES, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlongArg_andboolArg_of_(-(1<<30), NO, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedlongArg_andboolArg_of_(-42, YES, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlongArg_andboolArg_of_(-42, NO, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedlongArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlongArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedlongArg_andboolArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlongArg_andboolArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedlongArg_andboolArg_of_(1 << 30, YES, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlongArg_andboolArg_of_(1 << 30, NO, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testinvokesignedlongAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andboolArg_of_(-(1<<30), YES, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlongArg_andboolArg_of_(-(1<<30), NO, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedlongArg_andboolArg_of_(-42, YES, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlongArg_andboolArg_of_(-42, NO, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedlongArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlongArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedlongArg_andboolArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlongArg_andboolArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedlongArg_andboolArg_of_(1 << 30, YES, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlongArg_andboolArg_of_(1 << 30, NO, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testcallsignedlongAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andBOOLArg_of_(-(1<<30), YES, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlongArg_andBOOLArg_of_(-(1<<30), NO, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedlongArg_andBOOLArg_of_(-42, YES, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlongArg_andBOOLArg_of_(-42, NO, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedlongArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlongArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedlongArg_andBOOLArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlongArg_andBOOLArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedlongArg_andBOOLArg_of_(1 << 30, YES, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlongArg_andBOOLArg_of_(1 << 30, NO, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testinvokesignedlongAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andBOOLArg_of_(-(1<<30), YES, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlongArg_andBOOLArg_of_(-(1<<30), NO, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedlongArg_andBOOLArg_of_(-42, YES, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlongArg_andBOOLArg_of_(-42, NO, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedlongArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlongArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedlongArg_andBOOLArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlongArg_andBOOLArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedlongArg_andBOOLArg_of_(1 << 30, YES, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlongArg_andBOOLArg_of_(1 << 30, NO, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testcallsignedlongAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andcharArg_of_(-(1<<30), -128, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedlongArg_andcharArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andcharArg_of_(-(1<<30), 127, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callsignedlongArg_andcharArg_of_(-42, -128, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedlongArg_andcharArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andcharArg_of_(-42, 127, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callsignedlongArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedlongArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callsignedlongArg_andcharArg_of_(42, -128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedlongArg_andcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andcharArg_of_(42, 127, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callsignedlongArg_andcharArg_of_(1 << 30, -128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedlongArg_andcharArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andcharArg_of_(1 << 30, 127, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 127)


    def testinvokesignedlongAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andcharArg_of_(-(1<<30), -128, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedlongArg_andcharArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andcharArg_of_(-(1<<30), 127, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokesignedlongArg_andcharArg_of_(-42, -128, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedlongArg_andcharArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andcharArg_of_(-42, 127, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokesignedlongArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedlongArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokesignedlongArg_andcharArg_of_(42, -128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedlongArg_andcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andcharArg_of_(42, 127, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokesignedlongArg_andcharArg_of_(1 << 30, -128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedlongArg_andcharArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andcharArg_of_(1 << 30, 127, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 127)


    def testcallsignedlongAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(-(1<<30), -(1<<14), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(-(1<<30), -42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(-(1<<30), 1 << 14, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(-42, -(1<<14), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(-42, 1 << 14, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(42, -(1<<14), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(42, 1 << 14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(1 << 30, -(1<<14), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedshortArg_of_(1 << 30, 1 << 14, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 14)


    def testinvokesignedlongAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(-(1<<30), -(1<<14), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(-(1<<30), -42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(-(1<<30), 1 << 14, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(-42, -(1<<14), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(-42, 1 << 14, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(42, -(1<<14), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(42, 1 << 14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(1 << 30, -(1<<14), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedshortArg_of_(1 << 30, 1 << 14, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 14)


    def testcallsignedlongAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(-(1<<30), -(1<<30), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(-(1<<30), -42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(-(1<<30), 1 << 30, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(-42, -(1<<30), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(1 << 30, -(1<<30), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedintArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedlongAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(-(1<<30), -(1<<30), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(-(1<<30), -42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(-(1<<30), 1 << 30, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(-42, -(1<<30), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(1 << 30, -(1<<30), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedintArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedlongAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(-(1<<30), -(1<<30), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(-(1<<30), -42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(-(1<<30), 1 << 30, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(-42, -(1<<30), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(1 << 30, -(1<<30), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlongArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedlongAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(-(1<<30), -(1<<30), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(-(1<<30), -42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(-(1<<30), 1 << 30, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(-42, -(1<<30), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(1 << 30, -(1<<30), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlongArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedlongAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(-(1<<30), -(1 << 60), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(-(1<<30), -42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(-(1<<30), 1 << 60, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(-42, -(1 << 60), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(-42, 1 << 60, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(42, -(1 << 60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(42, 1 << 60, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(1 << 30, -(1 << 60), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andsignedlonglongArg_of_(1 << 30, 1 << 60, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 60)


    def testinvokesignedlongAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(-(1<<30), -(1 << 60), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(-(1<<30), -42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(-(1<<30), 1 << 60, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(-42, -(1 << 60), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(-42, 1 << 60, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(42, -(1 << 60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(42, 1 << 60, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(1 << 30, -(1 << 60), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andsignedlonglongArg_of_(1 << 30, 1 << 60, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 60)


    def testcallsignedlongAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedcharArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedcharArg_of_(-(1<<30), 128, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedcharArg_of_(-(1<<30), 255, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedcharArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedcharArg_of_(-42, 128, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedcharArg_of_(-42, 255, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedcharArg_of_(42, 128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedcharArg_of_(42, 255, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedcharArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedcharArg_of_(1 << 30, 128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedcharArg_of_(1 << 30, 255, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 255)


    def testinvokesignedlongAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedcharArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedcharArg_of_(-(1<<30), 128, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedcharArg_of_(-(1<<30), 255, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedcharArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedcharArg_of_(-42, 128, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedcharArg_of_(-42, 255, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedcharArg_of_(42, 128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedcharArg_of_(42, 255, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedcharArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedcharArg_of_(1 << 30, 128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedcharArg_of_(1 << 30, 255, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 255)


    def testcallsignedlongAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedshortArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedshortArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedshortArg_of_(-(1<<30), 1<<14, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedshortArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedshortArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedshortArg_of_(-42, 1<<14, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedshortArg_of_(42, 1<<14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedshortArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedshortArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedshortArg_of_(1 << 30, 1<<14, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1<<14)


    def testinvokesignedlongAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedshortArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedshortArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedshortArg_of_(-(1<<30), 1<<14, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedshortArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedshortArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedshortArg_of_(-42, 1<<14, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedshortArg_of_(42, 1<<14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedshortArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedshortArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedshortArg_of_(1 << 30, 1<<14, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1<<14)


    def testcallsignedlongAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedintArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedintArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedintArg_of_(-(1<<30), 1 << 30, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedintArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedintArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedintArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedintArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedintArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedintArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedlongAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedintArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedintArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedintArg_of_(-(1<<30), 1 << 30, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedintArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedintArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedintArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedintArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedintArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedintArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedlongAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlongArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlongArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlongArg_of_(-(1<<30), 1 << 30, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlongArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlongArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedlongAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlongArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlongArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlongArg_of_(-(1<<30), 1 << 30, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlongArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlongArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedlongAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlonglongArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlonglongArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlonglongArg_of_(-(1<<30), 1 << 62, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlonglongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlonglongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlonglongArg_of_(-42, 1 << 62, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlonglongArg_of_(42, 1 << 62, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlonglongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlonglongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongArg_andunsignedlonglongArg_of_(1 << 30, 1 << 62, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 62)


    def testinvokesignedlongAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlonglongArg_of_(-(1<<30), 0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlonglongArg_of_(-(1<<30), 42, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlonglongArg_of_(-(1<<30), 1 << 62, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlonglongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlonglongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlonglongArg_of_(-42, 1 << 62, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlonglongArg_of_(42, 1 << 62, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlonglongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlonglongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongArg_andunsignedlonglongArg_of_(1 << 30, 1 << 62, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 62)


    def testcallsignedlongAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(-(1<<30), 0.128, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(-(1<<30), 1.0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(-(1<<30), 42.0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(-(1<<30), 1e10, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(-42, 0.128, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(-42, 1.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(-42, 42.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(-42, 1e10, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(1 << 30, 0.128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(1 << 30, 1.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(1 << 30, 42.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlongArg_andfloatArg_of_(1 << 30, 1e10, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokesignedlongAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(-(1<<30), 0.128, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(-(1<<30), 1.0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(-(1<<30), 42.0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(-(1<<30), 1e10, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(-42, 0.128, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(-42, 1.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(-42, 42.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(-42, 1e10, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(1 << 30, 0.128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(1 << 30, 1.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(1 << 30, 42.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlongArg_andfloatArg_of_(1 << 30, 1e10, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallsignedlongAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(-(1<<30), 0.128, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(-(1<<30), 1.0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(-(1<<30), 42.0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(-(1<<30), 1e10, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(-42, 0.128, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(-42, 1.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(-42, 42.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(-42, 1e10, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(1 << 30, 0.128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(1 << 30, 1.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(1 << 30, 42.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlongArg_anddoubleArg_of_(1 << 30, 1e10, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokesignedlongAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(-(1<<30), 0.128, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(-(1<<30), 1.0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(-(1<<30), 42.0, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(-(1<<30), 1e10, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(-42, 0.128, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(-42, 1.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(-42, 42.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(-42, 1e10, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(1 << 30, 0.128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(1 << 30, 1.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(1 << 30, 42.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlongArg_anddoubleArg_of_(1 << 30, 1e10, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallsignedlongAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andidArg_of_(-(1<<30), NSPriorDayDesignations, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callsignedlongArg_andidArg_of_(-42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callsignedlongArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callsignedlongArg_andidArg_of_(42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callsignedlongArg_andidArg_of_(1 << 30, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokesignedlongAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andidArg_of_(-(1<<30), NSPriorDayDesignations, o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokesignedlongArg_andidArg_of_(-42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokesignedlongArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokesignedlongArg_andidArg_of_(42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokesignedlongArg_andidArg_of_(1 << 30, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallsignedlongAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andcharPtrArg_of_(-(1<<30), b"hello", o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedlongArg_andcharPtrArg_of_(-(1<<30), b"world", o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedlongArg_andcharPtrArg_of_(-(1<<30), b"foobar", o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callsignedlongArg_andcharPtrArg_of_(-42, b"hello", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedlongArg_andcharPtrArg_of_(-42, b"world", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedlongArg_andcharPtrArg_of_(-42, b"foobar", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callsignedlongArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedlongArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedlongArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callsignedlongArg_andcharPtrArg_of_(42, b"hello", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedlongArg_andcharPtrArg_of_(42, b"world", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedlongArg_andcharPtrArg_of_(42, b"foobar", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callsignedlongArg_andcharPtrArg_of_(1 << 30, b"hello", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedlongArg_andcharPtrArg_of_(1 << 30, b"world", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedlongArg_andcharPtrArg_of_(1 << 30, b"foobar", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokesignedlongAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andcharPtrArg_of_(-(1<<30), b"hello", o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedlongArg_andcharPtrArg_of_(-(1<<30), b"world", o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedlongArg_andcharPtrArg_of_(-(1<<30), b"foobar", o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokesignedlongArg_andcharPtrArg_of_(-42, b"hello", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedlongArg_andcharPtrArg_of_(-42, b"world", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedlongArg_andcharPtrArg_of_(-42, b"foobar", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokesignedlongArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedlongArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedlongArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokesignedlongArg_andcharPtrArg_of_(42, b"hello", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedlongArg_andcharPtrArg_of_(42, b"world", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedlongArg_andcharPtrArg_of_(42, b"foobar", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokesignedlongArg_andcharPtrArg_of_(1 << 30, b"hello", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedlongArg_andcharPtrArg_of_(1 << 30, b"world", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedlongArg_andcharPtrArg_of_(1 << 30, b"foobar", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallsignedlongAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andNSPointArg_of_(-(1<<30), (1, 2), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlongArg_andNSPointArg_of_(-(1<<30), (3, 4), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callsignedlongArg_andNSPointArg_of_(-42, (1, 2), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlongArg_andNSPointArg_of_(-42, (3, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callsignedlongArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlongArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callsignedlongArg_andNSPointArg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlongArg_andNSPointArg_of_(42, (3, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callsignedlongArg_andNSPointArg_of_(1 << 30, (1, 2), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlongArg_andNSPointArg_of_(1 << 30, (3, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (3, 4))


    def testinvokesignedlongAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andNSPointArg_of_(-(1<<30), (1, 2), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSPointArg_of_(-(1<<30), (3, 4), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSPointArg_of_(-42, (1, 2), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSPointArg_of_(-42, (3, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSPointArg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSPointArg_of_(42, (3, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSPointArg_of_(1 << 30, (1, 2), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSPointArg_of_(1 << 30, (3, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (3, 4))


    def testcallsignedlongAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andNSRectArg_of_(-(1<<30), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedlongArg_andNSRectArg_of_(-(1<<30), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callsignedlongArg_andNSRectArg_of_(-42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedlongArg_andNSRectArg_of_(-42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callsignedlongArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedlongArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callsignedlongArg_andNSRectArg_of_(42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedlongArg_andNSRectArg_of_(42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callsignedlongArg_andNSRectArg_of_(1 << 30, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedlongArg_andNSRectArg_of_(1 << 30, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokesignedlongAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andNSRectArg_of_(-(1<<30), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSRectArg_of_(-(1<<30), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSRectArg_of_(-42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSRectArg_of_(-42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSRectArg_of_(42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSRectArg_of_(42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSRectArg_of_(1 << 30, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedlongArg_andNSRectArg_of_(1 << 30, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallsignedlongAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct1Arg_of_(-(1<<30), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct1Arg_of_(-(1<<30), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct1Arg_of_(-42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct1Arg_of_(-42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct1Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct1Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct1Arg_of_(1 << 30, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct1Arg_of_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokesignedlongAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct1Arg_of_(-(1<<30), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct1Arg_of_(-(1<<30), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct1Arg_of_(-42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct1Arg_of_(-42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct1Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct1Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct1Arg_of_(1 << 30, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct1Arg_of_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallsignedlongAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct2Arg_of_(-(1<<30), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct2Arg_of_(-(1<<30), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct2Arg_of_(-42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct2Arg_of_(-42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct2Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct2Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct2Arg_of_(1 << 30, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct2Arg_of_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokesignedlongAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct2Arg_of_(-(1<<30), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct2Arg_of_(-(1<<30), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct2Arg_of_(-42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct2Arg_of_(-42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct2Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct2Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct2Arg_of_(1 << 30, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct2Arg_of_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallsignedlongAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct3Arg_of_(-(1<<30), (1, 2), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct3Arg_of_(-(1<<30), (2, 4), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct3Arg_of_(-42, (1, 2), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct3Arg_of_(-42, (2, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct3Arg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct3Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct3Arg_of_(1 << 30, (1, 2), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct3Arg_of_(1 << 30, (2, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testinvokesignedlongAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct3Arg_of_(-(1<<30), (1, 2), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct3Arg_of_(-(1<<30), (2, 4), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct3Arg_of_(-42, (1, 2), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct3Arg_of_(-42, (2, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct3Arg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct3Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct3Arg_of_(1 << 30, (1, 2), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct3Arg_of_(1 << 30, (2, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testcallsignedlongAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct4Arg_of_(-(1<<30), (1, 1<<60), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct4Arg_of_(-(1<<30), (2, 4), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct4Arg_of_(-42, (1, 1<<60), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct4Arg_of_(-42, (2, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct4Arg_of_(42, (1, 1<<60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct4Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct4Arg_of_(1 << 30, (1, 1<<60), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct4Arg_of_(1 << 30, (2, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testinvokesignedlongAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct4Arg_of_(-(1<<30), (1, 1<<60), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct4Arg_of_(-(1<<30), (2, 4), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct4Arg_of_(-42, (1, 1<<60), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct4Arg_of_(-42, (2, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct4Arg_of_(42, (1, 1<<60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct4Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct4Arg_of_(1 << 30, (1, 1<<60), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct4Arg_of_(1 << 30, (2, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testcallsignedlongAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct5Arg_of_(-(1<<30), (1, 2.5), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct5Arg_of_(-(1<<30), (2, 4.5), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct5Arg_of_(-42, (1, 2.5), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct5Arg_of_(-42, (2, 4.5), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct5Arg_of_(42, (1, 2.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct5Arg_of_(42, (2, 4.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct5Arg_of_(1 << 30, (1, 2.5), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedlongArg_andstructTestStruct5Arg_of_(1 << 30, (2, 4.5), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4.5))


    def testinvokesignedlongAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct5Arg_of_(-(1<<30), (1, 2.5), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct5Arg_of_(-(1<<30), (2, 4.5), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct5Arg_of_(-42, (1, 2.5), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct5Arg_of_(-42, (2, 4.5), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct5Arg_of_(42, (1, 2.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct5Arg_of_(42, (2, 4.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct5Arg_of_(1 << 30, (1, 2.5), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedlongArg_andstructTestStruct5Arg_of_(1 << 30, (2, 4.5), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4.5))


    def testcallsignedlonglongAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andboolArg_of_(-(1 << 60), YES, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlonglongArg_andboolArg_of_(-(1 << 60), NO, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedlonglongArg_andboolArg_of_(-42, YES, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlonglongArg_andboolArg_of_(-42, NO, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedlonglongArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlonglongArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedlonglongArg_andboolArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlonglongArg_andboolArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedlonglongArg_andboolArg_of_(1 << 60, YES, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlonglongArg_andboolArg_of_(1 << 60, NO, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], NO)


    def testinvokesignedlonglongAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andboolArg_of_(-(1 << 60), YES, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andboolArg_of_(-(1 << 60), NO, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andboolArg_of_(-42, YES, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andboolArg_of_(-42, NO, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andboolArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andboolArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andboolArg_of_(1 << 60, YES, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andboolArg_of_(1 << 60, NO, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], NO)


    def testcallsignedlonglongAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andBOOLArg_of_(-(1 << 60), YES, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlonglongArg_andBOOLArg_of_(-(1 << 60), NO, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedlonglongArg_andBOOLArg_of_(-42, YES, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlonglongArg_andBOOLArg_of_(-42, NO, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedlonglongArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlonglongArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedlonglongArg_andBOOLArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlonglongArg_andBOOLArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callsignedlonglongArg_andBOOLArg_of_(1 << 60, YES, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callsignedlonglongArg_andBOOLArg_of_(1 << 60, NO, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], NO)


    def testinvokesignedlonglongAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andBOOLArg_of_(-(1 << 60), YES, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andBOOLArg_of_(-(1 << 60), NO, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andBOOLArg_of_(-42, YES, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andBOOLArg_of_(-42, NO, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andBOOLArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andBOOLArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andBOOLArg_of_(1 << 60, YES, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andBOOLArg_of_(1 << 60, NO, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], NO)


    def testcallsignedlonglongAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharArg_of_(-(1 << 60), -128, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharArg_of_(-(1 << 60), 127, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharArg_of_(-42, -128, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharArg_of_(-42, 127, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharArg_of_(42, -128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharArg_of_(42, 127, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharArg_of_(1 << 60, -128, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharArg_of_(1 << 60, 127, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 127)


    def testinvokesignedlonglongAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharArg_of_(-(1 << 60), -128, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharArg_of_(-(1 << 60), 127, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharArg_of_(-42, -128, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharArg_of_(-42, 127, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharArg_of_(42, -128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharArg_of_(42, 127, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharArg_of_(1 << 60, -128, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharArg_of_(1 << 60, 127, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 127)


    def testcallsignedlonglongAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(-(1 << 60), -(1<<14), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(-(1 << 60), -42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(-(1 << 60), 42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(-(1 << 60), 1 << 14, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(-42, -(1<<14), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(-42, 1 << 14, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(42, -(1<<14), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(42, 1 << 14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(1 << 60, -(1<<14), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(1 << 60, -42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(1 << 60, 42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedshortArg_of_(1 << 60, 1 << 14, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 14)


    def testinvokesignedlonglongAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(-(1 << 60), -(1<<14), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(-(1 << 60), -42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(-(1 << 60), 42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(-(1 << 60), 1 << 14, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(-42, -(1<<14), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(-42, 1 << 14, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(42, -(1<<14), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(42, 1 << 14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(1 << 60, -(1<<14), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(1 << 60, -42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(1 << 60, 42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedshortArg_of_(1 << 60, 1 << 14, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 14)


    def testcallsignedlonglongAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(-(1 << 60), -(1<<30), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(-(1 << 60), -42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(-(1 << 60), 42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(-(1 << 60), 1 << 30, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(-42, -(1<<30), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(1 << 60, -(1<<30), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(1 << 60, -42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(1 << 60, 42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedintArg_of_(1 << 60, 1 << 30, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedlonglongAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(-(1 << 60), -(1<<30), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(-(1 << 60), -42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(-(1 << 60), 42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(-(1 << 60), 1 << 30, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(-42, -(1<<30), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(1 << 60, -(1<<30), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(1 << 60, -42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(1 << 60, 42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedintArg_of_(1 << 60, 1 << 30, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedlonglongAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(-(1 << 60), -(1<<30), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(-(1 << 60), -42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(-(1 << 60), 42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(-(1 << 60), 1 << 30, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(-42, -(1<<30), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(1 << 60, -(1<<30), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(1 << 60, -42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(1 << 60, 42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlongArg_of_(1 << 60, 1 << 30, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedlonglongAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(-(1 << 60), -(1<<30), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(-(1 << 60), -42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(-(1 << 60), 42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(-(1 << 60), 1 << 30, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(-42, -(1<<30), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(1 << 60, -(1<<30), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(1 << 60, -42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(1 << 60, 42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlongArg_of_(1 << 60, 1 << 30, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedlonglongAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(-(1 << 60), -(1 << 60), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(-(1 << 60), -42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(-(1 << 60), 42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(-(1 << 60), 1 << 60, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(-42, -(1 << 60), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(-42, 1 << 60, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(42, -(1 << 60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(42, 1 << 60, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(1 << 60, -(1 << 60), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(1 << 60, -42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(1 << 60, 42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andsignedlonglongArg_of_(1 << 60, 1 << 60, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 60)


    def testinvokesignedlonglongAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(-(1 << 60), -(1 << 60), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(-(1 << 60), -42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(-(1 << 60), 42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(-(1 << 60), 1 << 60, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(-42, -(1 << 60), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(-42, -42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(-42, 1 << 60, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(42, -(1 << 60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(42, 1 << 60, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(1 << 60, -(1 << 60), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(1 << 60, -42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(1 << 60, 42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andsignedlonglongArg_of_(1 << 60, 1 << 60, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 60)


    def testcallsignedlonglongAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedcharArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedcharArg_of_(-(1 << 60), 128, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedcharArg_of_(-(1 << 60), 255, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedcharArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedcharArg_of_(-42, 128, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedcharArg_of_(-42, 255, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedcharArg_of_(42, 128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedcharArg_of_(42, 255, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedcharArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedcharArg_of_(1 << 60, 128, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedcharArg_of_(1 << 60, 255, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 255)


    def testinvokesignedlonglongAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedcharArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedcharArg_of_(-(1 << 60), 128, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedcharArg_of_(-(1 << 60), 255, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedcharArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedcharArg_of_(-42, 128, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedcharArg_of_(-42, 255, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedcharArg_of_(42, 128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedcharArg_of_(42, 255, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedcharArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedcharArg_of_(1 << 60, 128, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedcharArg_of_(1 << 60, 255, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 255)


    def testcallsignedlonglongAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedshortArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedshortArg_of_(-(1 << 60), 42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedshortArg_of_(-(1 << 60), 1<<14, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedshortArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedshortArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedshortArg_of_(-42, 1<<14, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedshortArg_of_(42, 1<<14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedshortArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedshortArg_of_(1 << 60, 42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedshortArg_of_(1 << 60, 1<<14, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1<<14)


    def testinvokesignedlonglongAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedshortArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedshortArg_of_(-(1 << 60), 42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedshortArg_of_(-(1 << 60), 1<<14, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedshortArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedshortArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedshortArg_of_(-42, 1<<14, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedshortArg_of_(42, 1<<14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedshortArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedshortArg_of_(1 << 60, 42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedshortArg_of_(1 << 60, 1<<14, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1<<14)


    def testcallsignedlonglongAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedintArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedintArg_of_(-(1 << 60), 42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedintArg_of_(-(1 << 60), 1 << 30, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedintArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedintArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedintArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedintArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedintArg_of_(1 << 60, 42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedintArg_of_(1 << 60, 1 << 30, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedlonglongAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedintArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedintArg_of_(-(1 << 60), 42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedintArg_of_(-(1 << 60), 1 << 30, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedintArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedintArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedintArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedintArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedintArg_of_(1 << 60, 42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedintArg_of_(1 << 60, 1 << 30, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedlonglongAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlongArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlongArg_of_(-(1 << 60), 42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlongArg_of_(-(1 << 60), 1 << 30, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlongArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlongArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlongArg_of_(1 << 60, 42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlongArg_of_(1 << 60, 1 << 30, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedlonglongAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlongArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlongArg_of_(-(1 << 60), 42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlongArg_of_(-(1 << 60), 1 << 30, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlongArg_of_(-42, 1 << 30, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlongArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlongArg_of_(1 << 60, 42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlongArg_of_(1 << 60, 1 << 30, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedlonglongAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlonglongArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlonglongArg_of_(-(1 << 60), 42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlonglongArg_of_(-(1 << 60), 1 << 62, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlonglongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlonglongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlonglongArg_of_(-42, 1 << 62, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlonglongArg_of_(42, 1 << 62, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlonglongArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlonglongArg_of_(1 << 60, 42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongArg_andunsignedlonglongArg_of_(1 << 60, 1 << 62, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 62)


    def testinvokesignedlonglongAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlonglongArg_of_(-(1 << 60), 0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlonglongArg_of_(-(1 << 60), 42, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlonglongArg_of_(-(1 << 60), 1 << 62, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlonglongArg_of_(-42, 0, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlonglongArg_of_(-42, 42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlonglongArg_of_(-42, 1 << 62, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlonglongArg_of_(42, 1 << 62, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlonglongArg_of_(1 << 60, 0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlonglongArg_of_(1 << 60, 42, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andunsignedlonglongArg_of_(1 << 60, 1 << 62, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], 1 << 62)


    def testcallsignedlonglongAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(-(1 << 60), 0.128, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(-(1 << 60), 1.0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(-(1 << 60), 42.0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(-(1 << 60), 1e10, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(-42, 0.128, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(-42, 1.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(-42, 42.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(-42, 1e10, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(1 << 60, 0.128, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(1 << 60, 1.0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(1 << 60, 42.0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_andfloatArg_of_(1 << 60, 1e10, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokesignedlonglongAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(-(1 << 60), 0.128, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(-(1 << 60), 1.0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(-(1 << 60), 42.0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(-(1 << 60), 1e10, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(-42, 0.128, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(-42, 1.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(-42, 42.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(-42, 1e10, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(1 << 60, 0.128, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(1 << 60, 1.0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(1 << 60, 42.0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andfloatArg_of_(1 << 60, 1e10, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallsignedlonglongAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(-(1 << 60), 0.128, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(-(1 << 60), 1.0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(-(1 << 60), 42.0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(-(1 << 60), 1e10, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(-42, 0.128, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(-42, 1.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(-42, 42.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(-42, 1e10, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(1 << 60, 0.128, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(1 << 60, 1.0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(1 << 60, 42.0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callsignedlonglongArg_anddoubleArg_of_(1 << 60, 1e10, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokesignedlonglongAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(-(1 << 60), 0.128, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(-(1 << 60), 1.0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(-(1 << 60), 42.0, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(-(1 << 60), 1e10, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(-42, 0.128, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(-42, 1.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(-42, 42.0, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(-42, 1e10, o)
        self.assertEqual(r[0], -42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(1 << 60, 0.128, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(1 << 60, 1.0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(1 << 60, 42.0, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokesignedlonglongArg_anddoubleArg_of_(1 << 60, 1e10, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallsignedlonglongAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andidArg_of_(-(1 << 60), NSPriorDayDesignations, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callsignedlonglongArg_andidArg_of_(-42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callsignedlonglongArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callsignedlonglongArg_andidArg_of_(42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callsignedlonglongArg_andidArg_of_(1 << 60, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokesignedlonglongAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andidArg_of_(-(1 << 60), NSPriorDayDesignations, o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andidArg_of_(-42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andidArg_of_(42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andidArg_of_(1 << 60, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallsignedlonglongAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharPtrArg_of_(-(1 << 60), b"hello", o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharPtrArg_of_(-(1 << 60), b"world", o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharPtrArg_of_(-(1 << 60), b"foobar", o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharPtrArg_of_(-42, b"hello", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharPtrArg_of_(-42, b"world", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharPtrArg_of_(-42, b"foobar", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharPtrArg_of_(42, b"hello", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharPtrArg_of_(42, b"world", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharPtrArg_of_(42, b"foobar", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharPtrArg_of_(1 << 60, b"hello", o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharPtrArg_of_(1 << 60, b"world", o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callsignedlonglongArg_andcharPtrArg_of_(1 << 60, b"foobar", o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokesignedlonglongAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharPtrArg_of_(-(1 << 60), b"hello", o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharPtrArg_of_(-(1 << 60), b"world", o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharPtrArg_of_(-(1 << 60), b"foobar", o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharPtrArg_of_(-42, b"hello", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharPtrArg_of_(-42, b"world", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharPtrArg_of_(-42, b"foobar", o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharPtrArg_of_(42, b"hello", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharPtrArg_of_(42, b"world", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharPtrArg_of_(42, b"foobar", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharPtrArg_of_(1 << 60, b"hello", o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharPtrArg_of_(1 << 60, b"world", o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andcharPtrArg_of_(1 << 60, b"foobar", o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallsignedlonglongAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSPointArg_of_(-(1 << 60), (1, 2), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSPointArg_of_(-(1 << 60), (3, 4), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSPointArg_of_(-42, (1, 2), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSPointArg_of_(-42, (3, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSPointArg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSPointArg_of_(42, (3, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSPointArg_of_(1 << 60, (1, 2), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSPointArg_of_(1 << 60, (3, 4), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (3, 4))


    def testinvokesignedlonglongAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSPointArg_of_(-(1 << 60), (1, 2), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSPointArg_of_(-(1 << 60), (3, 4), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSPointArg_of_(-42, (1, 2), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSPointArg_of_(-42, (3, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSPointArg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSPointArg_of_(42, (3, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSPointArg_of_(1 << 60, (1, 2), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSPointArg_of_(1 << 60, (3, 4), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (3, 4))


    def testcallsignedlonglongAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSRectArg_of_(-(1 << 60), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSRectArg_of_(-(1 << 60), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSRectArg_of_(-42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSRectArg_of_(-42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSRectArg_of_(42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSRectArg_of_(42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSRectArg_of_(1 << 60, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andNSRectArg_of_(1 << 60, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokesignedlonglongAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSRectArg_of_(-(1 << 60), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSRectArg_of_(-(1 << 60), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSRectArg_of_(-42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSRectArg_of_(-42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSRectArg_of_(42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSRectArg_of_(42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSRectArg_of_(1 << 60, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andNSRectArg_of_(1 << 60, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallsignedlonglongAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct1Arg_of_(-(1 << 60), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct1Arg_of_(-(1 << 60), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct1Arg_of_(-42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct1Arg_of_(-42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct1Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct1Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct1Arg_of_(1 << 60, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct1Arg_of_(1 << 60, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokesignedlonglongAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct1Arg_of_(-(1 << 60), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct1Arg_of_(-(1 << 60), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct1Arg_of_(-42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct1Arg_of_(-42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct1Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct1Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct1Arg_of_(1 << 60, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct1Arg_of_(1 << 60, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallsignedlonglongAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct2Arg_of_(-(1 << 60), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct2Arg_of_(-(1 << 60), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct2Arg_of_(-42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct2Arg_of_(-42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct2Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct2Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct2Arg_of_(1 << 60, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct2Arg_of_(1 << 60, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokesignedlonglongAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct2Arg_of_(-(1 << 60), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct2Arg_of_(-(1 << 60), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct2Arg_of_(-42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct2Arg_of_(-42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct2Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct2Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct2Arg_of_(1 << 60, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct2Arg_of_(1 << 60, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallsignedlonglongAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct3Arg_of_(-(1 << 60), (1, 2), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct3Arg_of_(-(1 << 60), (2, 4), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct3Arg_of_(-42, (1, 2), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct3Arg_of_(-42, (2, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct3Arg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct3Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct3Arg_of_(1 << 60, (1, 2), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct3Arg_of_(1 << 60, (2, 4), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (2, 4))


    def testinvokesignedlonglongAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct3Arg_of_(-(1 << 60), (1, 2), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct3Arg_of_(-(1 << 60), (2, 4), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct3Arg_of_(-42, (1, 2), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct3Arg_of_(-42, (2, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct3Arg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct3Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct3Arg_of_(1 << 60, (1, 2), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct3Arg_of_(1 << 60, (2, 4), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (2, 4))


    def testcallsignedlonglongAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct4Arg_of_(-(1 << 60), (1, 1<<60), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct4Arg_of_(-(1 << 60), (2, 4), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct4Arg_of_(-42, (1, 1<<60), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct4Arg_of_(-42, (2, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct4Arg_of_(42, (1, 1<<60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct4Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct4Arg_of_(1 << 60, (1, 1<<60), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct4Arg_of_(1 << 60, (2, 4), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (2, 4))


    def testinvokesignedlonglongAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct4Arg_of_(-(1 << 60), (1, 1<<60), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct4Arg_of_(-(1 << 60), (2, 4), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct4Arg_of_(-42, (1, 1<<60), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct4Arg_of_(-42, (2, 4), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct4Arg_of_(42, (1, 1<<60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct4Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct4Arg_of_(1 << 60, (1, 1<<60), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct4Arg_of_(1 << 60, (2, 4), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (2, 4))


    def testcallsignedlonglongAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct5Arg_of_(-(1 << 60), (1, 2.5), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct5Arg_of_(-(1 << 60), (2, 4.5), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct5Arg_of_(-42, (1, 2.5), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct5Arg_of_(-42, (2, 4.5), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct5Arg_of_(42, (1, 2.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct5Arg_of_(42, (2, 4.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct5Arg_of_(1 << 60, (1, 2.5), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callsignedlonglongArg_andstructTestStruct5Arg_of_(1 << 60, (2, 4.5), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (2, 4.5))


    def testinvokesignedlonglongAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct5Arg_of_(-(1 << 60), (1, 2.5), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct5Arg_of_(-(1 << 60), (2, 4.5), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct5Arg_of_(-42, (1, 2.5), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct5Arg_of_(-42, (2, 4.5), o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct5Arg_of_(42, (1, 2.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct5Arg_of_(42, (2, 4.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct5Arg_of_(1 << 60, (1, 2.5), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokesignedlonglongArg_andstructTestStruct5Arg_of_(1 << 60, (2, 4.5), o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], (2, 4.5))


    def testcallunsignedcharAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedcharArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedcharArg_andboolArg_of_(128, YES, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedcharArg_andboolArg_of_(128, NO, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedcharArg_andboolArg_of_(255, YES, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedcharArg_andboolArg_of_(255, NO, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], NO)


    def testinvokeunsignedcharAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andboolArg_of_(128, YES, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andboolArg_of_(128, NO, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andboolArg_of_(255, YES, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andboolArg_of_(255, NO, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], NO)


    def testcallunsignedcharAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedcharArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedcharArg_andBOOLArg_of_(128, YES, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedcharArg_andBOOLArg_of_(128, NO, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedcharArg_andBOOLArg_of_(255, YES, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedcharArg_andBOOLArg_of_(255, NO, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], NO)


    def testinvokeunsignedcharAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andBOOLArg_of_(128, YES, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andBOOLArg_of_(128, NO, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andBOOLArg_of_(255, YES, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andBOOLArg_of_(255, NO, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], NO)


    def testcallunsignedcharAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callunsignedcharArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callunsignedcharArg_andcharArg_of_(128, -128, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callunsignedcharArg_andcharArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andcharArg_of_(128, 127, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callunsignedcharArg_andcharArg_of_(255, -128, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callunsignedcharArg_andcharArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andcharArg_of_(255, 127, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 127)


    def testinvokeunsignedcharAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharArg_of_(128, -128, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharArg_of_(128, 127, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharArg_of_(255, -128, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharArg_of_(255, 127, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 127)


    def testcallunsignedcharAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedshortArg_of_(128, -(1<<14), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedshortArg_of_(128, -42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedshortArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedshortArg_of_(128, 42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedshortArg_of_(128, 1 << 14, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedshortArg_of_(255, -(1<<14), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedshortArg_of_(255, -42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedshortArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedshortArg_of_(255, 42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedshortArg_of_(255, 1 << 14, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 14)


    def testinvokeunsignedcharAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedshortArg_of_(128, -(1<<14), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedshortArg_of_(128, -42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedshortArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedshortArg_of_(128, 42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedshortArg_of_(128, 1 << 14, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedshortArg_of_(255, -(1<<14), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedshortArg_of_(255, -42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedshortArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedshortArg_of_(255, 42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedshortArg_of_(255, 1 << 14, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 14)


    def testcallunsignedcharAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedintArg_of_(128, -(1<<30), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedintArg_of_(128, -42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedintArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedintArg_of_(128, 42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedintArg_of_(128, 1 << 30, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedintArg_of_(255, -(1<<30), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedintArg_of_(255, -42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedintArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedintArg_of_(255, 42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedintArg_of_(255, 1 << 30, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedcharAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedintArg_of_(128, -(1<<30), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedintArg_of_(128, -42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedintArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedintArg_of_(128, 42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedintArg_of_(128, 1 << 30, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedintArg_of_(255, -(1<<30), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedintArg_of_(255, -42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedintArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedintArg_of_(255, 42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedintArg_of_(255, 1 << 30, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedcharAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlongArg_of_(128, -(1<<30), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlongArg_of_(128, -42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlongArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlongArg_of_(128, 42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlongArg_of_(128, 1 << 30, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlongArg_of_(255, -(1<<30), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlongArg_of_(255, -42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlongArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlongArg_of_(255, 42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlongArg_of_(255, 1 << 30, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedcharAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlongArg_of_(128, -(1<<30), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlongArg_of_(128, -42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlongArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlongArg_of_(128, 42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlongArg_of_(128, 1 << 30, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlongArg_of_(255, -(1<<30), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlongArg_of_(255, -42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlongArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlongArg_of_(255, 42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlongArg_of_(255, 1 << 30, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedcharAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlonglongArg_of_(128, -(1 << 60), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlonglongArg_of_(128, -42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlonglongArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlonglongArg_of_(128, 42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlonglongArg_of_(128, 1 << 60, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlonglongArg_of_(255, -(1 << 60), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlonglongArg_of_(255, -42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlonglongArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlonglongArg_of_(255, 42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andsignedlonglongArg_of_(255, 1 << 60, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 60)


    def testinvokeunsignedcharAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlonglongArg_of_(128, -(1 << 60), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlonglongArg_of_(128, -42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlonglongArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlonglongArg_of_(128, 42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlonglongArg_of_(128, 1 << 60, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlonglongArg_of_(255, -(1 << 60), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlonglongArg_of_(255, -42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlonglongArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlonglongArg_of_(255, 42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andsignedlonglongArg_of_(255, 1 << 60, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 60)


    def testcallunsignedcharAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedcharArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedcharArg_of_(128, 128, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedcharArg_of_(128, 255, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedcharArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedcharArg_of_(255, 128, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedcharArg_of_(255, 255, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 255)


    def testinvokeunsignedcharAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedcharArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedcharArg_of_(128, 128, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedcharArg_of_(128, 255, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedcharArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedcharArg_of_(255, 128, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedcharArg_of_(255, 255, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 255)


    def testcallunsignedcharAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedshortArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedshortArg_of_(128, 42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedshortArg_of_(128, 1<<14, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedshortArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedshortArg_of_(255, 42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedshortArg_of_(255, 1<<14, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1<<14)


    def testinvokeunsignedcharAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedshortArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedshortArg_of_(128, 42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedshortArg_of_(128, 1<<14, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedshortArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedshortArg_of_(255, 42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedshortArg_of_(255, 1<<14, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1<<14)


    def testcallunsignedcharAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedintArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedintArg_of_(128, 42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedintArg_of_(128, 1 << 30, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedintArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedintArg_of_(255, 42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedintArg_of_(255, 1 << 30, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedcharAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedintArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedintArg_of_(128, 42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedintArg_of_(128, 1 << 30, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedintArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedintArg_of_(255, 42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedintArg_of_(255, 1 << 30, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedcharAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlongArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlongArg_of_(128, 42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlongArg_of_(128, 1 << 30, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlongArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlongArg_of_(255, 42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlongArg_of_(255, 1 << 30, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedcharAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlongArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlongArg_of_(128, 42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlongArg_of_(128, 1 << 30, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlongArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlongArg_of_(255, 42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlongArg_of_(255, 1 << 30, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedcharAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlonglongArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlonglongArg_of_(128, 42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlonglongArg_of_(128, 1 << 62, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlonglongArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlonglongArg_of_(255, 42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedcharArg_andunsignedlonglongArg_of_(255, 1 << 62, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 62)


    def testinvokeunsignedcharAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlonglongArg_of_(128, 0, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlonglongArg_of_(128, 42, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlonglongArg_of_(128, 1 << 62, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlonglongArg_of_(255, 0, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlonglongArg_of_(255, 42, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andunsignedlonglongArg_of_(255, 1 << 62, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 1 << 62)


    def testcallunsignedcharAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedcharArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedcharArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedcharArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedcharArg_andfloatArg_of_(128, 0.128, o)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedcharArg_andfloatArg_of_(128, 1.0, o)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedcharArg_andfloatArg_of_(128, 42.0, o)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedcharArg_andfloatArg_of_(128, 1e10, o)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedcharArg_andfloatArg_of_(255, 0.128, o)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedcharArg_andfloatArg_of_(255, 1.0, o)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedcharArg_andfloatArg_of_(255, 42.0, o)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedcharArg_andfloatArg_of_(255, 1e10, o)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeunsignedcharAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andfloatArg_of_(128, 0.128, o)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andfloatArg_of_(128, 1.0, o)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andfloatArg_of_(128, 42.0, o)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andfloatArg_of_(128, 1e10, o)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andfloatArg_of_(255, 0.128, o)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andfloatArg_of_(255, 1.0, o)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andfloatArg_of_(255, 42.0, o)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andfloatArg_of_(255, 1e10, o)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallunsignedcharAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedcharArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedcharArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedcharArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedcharArg_anddoubleArg_of_(128, 0.128, o)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedcharArg_anddoubleArg_of_(128, 1.0, o)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedcharArg_anddoubleArg_of_(128, 42.0, o)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedcharArg_anddoubleArg_of_(128, 1e10, o)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedcharArg_anddoubleArg_of_(255, 0.128, o)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedcharArg_anddoubleArg_of_(255, 1.0, o)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedcharArg_anddoubleArg_of_(255, 42.0, o)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedcharArg_anddoubleArg_of_(255, 1e10, o)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeunsignedcharAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedcharArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedcharArg_anddoubleArg_of_(128, 0.128, o)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedcharArg_anddoubleArg_of_(128, 1.0, o)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_anddoubleArg_of_(128, 42.0, o)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_anddoubleArg_of_(128, 1e10, o)
        self.assertEqual(r[0], 128)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedcharArg_anddoubleArg_of_(255, 0.128, o)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedcharArg_anddoubleArg_of_(255, 1.0, o)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_anddoubleArg_of_(255, 42.0, o)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedcharArg_anddoubleArg_of_(255, 1e10, o)
        self.assertEqual(r[0], 255)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallunsignedcharAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callunsignedcharArg_andidArg_of_(128, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callunsignedcharArg_andidArg_of_(255, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokeunsignedcharAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andidArg_of_(128, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andidArg_of_(255, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallunsignedcharAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callunsignedcharArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callunsignedcharArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callunsignedcharArg_andcharPtrArg_of_(128, b"hello", o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callunsignedcharArg_andcharPtrArg_of_(128, b"world", o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callunsignedcharArg_andcharPtrArg_of_(128, b"foobar", o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callunsignedcharArg_andcharPtrArg_of_(255, b"hello", o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callunsignedcharArg_andcharPtrArg_of_(255, b"world", o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callunsignedcharArg_andcharPtrArg_of_(255, b"foobar", o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokeunsignedcharAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharPtrArg_of_(128, b"hello", o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharPtrArg_of_(128, b"world", o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharPtrArg_of_(128, b"foobar", o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharPtrArg_of_(255, b"hello", o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharPtrArg_of_(255, b"world", o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andcharPtrArg_of_(255, b"foobar", o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallunsignedcharAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedcharArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callunsignedcharArg_andNSPointArg_of_(128, (1, 2), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedcharArg_andNSPointArg_of_(128, (3, 4), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callunsignedcharArg_andNSPointArg_of_(255, (1, 2), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedcharArg_andNSPointArg_of_(255, (3, 4), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (3, 4))


    def testinvokeunsignedcharAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andNSPointArg_of_(128, (1, 2), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andNSPointArg_of_(128, (3, 4), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andNSPointArg_of_(255, (1, 2), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andNSPointArg_of_(255, (3, 4), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (3, 4))


    def testcallunsignedcharAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callunsignedcharArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callunsignedcharArg_andNSRectArg_of_(128, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callunsignedcharArg_andNSRectArg_of_(128, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callunsignedcharArg_andNSRectArg_of_(255, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callunsignedcharArg_andNSRectArg_of_(255, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokeunsignedcharAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andNSRectArg_of_(128, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andNSRectArg_of_(128, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andNSRectArg_of_(255, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andNSRectArg_of_(255, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallunsignedcharAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct1Arg_of_(128, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct1Arg_of_(128, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct1Arg_of_(255, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct1Arg_of_(255, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeunsignedcharAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct1Arg_of_(128, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct1Arg_of_(128, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct1Arg_of_(255, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct1Arg_of_(255, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallunsignedcharAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct2Arg_of_(128, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct2Arg_of_(128, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct2Arg_of_(255, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct2Arg_of_(255, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeunsignedcharAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct2Arg_of_(128, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct2Arg_of_(128, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct2Arg_of_(255, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct2Arg_of_(255, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallunsignedcharAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct3Arg_of_(128, (1, 2), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct3Arg_of_(128, (2, 4), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct3Arg_of_(255, (1, 2), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct3Arg_of_(255, (2, 4), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (2, 4))


    def testinvokeunsignedcharAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct3Arg_of_(128, (1, 2), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct3Arg_of_(128, (2, 4), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct3Arg_of_(255, (1, 2), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct3Arg_of_(255, (2, 4), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (2, 4))


    def testcallunsignedcharAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct4Arg_of_(128, (1, 1<<60), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct4Arg_of_(128, (2, 4), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct4Arg_of_(255, (1, 1<<60), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct4Arg_of_(255, (2, 4), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (2, 4))


    def testinvokeunsignedcharAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct4Arg_of_(128, (1, 1<<60), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct4Arg_of_(128, (2, 4), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct4Arg_of_(255, (1, 1<<60), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct4Arg_of_(255, (2, 4), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (2, 4))


    def testcallunsignedcharAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct5Arg_of_(128, (1, 2.5), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct5Arg_of_(128, (2, 4.5), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct5Arg_of_(255, (1, 2.5), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callunsignedcharArg_andstructTestStruct5Arg_of_(255, (2, 4.5), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (2, 4.5))


    def testinvokeunsignedcharAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct5Arg_of_(128, (1, 2.5), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct5Arg_of_(128, (2, 4.5), o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct5Arg_of_(255, (1, 2.5), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeunsignedcharArg_andstructTestStruct5Arg_of_(255, (2, 4.5), o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], (2, 4.5))


    def testcallunsignedshortAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedshortArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedshortArg_andboolArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedshortArg_andboolArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedshortArg_andboolArg_of_(1<<14, YES, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedshortArg_andboolArg_of_(1<<14, NO, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], NO)


    def testinvokeunsignedshortAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andboolArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andboolArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andboolArg_of_(1<<14, YES, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andboolArg_of_(1<<14, NO, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], NO)


    def testcallunsignedshortAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedshortArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedshortArg_andBOOLArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedshortArg_andBOOLArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedshortArg_andBOOLArg_of_(1<<14, YES, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedshortArg_andBOOLArg_of_(1<<14, NO, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], NO)


    def testinvokeunsignedshortAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andBOOLArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andBOOLArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andBOOLArg_of_(1<<14, YES, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andBOOLArg_of_(1<<14, NO, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], NO)


    def testcallunsignedshortAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callunsignedshortArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callunsignedshortArg_andcharArg_of_(42, -128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callunsignedshortArg_andcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andcharArg_of_(42, 127, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callunsignedshortArg_andcharArg_of_(1<<14, -128, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callunsignedshortArg_andcharArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andcharArg_of_(1<<14, 127, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 127)


    def testinvokeunsignedshortAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharArg_of_(42, -128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharArg_of_(42, 127, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharArg_of_(1<<14, -128, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharArg_of_(1<<14, 127, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 127)


    def testcallunsignedshortAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedshortArg_of_(42, -(1<<14), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedshortArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedshortArg_of_(42, 1 << 14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedshortArg_of_(1<<14, -(1<<14), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedshortArg_of_(1<<14, -42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedshortArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedshortArg_of_(1<<14, 42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedshortArg_of_(1<<14, 1 << 14, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 14)


    def testinvokeunsignedshortAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedshortArg_of_(42, -(1<<14), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedshortArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedshortArg_of_(42, 1 << 14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedshortArg_of_(1<<14, -(1<<14), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedshortArg_of_(1<<14, -42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedshortArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedshortArg_of_(1<<14, 42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedshortArg_of_(1<<14, 1 << 14, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 14)


    def testcallunsignedshortAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedintArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedintArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedintArg_of_(1<<14, -(1<<30), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedintArg_of_(1<<14, -42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedintArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedintArg_of_(1<<14, 42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedintArg_of_(1<<14, 1 << 30, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedshortAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedintArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedintArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedintArg_of_(1<<14, -(1<<30), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedintArg_of_(1<<14, -42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedintArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedintArg_of_(1<<14, 42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedintArg_of_(1<<14, 1 << 30, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedshortAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlongArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlongArg_of_(1<<14, -(1<<30), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlongArg_of_(1<<14, -42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlongArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlongArg_of_(1<<14, 42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlongArg_of_(1<<14, 1 << 30, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedshortAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlongArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlongArg_of_(1<<14, -(1<<30), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlongArg_of_(1<<14, -42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlongArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlongArg_of_(1<<14, 42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlongArg_of_(1<<14, 1 << 30, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedshortAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlonglongArg_of_(42, -(1 << 60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlonglongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlonglongArg_of_(42, 1 << 60, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlonglongArg_of_(1<<14, -(1 << 60), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlonglongArg_of_(1<<14, -42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlonglongArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlonglongArg_of_(1<<14, 42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andsignedlonglongArg_of_(1<<14, 1 << 60, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 60)


    def testinvokeunsignedshortAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlonglongArg_of_(42, -(1 << 60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlonglongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlonglongArg_of_(42, 1 << 60, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlonglongArg_of_(1<<14, -(1 << 60), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlonglongArg_of_(1<<14, -42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlonglongArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlonglongArg_of_(1<<14, 42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andsignedlonglongArg_of_(1<<14, 1 << 60, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 60)


    def testcallunsignedshortAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedcharArg_of_(42, 128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedcharArg_of_(42, 255, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedcharArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedcharArg_of_(1<<14, 128, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedcharArg_of_(1<<14, 255, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 255)


    def testinvokeunsignedshortAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedcharArg_of_(42, 128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedcharArg_of_(42, 255, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedcharArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedcharArg_of_(1<<14, 128, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedcharArg_of_(1<<14, 255, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 255)


    def testcallunsignedshortAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedshortArg_of_(42, 1<<14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedshortArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedshortArg_of_(1<<14, 42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedshortArg_of_(1<<14, 1<<14, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1<<14)


    def testinvokeunsignedshortAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedshortArg_of_(42, 1<<14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedshortArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedshortArg_of_(1<<14, 42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedshortArg_of_(1<<14, 1<<14, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1<<14)


    def testcallunsignedshortAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedintArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedintArg_of_(1<<14, 42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedintArg_of_(1<<14, 1 << 30, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedshortAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedintArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedintArg_of_(1<<14, 42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedintArg_of_(1<<14, 1 << 30, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedshortAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlongArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlongArg_of_(1<<14, 42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlongArg_of_(1<<14, 1 << 30, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedshortAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlongArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlongArg_of_(1<<14, 42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlongArg_of_(1<<14, 1 << 30, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedshortAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlonglongArg_of_(42, 1 << 62, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlonglongArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlonglongArg_of_(1<<14, 42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortArg_andunsignedlonglongArg_of_(1<<14, 1 << 62, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 62)


    def testinvokeunsignedshortAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlonglongArg_of_(42, 1 << 62, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlonglongArg_of_(1<<14, 0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlonglongArg_of_(1<<14, 42, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andunsignedlonglongArg_of_(1<<14, 1 << 62, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 1 << 62)


    def testcallunsignedshortAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedshortArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedshortArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedshortArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedshortArg_andfloatArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedshortArg_andfloatArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedshortArg_andfloatArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedshortArg_andfloatArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedshortArg_andfloatArg_of_(1<<14, 0.128, o)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedshortArg_andfloatArg_of_(1<<14, 1.0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedshortArg_andfloatArg_of_(1<<14, 42.0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedshortArg_andfloatArg_of_(1<<14, 1e10, o)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeunsignedshortAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andfloatArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andfloatArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andfloatArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andfloatArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andfloatArg_of_(1<<14, 0.128, o)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andfloatArg_of_(1<<14, 1.0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andfloatArg_of_(1<<14, 42.0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andfloatArg_of_(1<<14, 1e10, o)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallunsignedshortAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedshortArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedshortArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedshortArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedshortArg_anddoubleArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedshortArg_anddoubleArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedshortArg_anddoubleArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedshortArg_anddoubleArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedshortArg_anddoubleArg_of_(1<<14, 0.128, o)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedshortArg_anddoubleArg_of_(1<<14, 1.0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedshortArg_anddoubleArg_of_(1<<14, 42.0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedshortArg_anddoubleArg_of_(1<<14, 1e10, o)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeunsignedshortAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedshortArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedshortArg_anddoubleArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedshortArg_anddoubleArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_anddoubleArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_anddoubleArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedshortArg_anddoubleArg_of_(1<<14, 0.128, o)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedshortArg_anddoubleArg_of_(1<<14, 1.0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_anddoubleArg_of_(1<<14, 42.0, o)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedshortArg_anddoubleArg_of_(1<<14, 1e10, o)
        self.assertEqual(r[0], 1<<14)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallunsignedshortAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callunsignedshortArg_andidArg_of_(42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callunsignedshortArg_andidArg_of_(1<<14, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokeunsignedshortAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andidArg_of_(42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andidArg_of_(1<<14, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallunsignedshortAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callunsignedshortArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callunsignedshortArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callunsignedshortArg_andcharPtrArg_of_(42, b"hello", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callunsignedshortArg_andcharPtrArg_of_(42, b"world", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callunsignedshortArg_andcharPtrArg_of_(42, b"foobar", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callunsignedshortArg_andcharPtrArg_of_(1<<14, b"hello", o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callunsignedshortArg_andcharPtrArg_of_(1<<14, b"world", o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callunsignedshortArg_andcharPtrArg_of_(1<<14, b"foobar", o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokeunsignedshortAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharPtrArg_of_(42, b"hello", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharPtrArg_of_(42, b"world", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharPtrArg_of_(42, b"foobar", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharPtrArg_of_(1<<14, b"hello", o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharPtrArg_of_(1<<14, b"world", o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andcharPtrArg_of_(1<<14, b"foobar", o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallunsignedshortAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedshortArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callunsignedshortArg_andNSPointArg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedshortArg_andNSPointArg_of_(42, (3, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callunsignedshortArg_andNSPointArg_of_(1<<14, (1, 2), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedshortArg_andNSPointArg_of_(1<<14, (3, 4), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (3, 4))


    def testinvokeunsignedshortAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andNSPointArg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andNSPointArg_of_(42, (3, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andNSPointArg_of_(1<<14, (1, 2), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andNSPointArg_of_(1<<14, (3, 4), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (3, 4))


    def testcallunsignedshortAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callunsignedshortArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callunsignedshortArg_andNSRectArg_of_(42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callunsignedshortArg_andNSRectArg_of_(42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callunsignedshortArg_andNSRectArg_of_(1<<14, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callunsignedshortArg_andNSRectArg_of_(1<<14, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokeunsignedshortAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andNSRectArg_of_(42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andNSRectArg_of_(42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andNSRectArg_of_(1<<14, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andNSRectArg_of_(1<<14, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallunsignedshortAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct1Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct1Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct1Arg_of_(1<<14, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct1Arg_of_(1<<14, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeunsignedshortAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct1Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct1Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct1Arg_of_(1<<14, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct1Arg_of_(1<<14, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallunsignedshortAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct2Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct2Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct2Arg_of_(1<<14, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct2Arg_of_(1<<14, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeunsignedshortAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct2Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct2Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct2Arg_of_(1<<14, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct2Arg_of_(1<<14, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallunsignedshortAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct3Arg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct3Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct3Arg_of_(1<<14, (1, 2), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct3Arg_of_(1<<14, (2, 4), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (2, 4))


    def testinvokeunsignedshortAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct3Arg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct3Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct3Arg_of_(1<<14, (1, 2), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct3Arg_of_(1<<14, (2, 4), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (2, 4))


    def testcallunsignedshortAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct4Arg_of_(42, (1, 1<<60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct4Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct4Arg_of_(1<<14, (1, 1<<60), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct4Arg_of_(1<<14, (2, 4), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (2, 4))


    def testinvokeunsignedshortAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct4Arg_of_(42, (1, 1<<60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct4Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct4Arg_of_(1<<14, (1, 1<<60), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct4Arg_of_(1<<14, (2, 4), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (2, 4))


    def testcallunsignedshortAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct5Arg_of_(42, (1, 2.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct5Arg_of_(42, (2, 4.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct5Arg_of_(1<<14, (1, 2.5), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callunsignedshortArg_andstructTestStruct5Arg_of_(1<<14, (2, 4.5), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (2, 4.5))


    def testinvokeunsignedshortAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct5Arg_of_(42, (1, 2.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct5Arg_of_(42, (2, 4.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct5Arg_of_(1<<14, (1, 2.5), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeunsignedshortArg_andstructTestStruct5Arg_of_(1<<14, (2, 4.5), o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], (2, 4.5))


    def testcallunsignedintAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedintArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedintArg_andboolArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedintArg_andboolArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedintArg_andboolArg_of_(1 << 30, YES, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedintArg_andboolArg_of_(1 << 30, NO, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testinvokeunsignedintAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedintArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedintArg_andboolArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedintArg_andboolArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedintArg_andboolArg_of_(1 << 30, YES, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedintArg_andboolArg_of_(1 << 30, NO, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testcallunsignedintAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedintArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedintArg_andBOOLArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedintArg_andBOOLArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedintArg_andBOOLArg_of_(1 << 30, YES, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedintArg_andBOOLArg_of_(1 << 30, NO, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testinvokeunsignedintAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedintArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedintArg_andBOOLArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedintArg_andBOOLArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedintArg_andBOOLArg_of_(1 << 30, YES, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedintArg_andBOOLArg_of_(1 << 30, NO, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testcallunsignedintAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callunsignedintArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callunsignedintArg_andcharArg_of_(42, -128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callunsignedintArg_andcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andcharArg_of_(42, 127, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callunsignedintArg_andcharArg_of_(1 << 30, -128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callunsignedintArg_andcharArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andcharArg_of_(1 << 30, 127, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 127)


    def testinvokeunsignedintAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharArg_of_(42, -128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharArg_of_(42, 127, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharArg_of_(1 << 30, -128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharArg_of_(1 << 30, 127, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 127)


    def testcallunsignedintAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callunsignedintArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedshortArg_of_(42, -(1<<14), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callunsignedintArg_andsignedshortArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedshortArg_of_(42, 1 << 14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedshortArg_of_(1 << 30, -(1<<14), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callunsignedintArg_andsignedshortArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedshortArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedshortArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedshortArg_of_(1 << 30, 1 << 14, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 14)


    def testinvokeunsignedintAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedshortArg_of_(42, -(1<<14), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedshortArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedshortArg_of_(42, 1 << 14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedshortArg_of_(1 << 30, -(1<<14), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedshortArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedshortArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedshortArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedshortArg_of_(1 << 30, 1 << 14, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 14)


    def testcallunsignedintAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedintArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedintArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedintArg_andsignedintArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedintArg_of_(1 << 30, -(1<<30), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedintArg_andsignedintArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedintArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedintArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedintArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedintAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedintArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedintArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedintArg_of_(1 << 30, -(1<<30), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedintArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedintArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedintArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedintArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedintAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlongArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlongArg_of_(1 << 30, -(1<<30), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlongArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlongArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedintAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlongArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlongArg_of_(1 << 30, -(1<<30), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlongArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlongArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedintAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlonglongArg_of_(42, -(1 << 60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlonglongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlonglongArg_of_(42, 1 << 60, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlonglongArg_of_(1 << 30, -(1 << 60), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlonglongArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlonglongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlonglongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andsignedlonglongArg_of_(1 << 30, 1 << 60, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 60)


    def testinvokeunsignedintAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlonglongArg_of_(42, -(1 << 60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlonglongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlonglongArg_of_(42, 1 << 60, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlonglongArg_of_(1 << 30, -(1 << 60), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlonglongArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlonglongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlonglongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andsignedlonglongArg_of_(1 << 30, 1 << 60, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 60)


    def testcallunsignedintAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedcharArg_of_(42, 128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedcharArg_of_(42, 255, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedcharArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedcharArg_of_(1 << 30, 128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedcharArg_of_(1 << 30, 255, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 255)


    def testinvokeunsignedintAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedcharArg_of_(42, 128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedcharArg_of_(42, 255, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedcharArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedcharArg_of_(1 << 30, 128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedcharArg_of_(1 << 30, 255, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 255)


    def testcallunsignedintAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedshortArg_of_(42, 1<<14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedshortArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedshortArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedshortArg_of_(1 << 30, 1<<14, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1<<14)


    def testinvokeunsignedintAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedshortArg_of_(42, 1<<14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedshortArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedshortArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedshortArg_of_(1 << 30, 1<<14, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1<<14)


    def testcallunsignedintAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedintArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedintArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedintArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedintAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedintArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedintArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedintArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedintAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlongArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedintAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlongArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedintAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlonglongArg_of_(42, 1 << 62, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlonglongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlonglongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintArg_andunsignedlonglongArg_of_(1 << 30, 1 << 62, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 62)


    def testinvokeunsignedintAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlonglongArg_of_(42, 1 << 62, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlonglongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlonglongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintArg_andunsignedlonglongArg_of_(1 << 30, 1 << 62, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 62)


    def testcallunsignedintAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedintArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedintArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedintArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedintArg_andfloatArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedintArg_andfloatArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedintArg_andfloatArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedintArg_andfloatArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedintArg_andfloatArg_of_(1 << 30, 0.128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedintArg_andfloatArg_of_(1 << 30, 1.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedintArg_andfloatArg_of_(1 << 30, 42.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedintArg_andfloatArg_of_(1 << 30, 1e10, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeunsignedintAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedintArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedintArg_andfloatArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedintArg_andfloatArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andfloatArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andfloatArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedintArg_andfloatArg_of_(1 << 30, 0.128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedintArg_andfloatArg_of_(1 << 30, 1.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andfloatArg_of_(1 << 30, 42.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedintArg_andfloatArg_of_(1 << 30, 1e10, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallunsignedintAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedintArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedintArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedintArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedintArg_anddoubleArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedintArg_anddoubleArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedintArg_anddoubleArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedintArg_anddoubleArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedintArg_anddoubleArg_of_(1 << 30, 0.128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedintArg_anddoubleArg_of_(1 << 30, 1.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedintArg_anddoubleArg_of_(1 << 30, 42.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedintArg_anddoubleArg_of_(1 << 30, 1e10, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeunsignedintAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedintArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedintArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedintArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedintArg_anddoubleArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedintArg_anddoubleArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedintArg_anddoubleArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedintArg_anddoubleArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedintArg_anddoubleArg_of_(1 << 30, 0.128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedintArg_anddoubleArg_of_(1 << 30, 1.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedintArg_anddoubleArg_of_(1 << 30, 42.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedintArg_anddoubleArg_of_(1 << 30, 1e10, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallunsignedintAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callunsignedintArg_andidArg_of_(42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callunsignedintArg_andidArg_of_(1 << 30, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokeunsignedintAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokeunsignedintArg_andidArg_of_(42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokeunsignedintArg_andidArg_of_(1 << 30, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallunsignedintAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callunsignedintArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callunsignedintArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callunsignedintArg_andcharPtrArg_of_(42, b"hello", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callunsignedintArg_andcharPtrArg_of_(42, b"world", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callunsignedintArg_andcharPtrArg_of_(42, b"foobar", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callunsignedintArg_andcharPtrArg_of_(1 << 30, b"hello", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callunsignedintArg_andcharPtrArg_of_(1 << 30, b"world", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callunsignedintArg_andcharPtrArg_of_(1 << 30, b"foobar", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokeunsignedintAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharPtrArg_of_(42, b"hello", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharPtrArg_of_(42, b"world", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharPtrArg_of_(42, b"foobar", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharPtrArg_of_(1 << 30, b"hello", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharPtrArg_of_(1 << 30, b"world", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeunsignedintArg_andcharPtrArg_of_(1 << 30, b"foobar", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallunsignedintAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedintArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callunsignedintArg_andNSPointArg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedintArg_andNSPointArg_of_(42, (3, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callunsignedintArg_andNSPointArg_of_(1 << 30, (1, 2), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedintArg_andNSPointArg_of_(1 << 30, (3, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (3, 4))


    def testinvokeunsignedintAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedintArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokeunsignedintArg_andNSPointArg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedintArg_andNSPointArg_of_(42, (3, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokeunsignedintArg_andNSPointArg_of_(1 << 30, (1, 2), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedintArg_andNSPointArg_of_(1 << 30, (3, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (3, 4))


    def testcallunsignedintAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callunsignedintArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callunsignedintArg_andNSRectArg_of_(42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callunsignedintArg_andNSRectArg_of_(42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callunsignedintArg_andNSRectArg_of_(1 << 30, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callunsignedintArg_andNSRectArg_of_(1 << 30, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokeunsignedintAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeunsignedintArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokeunsignedintArg_andNSRectArg_of_(42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeunsignedintArg_andNSRectArg_of_(42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokeunsignedintArg_andNSRectArg_of_(1 << 30, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeunsignedintArg_andNSRectArg_of_(1 << 30, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallunsignedintAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct1Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct1Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct1Arg_of_(1 << 30, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct1Arg_of_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeunsignedintAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct1Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct1Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct1Arg_of_(1 << 30, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct1Arg_of_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallunsignedintAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct2Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct2Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct2Arg_of_(1 << 30, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct2Arg_of_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeunsignedintAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct2Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct2Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct2Arg_of_(1 << 30, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct2Arg_of_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallunsignedintAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct3Arg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct3Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct3Arg_of_(1 << 30, (1, 2), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct3Arg_of_(1 << 30, (2, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testinvokeunsignedintAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct3Arg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct3Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct3Arg_of_(1 << 30, (1, 2), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct3Arg_of_(1 << 30, (2, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testcallunsignedintAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct4Arg_of_(42, (1, 1<<60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct4Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct4Arg_of_(1 << 30, (1, 1<<60), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct4Arg_of_(1 << 30, (2, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testinvokeunsignedintAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct4Arg_of_(42, (1, 1<<60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct4Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct4Arg_of_(1 << 30, (1, 1<<60), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct4Arg_of_(1 << 30, (2, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testcallunsignedintAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct5Arg_of_(42, (1, 2.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct5Arg_of_(42, (2, 4.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct5Arg_of_(1 << 30, (1, 2.5), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callunsignedintArg_andstructTestStruct5Arg_of_(1 << 30, (2, 4.5), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4.5))


    def testinvokeunsignedintAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct5Arg_of_(42, (1, 2.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct5Arg_of_(42, (2, 4.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct5Arg_of_(1 << 30, (1, 2.5), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeunsignedintArg_andstructTestStruct5Arg_of_(1 << 30, (2, 4.5), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4.5))


    def testcallunsignedlongAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedlongArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedlongArg_andboolArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedlongArg_andboolArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedlongArg_andboolArg_of_(1 << 30, YES, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedlongArg_andboolArg_of_(1 << 30, NO, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testinvokeunsignedlongAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andboolArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andboolArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andboolArg_of_(1 << 30, YES, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andboolArg_of_(1 << 30, NO, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testcallunsignedlongAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedlongArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedlongArg_andBOOLArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedlongArg_andBOOLArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedlongArg_andBOOLArg_of_(1 << 30, YES, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedlongArg_andBOOLArg_of_(1 << 30, NO, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testinvokeunsignedlongAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andBOOLArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andBOOLArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andBOOLArg_of_(1 << 30, YES, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andBOOLArg_of_(1 << 30, NO, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NO)


    def testcallunsignedlongAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callunsignedlongArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callunsignedlongArg_andcharArg_of_(42, -128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callunsignedlongArg_andcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andcharArg_of_(42, 127, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callunsignedlongArg_andcharArg_of_(1 << 30, -128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callunsignedlongArg_andcharArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andcharArg_of_(1 << 30, 127, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 127)


    def testinvokeunsignedlongAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharArg_of_(42, -128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharArg_of_(42, 127, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharArg_of_(1 << 30, -128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharArg_of_(1 << 30, 127, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 127)


    def testcallunsignedlongAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedshortArg_of_(42, -(1<<14), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedshortArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedshortArg_of_(42, 1 << 14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedshortArg_of_(1 << 30, -(1<<14), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedshortArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedshortArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedshortArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedshortArg_of_(1 << 30, 1 << 14, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 14)


    def testinvokeunsignedlongAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedshortArg_of_(42, -(1<<14), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedshortArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedshortArg_of_(42, 1 << 14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedshortArg_of_(1 << 30, -(1<<14), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedshortArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedshortArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedshortArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedshortArg_of_(1 << 30, 1 << 14, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 14)


    def testcallunsignedlongAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedintArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedintArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedintArg_of_(1 << 30, -(1<<30), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedintArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedintArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedintArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedintArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedlongAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedintArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedintArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedintArg_of_(1 << 30, -(1<<30), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedintArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedintArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedintArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedintArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedlongAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlongArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlongArg_of_(1 << 30, -(1<<30), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlongArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlongArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedlongAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlongArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlongArg_of_(1 << 30, -(1<<30), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlongArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlongArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedlongAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlonglongArg_of_(42, -(1 << 60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlonglongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlonglongArg_of_(42, 1 << 60, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlonglongArg_of_(1 << 30, -(1 << 60), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlonglongArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlonglongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlonglongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andsignedlonglongArg_of_(1 << 30, 1 << 60, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 60)


    def testinvokeunsignedlongAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlonglongArg_of_(42, -(1 << 60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlonglongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlonglongArg_of_(42, 1 << 60, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlonglongArg_of_(1 << 30, -(1 << 60), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlonglongArg_of_(1 << 30, -42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlonglongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlonglongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andsignedlonglongArg_of_(1 << 30, 1 << 60, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 60)


    def testcallunsignedlongAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedcharArg_of_(42, 128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedcharArg_of_(42, 255, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedcharArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedcharArg_of_(1 << 30, 128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedcharArg_of_(1 << 30, 255, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 255)


    def testinvokeunsignedlongAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedcharArg_of_(42, 128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedcharArg_of_(42, 255, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedcharArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedcharArg_of_(1 << 30, 128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedcharArg_of_(1 << 30, 255, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 255)


    def testcallunsignedlongAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedshortArg_of_(42, 1<<14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedshortArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedshortArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedshortArg_of_(1 << 30, 1<<14, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1<<14)


    def testinvokeunsignedlongAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedshortArg_of_(42, 1<<14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedshortArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedshortArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedshortArg_of_(1 << 30, 1<<14, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1<<14)


    def testcallunsignedlongAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedintArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedintArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedintArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedlongAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedintArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedintArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedintArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedlongAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlongArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedlongAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlongArg_of_(1 << 30, 1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedlongAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlonglongArg_of_(42, 1 << 62, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlonglongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlonglongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongArg_andunsignedlonglongArg_of_(1 << 30, 1 << 62, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 62)


    def testinvokeunsignedlongAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlonglongArg_of_(42, 1 << 62, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlonglongArg_of_(1 << 30, 0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlonglongArg_of_(1 << 30, 42, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andunsignedlonglongArg_of_(1 << 30, 1 << 62, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 1 << 62)


    def testcallunsignedlongAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedlongArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedlongArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedlongArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedlongArg_andfloatArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedlongArg_andfloatArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedlongArg_andfloatArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedlongArg_andfloatArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedlongArg_andfloatArg_of_(1 << 30, 0.128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedlongArg_andfloatArg_of_(1 << 30, 1.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedlongArg_andfloatArg_of_(1 << 30, 42.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedlongArg_andfloatArg_of_(1 << 30, 1e10, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeunsignedlongAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andfloatArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andfloatArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andfloatArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andfloatArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andfloatArg_of_(1 << 30, 0.128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andfloatArg_of_(1 << 30, 1.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andfloatArg_of_(1 << 30, 42.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andfloatArg_of_(1 << 30, 1e10, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallunsignedlongAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedlongArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedlongArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedlongArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedlongArg_anddoubleArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedlongArg_anddoubleArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedlongArg_anddoubleArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedlongArg_anddoubleArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedlongArg_anddoubleArg_of_(1 << 30, 0.128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedlongArg_anddoubleArg_of_(1 << 30, 1.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedlongArg_anddoubleArg_of_(1 << 30, 42.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedlongArg_anddoubleArg_of_(1 << 30, 1e10, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeunsignedlongAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedlongArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedlongArg_anddoubleArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedlongArg_anddoubleArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_anddoubleArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_anddoubleArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedlongArg_anddoubleArg_of_(1 << 30, 0.128, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedlongArg_anddoubleArg_of_(1 << 30, 1.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_anddoubleArg_of_(1 << 30, 42.0, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedlongArg_anddoubleArg_of_(1 << 30, 1e10, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallunsignedlongAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callunsignedlongArg_andidArg_of_(42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callunsignedlongArg_andidArg_of_(1 << 30, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokeunsignedlongAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andidArg_of_(42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andidArg_of_(1 << 30, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallunsignedlongAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callunsignedlongArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callunsignedlongArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callunsignedlongArg_andcharPtrArg_of_(42, b"hello", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callunsignedlongArg_andcharPtrArg_of_(42, b"world", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callunsignedlongArg_andcharPtrArg_of_(42, b"foobar", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callunsignedlongArg_andcharPtrArg_of_(1 << 30, b"hello", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callunsignedlongArg_andcharPtrArg_of_(1 << 30, b"world", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callunsignedlongArg_andcharPtrArg_of_(1 << 30, b"foobar", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokeunsignedlongAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharPtrArg_of_(42, b"hello", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharPtrArg_of_(42, b"world", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharPtrArg_of_(42, b"foobar", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharPtrArg_of_(1 << 30, b"hello", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharPtrArg_of_(1 << 30, b"world", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andcharPtrArg_of_(1 << 30, b"foobar", o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallunsignedlongAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedlongArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callunsignedlongArg_andNSPointArg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedlongArg_andNSPointArg_of_(42, (3, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callunsignedlongArg_andNSPointArg_of_(1 << 30, (1, 2), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedlongArg_andNSPointArg_of_(1 << 30, (3, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (3, 4))


    def testinvokeunsignedlongAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andNSPointArg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andNSPointArg_of_(42, (3, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andNSPointArg_of_(1 << 30, (1, 2), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andNSPointArg_of_(1 << 30, (3, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (3, 4))


    def testcallunsignedlongAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callunsignedlongArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callunsignedlongArg_andNSRectArg_of_(42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callunsignedlongArg_andNSRectArg_of_(42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callunsignedlongArg_andNSRectArg_of_(1 << 30, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callunsignedlongArg_andNSRectArg_of_(1 << 30, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokeunsignedlongAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andNSRectArg_of_(42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andNSRectArg_of_(42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andNSRectArg_of_(1 << 30, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andNSRectArg_of_(1 << 30, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallunsignedlongAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct1Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct1Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct1Arg_of_(1 << 30, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct1Arg_of_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeunsignedlongAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct1Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct1Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct1Arg_of_(1 << 30, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct1Arg_of_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallunsignedlongAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct2Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct2Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct2Arg_of_(1 << 30, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct2Arg_of_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeunsignedlongAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct2Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct2Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct2Arg_of_(1 << 30, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct2Arg_of_(1 << 30, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallunsignedlongAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct3Arg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct3Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct3Arg_of_(1 << 30, (1, 2), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct3Arg_of_(1 << 30, (2, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testinvokeunsignedlongAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct3Arg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct3Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct3Arg_of_(1 << 30, (1, 2), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct3Arg_of_(1 << 30, (2, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testcallunsignedlongAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct4Arg_of_(42, (1, 1<<60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct4Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct4Arg_of_(1 << 30, (1, 1<<60), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct4Arg_of_(1 << 30, (2, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testinvokeunsignedlongAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct4Arg_of_(42, (1, 1<<60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct4Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct4Arg_of_(1 << 30, (1, 1<<60), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct4Arg_of_(1 << 30, (2, 4), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4))


    def testcallunsignedlongAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct5Arg_of_(42, (1, 2.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct5Arg_of_(42, (2, 4.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct5Arg_of_(1 << 30, (1, 2.5), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callunsignedlongArg_andstructTestStruct5Arg_of_(1 << 30, (2, 4.5), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4.5))


    def testinvokeunsignedlongAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct5Arg_of_(42, (1, 2.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct5Arg_of_(42, (2, 4.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct5Arg_of_(1 << 30, (1, 2.5), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeunsignedlongArg_andstructTestStruct5Arg_of_(1 << 30, (2, 4.5), o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], (2, 4.5))


    def testcallunsignedlonglongAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andboolArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andboolArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andboolArg_of_(1 << 62, YES, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andboolArg_of_(1 << 62, NO, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], NO)


    def testinvokeunsignedlonglongAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andboolArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andboolArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andboolArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andboolArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andboolArg_of_(1 << 62, YES, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andboolArg_of_(1 << 62, NO, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], NO)


    def testcallunsignedlonglongAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andBOOLArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andBOOLArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andBOOLArg_of_(1 << 62, YES, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andBOOLArg_of_(1 << 62, NO, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], NO)


    def testinvokeunsignedlonglongAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andBOOLArg_of_(0, YES, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andBOOLArg_of_(0, NO, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andBOOLArg_of_(42, YES, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andBOOLArg_of_(42, NO, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andBOOLArg_of_(1 << 62, YES, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andBOOLArg_of_(1 << 62, NO, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], NO)


    def testcallunsignedlonglongAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharArg_of_(42, -128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharArg_of_(42, 127, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharArg_of_(1 << 62, -128, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharArg_of_(1 << 62, 127, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 127)


    def testinvokeunsignedlonglongAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharArg_of_(0, -128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharArg_of_(0, 127, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharArg_of_(42, -128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharArg_of_(42, 127, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharArg_of_(1 << 62, -128, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharArg_of_(1 << 62, 127, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 127)


    def testcallunsignedlonglongAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedshortArg_of_(42, -(1<<14), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedshortArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedshortArg_of_(42, 1 << 14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedshortArg_of_(1 << 62, -(1<<14), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedshortArg_of_(1 << 62, -42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedshortArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedshortArg_of_(1 << 62, 42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedshortArg_of_(1 << 62, 1 << 14, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 14)


    def testinvokeunsignedlonglongAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedshortArg_of_(0, -(1<<14), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedshortArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedshortArg_of_(0, 1 << 14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedshortArg_of_(42, -(1<<14), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedshortArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedshortArg_of_(42, 1 << 14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedshortArg_of_(1 << 62, -(1<<14), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedshortArg_of_(1 << 62, -42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedshortArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedshortArg_of_(1 << 62, 42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedshortArg_of_(1 << 62, 1 << 14, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 14)


    def testcallunsignedlonglongAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedintArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedintArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedintArg_of_(1 << 62, -(1<<30), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedintArg_of_(1 << 62, -42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedintArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedintArg_of_(1 << 62, 42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedintArg_of_(1 << 62, 1 << 30, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedlonglongAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedintArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedintArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedintArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedintArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedintArg_of_(1 << 62, -(1<<30), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedintArg_of_(1 << 62, -42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedintArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedintArg_of_(1 << 62, 42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedintArg_of_(1 << 62, 1 << 30, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedlonglongAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlongArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlongArg_of_(1 << 62, -(1<<30), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlongArg_of_(1 << 62, -42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlongArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlongArg_of_(1 << 62, 42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlongArg_of_(1 << 62, 1 << 30, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedlonglongAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlongArg_of_(0, -(1<<30), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlongArg_of_(42, -(1<<30), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlongArg_of_(1 << 62, -(1<<30), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlongArg_of_(1 << 62, -42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlongArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlongArg_of_(1 << 62, 42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlongArg_of_(1 << 62, 1 << 30, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedlonglongAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlonglongArg_of_(42, -(1 << 60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlonglongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlonglongArg_of_(42, 1 << 60, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlonglongArg_of_(1 << 62, -(1 << 60), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlonglongArg_of_(1 << 62, -42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlonglongArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlonglongArg_of_(1 << 62, 42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andsignedlonglongArg_of_(1 << 62, 1 << 60, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 60)


    def testinvokeunsignedlonglongAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlonglongArg_of_(0, -(1 << 60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlonglongArg_of_(0, -42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlonglongArg_of_(0, 1 << 60, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlonglongArg_of_(42, -(1 << 60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlonglongArg_of_(42, -42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlonglongArg_of_(42, 1 << 60, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlonglongArg_of_(1 << 62, -(1 << 60), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlonglongArg_of_(1 << 62, -42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlonglongArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlonglongArg_of_(1 << 62, 42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andsignedlonglongArg_of_(1 << 62, 1 << 60, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 60)


    def testcallunsignedlonglongAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedcharArg_of_(42, 128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedcharArg_of_(42, 255, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedcharArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedcharArg_of_(1 << 62, 128, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedcharArg_of_(1 << 62, 255, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 255)


    def testinvokeunsignedlonglongAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedcharArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedcharArg_of_(0, 128, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedcharArg_of_(0, 255, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedcharArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedcharArg_of_(42, 128, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedcharArg_of_(42, 255, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedcharArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedcharArg_of_(1 << 62, 128, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedcharArg_of_(1 << 62, 255, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 255)


    def testcallunsignedlonglongAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedshortArg_of_(42, 1<<14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedshortArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedshortArg_of_(1 << 62, 42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedshortArg_of_(1 << 62, 1<<14, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1<<14)


    def testinvokeunsignedlonglongAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedshortArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedshortArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedshortArg_of_(0, 1<<14, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedshortArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedshortArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedshortArg_of_(42, 1<<14, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedshortArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedshortArg_of_(1 << 62, 42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedshortArg_of_(1 << 62, 1<<14, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1<<14)


    def testcallunsignedlonglongAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedintArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedintArg_of_(1 << 62, 42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedintArg_of_(1 << 62, 1 << 30, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedlonglongAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedintArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedintArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedintArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedintArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedintArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedintArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedintArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedintArg_of_(1 << 62, 42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedintArg_of_(1 << 62, 1 << 30, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedlonglongAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlongArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlongArg_of_(1 << 62, 42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlongArg_of_(1 << 62, 1 << 30, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedlonglongAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlongArg_of_(0, 1 << 30, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlongArg_of_(42, 1 << 30, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlongArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlongArg_of_(1 << 62, 42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlongArg_of_(1 << 62, 1 << 30, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedlonglongAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlonglongArg_of_(42, 1 << 62, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlonglongArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlonglongArg_of_(1 << 62, 42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andunsignedlonglongArg_of_(1 << 62, 1 << 62, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 62)


    def testinvokeunsignedlonglongAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlonglongArg_of_(0, 0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlonglongArg_of_(0, 42, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlonglongArg_of_(0, 1 << 62, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlonglongArg_of_(42, 0, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlonglongArg_of_(42, 42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlonglongArg_of_(42, 1 << 62, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlonglongArg_of_(1 << 62, 0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlonglongArg_of_(1 << 62, 42, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andunsignedlonglongArg_of_(1 << 62, 1 << 62, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 1 << 62)


    def testcallunsignedlonglongAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andfloatArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andfloatArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andfloatArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andfloatArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andfloatArg_of_(1 << 62, 0.128, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andfloatArg_of_(1 << 62, 1.0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andfloatArg_of_(1 << 62, 42.0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andfloatArg_of_(1 << 62, 1e10, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeunsignedlonglongAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andfloatArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andfloatArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andfloatArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andfloatArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andfloatArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andfloatArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andfloatArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andfloatArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andfloatArg_of_(1 << 62, 0.128, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andfloatArg_of_(1 << 62, 1.0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andfloatArg_of_(1 << 62, 42.0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andfloatArg_of_(1 << 62, 1e10, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallunsignedlonglongAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedlonglongArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedlonglongArg_anddoubleArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedlonglongArg_anddoubleArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_anddoubleArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_anddoubleArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callunsignedlonglongArg_anddoubleArg_of_(1 << 62, 0.128, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callunsignedlonglongArg_anddoubleArg_of_(1 << 62, 1.0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_anddoubleArg_of_(1 << 62, 42.0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callunsignedlonglongArg_anddoubleArg_of_(1 << 62, 1e10, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeunsignedlonglongAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_anddoubleArg_of_(0, 0.128, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_anddoubleArg_of_(0, 1.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_anddoubleArg_of_(0, 42.0, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_anddoubleArg_of_(0, 1e10, o)
        self.assertEqual(r[0], 0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_anddoubleArg_of_(42, 0.128, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_anddoubleArg_of_(42, 1.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_anddoubleArg_of_(42, 42.0, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_anddoubleArg_of_(42, 1e10, o)
        self.assertEqual(r[0], 42)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_anddoubleArg_of_(1 << 62, 0.128, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_anddoubleArg_of_(1 << 62, 1.0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_anddoubleArg_of_(1 << 62, 42.0, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_anddoubleArg_of_(1 << 62, 1e10, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallunsignedlonglongAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andidArg_of_(42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andidArg_of_(1 << 62, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokeunsignedlonglongAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andidArg_of_(0, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andidArg_of_(42, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andidArg_of_(1 << 62, NSPriorDayDesignations, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallunsignedlonglongAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharPtrArg_of_(42, b"hello", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharPtrArg_of_(42, b"world", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharPtrArg_of_(42, b"foobar", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharPtrArg_of_(1 << 62, b"hello", o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharPtrArg_of_(1 << 62, b"world", o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andcharPtrArg_of_(1 << 62, b"foobar", o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokeunsignedlonglongAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharPtrArg_of_(0, b"hello", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharPtrArg_of_(0, b"world", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharPtrArg_of_(0, b"foobar", o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharPtrArg_of_(42, b"hello", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharPtrArg_of_(42, b"world", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharPtrArg_of_(42, b"foobar", o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharPtrArg_of_(1 << 62, b"hello", o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharPtrArg_of_(1 << 62, b"world", o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andcharPtrArg_of_(1 << 62, b"foobar", o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallunsignedlonglongAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andNSPointArg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andNSPointArg_of_(42, (3, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andNSPointArg_of_(1 << 62, (1, 2), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andNSPointArg_of_(1 << 62, (3, 4), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (3, 4))


    def testinvokeunsignedlonglongAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andNSPointArg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andNSPointArg_of_(0, (3, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andNSPointArg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andNSPointArg_of_(42, (3, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andNSPointArg_of_(1 << 62, (1, 2), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andNSPointArg_of_(1 << 62, (3, 4), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (3, 4))


    def testcallunsignedlonglongAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andNSRectArg_of_(42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andNSRectArg_of_(42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andNSRectArg_of_(1 << 62, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andNSRectArg_of_(1 << 62, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokeunsignedlonglongAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andNSRectArg_of_(0, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andNSRectArg_of_(0, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andNSRectArg_of_(42, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andNSRectArg_of_(42, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andNSRectArg_of_(1 << 62, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andNSRectArg_of_(1 << 62, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallunsignedlonglongAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct1Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct1Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct1Arg_of_(1 << 62, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct1Arg_of_(1 << 62, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeunsignedlonglongAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct1Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct1Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct1Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct1Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct1Arg_of_(1 << 62, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct1Arg_of_(1 << 62, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallunsignedlonglongAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct2Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct2Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct2Arg_of_(1 << 62, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct2Arg_of_(1 << 62, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeunsignedlonglongAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct2Arg_of_(0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct2Arg_of_(0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct2Arg_of_(42, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct2Arg_of_(42, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct2Arg_of_(1 << 62, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct2Arg_of_(1 << 62, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallunsignedlonglongAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct3Arg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct3Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct3Arg_of_(1 << 62, (1, 2), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct3Arg_of_(1 << 62, (2, 4), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (2, 4))


    def testinvokeunsignedlonglongAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct3Arg_of_(0, (1, 2), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct3Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct3Arg_of_(42, (1, 2), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct3Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct3Arg_of_(1 << 62, (1, 2), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct3Arg_of_(1 << 62, (2, 4), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (2, 4))


    def testcallunsignedlonglongAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct4Arg_of_(42, (1, 1<<60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct4Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct4Arg_of_(1 << 62, (1, 1<<60), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct4Arg_of_(1 << 62, (2, 4), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (2, 4))


    def testinvokeunsignedlonglongAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct4Arg_of_(0, (1, 1<<60), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct4Arg_of_(0, (2, 4), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct4Arg_of_(42, (1, 1<<60), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct4Arg_of_(42, (2, 4), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct4Arg_of_(1 << 62, (1, 1<<60), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct4Arg_of_(1 << 62, (2, 4), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (2, 4))


    def testcallunsignedlonglongAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct5Arg_of_(42, (1, 2.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct5Arg_of_(42, (2, 4.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct5Arg_of_(1 << 62, (1, 2.5), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callunsignedlonglongArg_andstructTestStruct5Arg_of_(1 << 62, (2, 4.5), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (2, 4.5))


    def testinvokeunsignedlonglongAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct5Arg_of_(0, (1, 2.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct5Arg_of_(0, (2, 4.5), o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct5Arg_of_(42, (1, 2.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct5Arg_of_(42, (2, 4.5), o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct5Arg_of_(1 << 62, (1, 2.5), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeunsignedlonglongArg_andstructTestStruct5Arg_of_(1 << 62, (2, 4.5), o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], (2, 4.5))


    def testcallfloatAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andboolArg_of_(0.128, YES, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callfloatArg_andboolArg_of_(0.128, NO, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callfloatArg_andboolArg_of_(1.0, YES, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callfloatArg_andboolArg_of_(1.0, NO, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callfloatArg_andboolArg_of_(42.0, YES, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callfloatArg_andboolArg_of_(42.0, NO, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callfloatArg_andboolArg_of_(1e10, YES, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callfloatArg_andboolArg_of_(1e10, NO, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NO)


    def testinvokefloatAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andboolArg_of_(0.128, YES, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokefloatArg_andboolArg_of_(0.128, NO, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokefloatArg_andboolArg_of_(1.0, YES, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokefloatArg_andboolArg_of_(1.0, NO, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokefloatArg_andboolArg_of_(42.0, YES, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokefloatArg_andboolArg_of_(42.0, NO, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokefloatArg_andboolArg_of_(1e10, YES, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokefloatArg_andboolArg_of_(1e10, NO, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NO)


    def testcallfloatAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andBOOLArg_of_(0.128, YES, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callfloatArg_andBOOLArg_of_(0.128, NO, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callfloatArg_andBOOLArg_of_(1.0, YES, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callfloatArg_andBOOLArg_of_(1.0, NO, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callfloatArg_andBOOLArg_of_(42.0, YES, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callfloatArg_andBOOLArg_of_(42.0, NO, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callfloatArg_andBOOLArg_of_(1e10, YES, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callfloatArg_andBOOLArg_of_(1e10, NO, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NO)


    def testinvokefloatAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andBOOLArg_of_(0.128, YES, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokefloatArg_andBOOLArg_of_(0.128, NO, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokefloatArg_andBOOLArg_of_(1.0, YES, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokefloatArg_andBOOLArg_of_(1.0, NO, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokefloatArg_andBOOLArg_of_(42.0, YES, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokefloatArg_andBOOLArg_of_(42.0, NO, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokefloatArg_andBOOLArg_of_(1e10, YES, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokefloatArg_andBOOLArg_of_(1e10, NO, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NO)


    def testcallfloatAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andcharArg_of_(0.128, -128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callfloatArg_andcharArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andcharArg_of_(0.128, 127, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callfloatArg_andcharArg_of_(1.0, -128, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callfloatArg_andcharArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andcharArg_of_(1.0, 127, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callfloatArg_andcharArg_of_(42.0, -128, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callfloatArg_andcharArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andcharArg_of_(42.0, 127, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callfloatArg_andcharArg_of_(1e10, -128, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callfloatArg_andcharArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andcharArg_of_(1e10, 127, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 127)


    def testinvokefloatAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andcharArg_of_(0.128, -128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokefloatArg_andcharArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andcharArg_of_(0.128, 127, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokefloatArg_andcharArg_of_(1.0, -128, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokefloatArg_andcharArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andcharArg_of_(1.0, 127, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokefloatArg_andcharArg_of_(42.0, -128, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokefloatArg_andcharArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andcharArg_of_(42.0, 127, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokefloatArg_andcharArg_of_(1e10, -128, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokefloatArg_andcharArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andcharArg_of_(1e10, 127, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 127)


    def testcallfloatAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(0.128, -(1<<14), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(0.128, -42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(0.128, 1 << 14, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(1.0, -(1<<14), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(1.0, -42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(1.0, 1 << 14, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(42.0, -(1<<14), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(42.0, -42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(42.0, 1 << 14, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(1e10, -(1<<14), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(1e10, -42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andsignedshortArg_of_(1e10, 1 << 14, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 14)


    def testinvokefloatAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(0.128, -(1<<14), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(0.128, -42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(0.128, 1 << 14, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(1.0, -(1<<14), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(1.0, -42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(1.0, 1 << 14, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(42.0, -(1<<14), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(42.0, -42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(42.0, 1 << 14, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(1e10, -(1<<14), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(1e10, -42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedshortArg_of_(1e10, 1 << 14, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 14)


    def testcallfloatAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(0.128, -(1<<30), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(0.128, -42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(0.128, 1 << 30, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(1.0, -(1<<30), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(1.0, -42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(1.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(42.0, -(1<<30), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(42.0, -42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(42.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(1e10, -(1<<30), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(1e10, -42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andsignedintArg_of_(1e10, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testinvokefloatAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(0.128, -(1<<30), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(0.128, -42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(0.128, 1 << 30, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(1.0, -(1<<30), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(1.0, -42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(1.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(42.0, -(1<<30), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(42.0, -42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(42.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(1e10, -(1<<30), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(1e10, -42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedintArg_of_(1e10, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testcallfloatAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(0.128, -(1<<30), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(0.128, -42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(0.128, 1 << 30, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(1.0, -(1<<30), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(1.0, -42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(1.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(42.0, -(1<<30), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(42.0, -42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(42.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(1e10, -(1<<30), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(1e10, -42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andsignedlongArg_of_(1e10, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testinvokefloatAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(0.128, -(1<<30), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(0.128, -42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(0.128, 1 << 30, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(1.0, -(1<<30), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(1.0, -42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(1.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(42.0, -(1<<30), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(42.0, -42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(42.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(1e10, -(1<<30), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(1e10, -42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlongArg_of_(1e10, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testcallfloatAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(0.128, -(1 << 60), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(0.128, -42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(0.128, 1 << 60, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(1.0, -(1 << 60), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(1.0, -42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(1.0, 1 << 60, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(42.0, -(1 << 60), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(42.0, -42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(42.0, 1 << 60, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(1e10, -(1 << 60), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(1e10, -42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andsignedlonglongArg_of_(1e10, 1 << 60, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 60)


    def testinvokefloatAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(0.128, -(1 << 60), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(0.128, -42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(0.128, 1 << 60, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(1.0, -(1 << 60), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(1.0, -42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(1.0, 1 << 60, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(42.0, -(1 << 60), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(42.0, -42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(42.0, 1 << 60, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(1e10, -(1 << 60), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(1e10, -42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andsignedlonglongArg_of_(1e10, 1 << 60, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 60)


    def testcallfloatAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andunsignedcharArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedcharArg_of_(0.128, 128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callfloatArg_andunsignedcharArg_of_(0.128, 255, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callfloatArg_andunsignedcharArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedcharArg_of_(1.0, 128, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callfloatArg_andunsignedcharArg_of_(1.0, 255, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callfloatArg_andunsignedcharArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedcharArg_of_(42.0, 128, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callfloatArg_andunsignedcharArg_of_(42.0, 255, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callfloatArg_andunsignedcharArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedcharArg_of_(1e10, 128, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callfloatArg_andunsignedcharArg_of_(1e10, 255, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 255)


    def testinvokefloatAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedcharArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedcharArg_of_(0.128, 128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedcharArg_of_(0.128, 255, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedcharArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedcharArg_of_(1.0, 128, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedcharArg_of_(1.0, 255, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedcharArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedcharArg_of_(42.0, 128, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedcharArg_of_(42.0, 255, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedcharArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedcharArg_of_(1e10, 128, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedcharArg_of_(1e10, 255, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 255)


    def testcallfloatAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andunsignedshortArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedshortArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andunsignedshortArg_of_(0.128, 1<<14, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callfloatArg_andunsignedshortArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedshortArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andunsignedshortArg_of_(1.0, 1<<14, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callfloatArg_andunsignedshortArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedshortArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andunsignedshortArg_of_(42.0, 1<<14, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callfloatArg_andunsignedshortArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedshortArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andunsignedshortArg_of_(1e10, 1<<14, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1<<14)


    def testinvokefloatAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedshortArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedshortArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedshortArg_of_(0.128, 1<<14, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedshortArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedshortArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedshortArg_of_(1.0, 1<<14, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedshortArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedshortArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedshortArg_of_(42.0, 1<<14, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedshortArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedshortArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedshortArg_of_(1e10, 1<<14, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1<<14)


    def testcallfloatAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andunsignedintArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedintArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andunsignedintArg_of_(0.128, 1 << 30, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callfloatArg_andunsignedintArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedintArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andunsignedintArg_of_(1.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callfloatArg_andunsignedintArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedintArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andunsignedintArg_of_(42.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callfloatArg_andunsignedintArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedintArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andunsignedintArg_of_(1e10, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testinvokefloatAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedintArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedintArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedintArg_of_(0.128, 1 << 30, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedintArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedintArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedintArg_of_(1.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedintArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedintArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedintArg_of_(42.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedintArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedintArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedintArg_of_(1e10, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testcallfloatAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlongArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlongArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlongArg_of_(0.128, 1 << 30, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlongArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlongArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlongArg_of_(1.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlongArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlongArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlongArg_of_(42.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlongArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlongArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlongArg_of_(1e10, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testinvokefloatAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlongArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlongArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlongArg_of_(0.128, 1 << 30, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlongArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlongArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlongArg_of_(1.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlongArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlongArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlongArg_of_(42.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlongArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlongArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlongArg_of_(1e10, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testcallfloatAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlonglongArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlonglongArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlonglongArg_of_(0.128, 1 << 62, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlonglongArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlonglongArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlonglongArg_of_(1.0, 1 << 62, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlonglongArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlonglongArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlonglongArg_of_(42.0, 1 << 62, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlonglongArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlonglongArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callfloatArg_andunsignedlonglongArg_of_(1e10, 1 << 62, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 62)


    def testinvokefloatAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlonglongArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlonglongArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlonglongArg_of_(0.128, 1 << 62, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlonglongArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlonglongArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlonglongArg_of_(1.0, 1 << 62, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlonglongArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlonglongArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlonglongArg_of_(42.0, 1 << 62, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlonglongArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlonglongArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokefloatArg_andunsignedlonglongArg_of_(1e10, 1 << 62, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 62)


    def testcallfloatAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andfloatArg_of_(0.128, 0.128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callfloatArg_andfloatArg_of_(0.128, 1.0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callfloatArg_andfloatArg_of_(0.128, 42.0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callfloatArg_andfloatArg_of_(0.128, 1e10, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callfloatArg_andfloatArg_of_(1.0, 0.128, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callfloatArg_andfloatArg_of_(1.0, 1.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callfloatArg_andfloatArg_of_(1.0, 42.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callfloatArg_andfloatArg_of_(1.0, 1e10, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callfloatArg_andfloatArg_of_(42.0, 0.128, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callfloatArg_andfloatArg_of_(42.0, 1.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callfloatArg_andfloatArg_of_(42.0, 42.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callfloatArg_andfloatArg_of_(42.0, 1e10, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callfloatArg_andfloatArg_of_(1e10, 0.128, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callfloatArg_andfloatArg_of_(1e10, 1.0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callfloatArg_andfloatArg_of_(1e10, 42.0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callfloatArg_andfloatArg_of_(1e10, 1e10, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokefloatAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andfloatArg_of_(0.128, 0.128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokefloatArg_andfloatArg_of_(0.128, 1.0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokefloatArg_andfloatArg_of_(0.128, 42.0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokefloatArg_andfloatArg_of_(0.128, 1e10, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokefloatArg_andfloatArg_of_(1.0, 0.128, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokefloatArg_andfloatArg_of_(1.0, 1.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokefloatArg_andfloatArg_of_(1.0, 42.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokefloatArg_andfloatArg_of_(1.0, 1e10, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokefloatArg_andfloatArg_of_(42.0, 0.128, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokefloatArg_andfloatArg_of_(42.0, 1.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokefloatArg_andfloatArg_of_(42.0, 42.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokefloatArg_andfloatArg_of_(42.0, 1e10, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokefloatArg_andfloatArg_of_(1e10, 0.128, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokefloatArg_andfloatArg_of_(1e10, 1.0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokefloatArg_andfloatArg_of_(1e10, 42.0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokefloatArg_andfloatArg_of_(1e10, 1e10, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallfloatAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_anddoubleArg_of_(0.128, 0.128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callfloatArg_anddoubleArg_of_(0.128, 1.0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callfloatArg_anddoubleArg_of_(0.128, 42.0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callfloatArg_anddoubleArg_of_(0.128, 1e10, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callfloatArg_anddoubleArg_of_(1.0, 0.128, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callfloatArg_anddoubleArg_of_(1.0, 1.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callfloatArg_anddoubleArg_of_(1.0, 42.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callfloatArg_anddoubleArg_of_(1.0, 1e10, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callfloatArg_anddoubleArg_of_(42.0, 0.128, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callfloatArg_anddoubleArg_of_(42.0, 1.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callfloatArg_anddoubleArg_of_(42.0, 42.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callfloatArg_anddoubleArg_of_(42.0, 1e10, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callfloatArg_anddoubleArg_of_(1e10, 0.128, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callfloatArg_anddoubleArg_of_(1e10, 1.0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callfloatArg_anddoubleArg_of_(1e10, 42.0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callfloatArg_anddoubleArg_of_(1e10, 1e10, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokefloatAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_anddoubleArg_of_(0.128, 0.128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokefloatArg_anddoubleArg_of_(0.128, 1.0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokefloatArg_anddoubleArg_of_(0.128, 42.0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokefloatArg_anddoubleArg_of_(0.128, 1e10, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokefloatArg_anddoubleArg_of_(1.0, 0.128, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokefloatArg_anddoubleArg_of_(1.0, 1.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokefloatArg_anddoubleArg_of_(1.0, 42.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokefloatArg_anddoubleArg_of_(1.0, 1e10, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokefloatArg_anddoubleArg_of_(42.0, 0.128, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokefloatArg_anddoubleArg_of_(42.0, 1.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokefloatArg_anddoubleArg_of_(42.0, 42.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokefloatArg_anddoubleArg_of_(42.0, 1e10, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokefloatArg_anddoubleArg_of_(1e10, 0.128, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokefloatArg_anddoubleArg_of_(1e10, 1.0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokefloatArg_anddoubleArg_of_(1e10, 42.0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokefloatArg_anddoubleArg_of_(1e10, 1e10, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallfloatAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andidArg_of_(0.128, NSPriorDayDesignations, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callfloatArg_andidArg_of_(1.0, NSPriorDayDesignations, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callfloatArg_andidArg_of_(42.0, NSPriorDayDesignations, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callfloatArg_andidArg_of_(1e10, NSPriorDayDesignations, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokefloatAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andidArg_of_(0.128, NSPriorDayDesignations, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokefloatArg_andidArg_of_(1.0, NSPriorDayDesignations, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokefloatArg_andidArg_of_(42.0, NSPriorDayDesignations, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokefloatArg_andidArg_of_(1e10, NSPriorDayDesignations, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallfloatAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andcharPtrArg_of_(0.128, b"hello", o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callfloatArg_andcharPtrArg_of_(0.128, b"world", o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callfloatArg_andcharPtrArg_of_(0.128, b"foobar", o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callfloatArg_andcharPtrArg_of_(1.0, b"hello", o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callfloatArg_andcharPtrArg_of_(1.0, b"world", o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callfloatArg_andcharPtrArg_of_(1.0, b"foobar", o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callfloatArg_andcharPtrArg_of_(42.0, b"hello", o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callfloatArg_andcharPtrArg_of_(42.0, b"world", o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callfloatArg_andcharPtrArg_of_(42.0, b"foobar", o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callfloatArg_andcharPtrArg_of_(1e10, b"hello", o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callfloatArg_andcharPtrArg_of_(1e10, b"world", o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callfloatArg_andcharPtrArg_of_(1e10, b"foobar", o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokefloatAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andcharPtrArg_of_(0.128, b"hello", o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokefloatArg_andcharPtrArg_of_(0.128, b"world", o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokefloatArg_andcharPtrArg_of_(0.128, b"foobar", o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokefloatArg_andcharPtrArg_of_(1.0, b"hello", o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokefloatArg_andcharPtrArg_of_(1.0, b"world", o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokefloatArg_andcharPtrArg_of_(1.0, b"foobar", o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokefloatArg_andcharPtrArg_of_(42.0, b"hello", o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokefloatArg_andcharPtrArg_of_(42.0, b"world", o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokefloatArg_andcharPtrArg_of_(42.0, b"foobar", o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokefloatArg_andcharPtrArg_of_(1e10, b"hello", o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokefloatArg_andcharPtrArg_of_(1e10, b"world", o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokefloatArg_andcharPtrArg_of_(1e10, b"foobar", o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallfloatAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andNSPointArg_of_(0.128, (1, 2), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callfloatArg_andNSPointArg_of_(0.128, (3, 4), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callfloatArg_andNSPointArg_of_(1.0, (1, 2), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callfloatArg_andNSPointArg_of_(1.0, (3, 4), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callfloatArg_andNSPointArg_of_(42.0, (1, 2), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callfloatArg_andNSPointArg_of_(42.0, (3, 4), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callfloatArg_andNSPointArg_of_(1e10, (1, 2), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callfloatArg_andNSPointArg_of_(1e10, (3, 4), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (3, 4))


    def testinvokefloatAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andNSPointArg_of_(0.128, (1, 2), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokefloatArg_andNSPointArg_of_(0.128, (3, 4), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokefloatArg_andNSPointArg_of_(1.0, (1, 2), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokefloatArg_andNSPointArg_of_(1.0, (3, 4), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokefloatArg_andNSPointArg_of_(42.0, (1, 2), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokefloatArg_andNSPointArg_of_(42.0, (3, 4), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokefloatArg_andNSPointArg_of_(1e10, (1, 2), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokefloatArg_andNSPointArg_of_(1e10, (3, 4), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (3, 4))


    def testcallfloatAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andNSRectArg_of_(0.128, ((1, 2), (3, 4)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callfloatArg_andNSRectArg_of_(0.128, ((7, 8), (9, 10)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callfloatArg_andNSRectArg_of_(1.0, ((1, 2), (3, 4)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callfloatArg_andNSRectArg_of_(1.0, ((7, 8), (9, 10)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callfloatArg_andNSRectArg_of_(42.0, ((1, 2), (3, 4)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callfloatArg_andNSRectArg_of_(42.0, ((7, 8), (9, 10)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callfloatArg_andNSRectArg_of_(1e10, ((1, 2), (3, 4)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callfloatArg_andNSRectArg_of_(1e10, ((7, 8), (9, 10)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokefloatAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andNSRectArg_of_(0.128, ((1, 2), (3, 4)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokefloatArg_andNSRectArg_of_(0.128, ((7, 8), (9, 10)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokefloatArg_andNSRectArg_of_(1.0, ((1, 2), (3, 4)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokefloatArg_andNSRectArg_of_(1.0, ((7, 8), (9, 10)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokefloatArg_andNSRectArg_of_(42.0, ((1, 2), (3, 4)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokefloatArg_andNSRectArg_of_(42.0, ((7, 8), (9, 10)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokefloatArg_andNSRectArg_of_(1e10, ((1, 2), (3, 4)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokefloatArg_andNSRectArg_of_(1e10, ((7, 8), (9, 10)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallfloatAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct1Arg_of_(0.128, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct1Arg_of_(0.128, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct1Arg_of_(1.0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct1Arg_of_(1.0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct1Arg_of_(42.0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct1Arg_of_(42.0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct1Arg_of_(1e10, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct1Arg_of_(1e10, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokefloatAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct1Arg_of_(0.128, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct1Arg_of_(0.128, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct1Arg_of_(1.0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct1Arg_of_(1.0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct1Arg_of_(42.0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct1Arg_of_(42.0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct1Arg_of_(1e10, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct1Arg_of_(1e10, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallfloatAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct2Arg_of_(0.128, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct2Arg_of_(0.128, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct2Arg_of_(1.0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct2Arg_of_(1.0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct2Arg_of_(42.0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct2Arg_of_(42.0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct2Arg_of_(1e10, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct2Arg_of_(1e10, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokefloatAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct2Arg_of_(0.128, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct2Arg_of_(0.128, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct2Arg_of_(1.0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct2Arg_of_(1.0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct2Arg_of_(42.0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct2Arg_of_(42.0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct2Arg_of_(1e10, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct2Arg_of_(1e10, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallfloatAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct3Arg_of_(0.128, (1, 2), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct3Arg_of_(0.128, (2, 4), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct3Arg_of_(1.0, (1, 2), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct3Arg_of_(1.0, (2, 4), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct3Arg_of_(42.0, (1, 2), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct3Arg_of_(42.0, (2, 4), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct3Arg_of_(1e10, (1, 2), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct3Arg_of_(1e10, (2, 4), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4))


    def testinvokefloatAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct3Arg_of_(0.128, (1, 2), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct3Arg_of_(0.128, (2, 4), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct3Arg_of_(1.0, (1, 2), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct3Arg_of_(1.0, (2, 4), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct3Arg_of_(42.0, (1, 2), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct3Arg_of_(42.0, (2, 4), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct3Arg_of_(1e10, (1, 2), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct3Arg_of_(1e10, (2, 4), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4))


    def testcallfloatAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct4Arg_of_(0.128, (1, 1<<60), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct4Arg_of_(0.128, (2, 4), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct4Arg_of_(1.0, (1, 1<<60), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct4Arg_of_(1.0, (2, 4), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct4Arg_of_(42.0, (1, 1<<60), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct4Arg_of_(42.0, (2, 4), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct4Arg_of_(1e10, (1, 1<<60), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct4Arg_of_(1e10, (2, 4), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4))


    def testinvokefloatAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct4Arg_of_(0.128, (1, 1<<60), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct4Arg_of_(0.128, (2, 4), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct4Arg_of_(1.0, (1, 1<<60), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct4Arg_of_(1.0, (2, 4), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct4Arg_of_(42.0, (1, 1<<60), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct4Arg_of_(42.0, (2, 4), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct4Arg_of_(1e10, (1, 1<<60), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct4Arg_of_(1e10, (2, 4), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4))


    def testcallfloatAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct5Arg_of_(0.128, (1, 2.5), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct5Arg_of_(0.128, (2, 4.5), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct5Arg_of_(1.0, (1, 2.5), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct5Arg_of_(1.0, (2, 4.5), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct5Arg_of_(42.0, (1, 2.5), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct5Arg_of_(42.0, (2, 4.5), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct5Arg_of_(1e10, (1, 2.5), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callfloatArg_andstructTestStruct5Arg_of_(1e10, (2, 4.5), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4.5))


    def testinvokefloatAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct5Arg_of_(0.128, (1, 2.5), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct5Arg_of_(0.128, (2, 4.5), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct5Arg_of_(1.0, (1, 2.5), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct5Arg_of_(1.0, (2, 4.5), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct5Arg_of_(42.0, (1, 2.5), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct5Arg_of_(42.0, (2, 4.5), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct5Arg_of_(1e10, (1, 2.5), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokefloatArg_andstructTestStruct5Arg_of_(1e10, (2, 4.5), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4.5))


    def testcalldoubleAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andboolArg_of_(0.128, YES, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.calldoubleArg_andboolArg_of_(0.128, NO, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.calldoubleArg_andboolArg_of_(1.0, YES, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.calldoubleArg_andboolArg_of_(1.0, NO, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.calldoubleArg_andboolArg_of_(42.0, YES, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.calldoubleArg_andboolArg_of_(42.0, NO, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.calldoubleArg_andboolArg_of_(1e10, YES, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.calldoubleArg_andboolArg_of_(1e10, NO, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NO)


    def testinvokedoubleAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andboolArg_of_(0.128, YES, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokedoubleArg_andboolArg_of_(0.128, NO, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokedoubleArg_andboolArg_of_(1.0, YES, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokedoubleArg_andboolArg_of_(1.0, NO, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokedoubleArg_andboolArg_of_(42.0, YES, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokedoubleArg_andboolArg_of_(42.0, NO, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokedoubleArg_andboolArg_of_(1e10, YES, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokedoubleArg_andboolArg_of_(1e10, NO, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NO)


    def testcalldoubleAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andBOOLArg_of_(0.128, YES, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.calldoubleArg_andBOOLArg_of_(0.128, NO, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.calldoubleArg_andBOOLArg_of_(1.0, YES, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.calldoubleArg_andBOOLArg_of_(1.0, NO, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.calldoubleArg_andBOOLArg_of_(42.0, YES, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.calldoubleArg_andBOOLArg_of_(42.0, NO, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.calldoubleArg_andBOOLArg_of_(1e10, YES, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.calldoubleArg_andBOOLArg_of_(1e10, NO, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NO)


    def testinvokedoubleAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andBOOLArg_of_(0.128, YES, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokedoubleArg_andBOOLArg_of_(0.128, NO, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokedoubleArg_andBOOLArg_of_(1.0, YES, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokedoubleArg_andBOOLArg_of_(1.0, NO, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokedoubleArg_andBOOLArg_of_(42.0, YES, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokedoubleArg_andBOOLArg_of_(42.0, NO, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokedoubleArg_andBOOLArg_of_(1e10, YES, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokedoubleArg_andBOOLArg_of_(1e10, NO, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NO)


    def testcalldoubleAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andcharArg_of_(0.128, -128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.calldoubleArg_andcharArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andcharArg_of_(0.128, 127, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.calldoubleArg_andcharArg_of_(1.0, -128, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.calldoubleArg_andcharArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andcharArg_of_(1.0, 127, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.calldoubleArg_andcharArg_of_(42.0, -128, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.calldoubleArg_andcharArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andcharArg_of_(42.0, 127, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.calldoubleArg_andcharArg_of_(1e10, -128, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.calldoubleArg_andcharArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andcharArg_of_(1e10, 127, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 127)


    def testinvokedoubleAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andcharArg_of_(0.128, -128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokedoubleArg_andcharArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andcharArg_of_(0.128, 127, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokedoubleArg_andcharArg_of_(1.0, -128, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokedoubleArg_andcharArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andcharArg_of_(1.0, 127, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokedoubleArg_andcharArg_of_(42.0, -128, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokedoubleArg_andcharArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andcharArg_of_(42.0, 127, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokedoubleArg_andcharArg_of_(1e10, -128, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokedoubleArg_andcharArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andcharArg_of_(1e10, 127, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 127)


    def testcalldoubleAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(0.128, -(1<<14), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(0.128, -42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(0.128, 1 << 14, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(1.0, -(1<<14), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(1.0, -42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(1.0, 1 << 14, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(42.0, -(1<<14), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(42.0, -42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(42.0, 1 << 14, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(1e10, -(1<<14), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(1e10, -42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedshortArg_of_(1e10, 1 << 14, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 14)


    def testinvokedoubleAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(0.128, -(1<<14), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(0.128, -42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(0.128, 1 << 14, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(1.0, -(1<<14), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(1.0, -42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(1.0, 1 << 14, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(42.0, -(1<<14), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(42.0, -42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(42.0, 1 << 14, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(1e10, -(1<<14), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(1e10, -42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedshortArg_of_(1e10, 1 << 14, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 14)


    def testcalldoubleAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(0.128, -(1<<30), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(0.128, -42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(0.128, 1 << 30, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(1.0, -(1<<30), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(1.0, -42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(1.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(42.0, -(1<<30), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(42.0, -42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(42.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(1e10, -(1<<30), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(1e10, -42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedintArg_of_(1e10, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testinvokedoubleAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(0.128, -(1<<30), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(0.128, -42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(0.128, 1 << 30, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(1.0, -(1<<30), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(1.0, -42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(1.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(42.0, -(1<<30), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(42.0, -42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(42.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(1e10, -(1<<30), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(1e10, -42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedintArg_of_(1e10, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testcalldoubleAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(0.128, -(1<<30), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(0.128, -42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(0.128, 1 << 30, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(1.0, -(1<<30), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(1.0, -42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(1.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(42.0, -(1<<30), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(42.0, -42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(42.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(1e10, -(1<<30), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(1e10, -42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlongArg_of_(1e10, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testinvokedoubleAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(0.128, -(1<<30), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(0.128, -42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(0.128, 1 << 30, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(1.0, -(1<<30), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(1.0, -42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(1.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(42.0, -(1<<30), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(42.0, -42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(42.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(1e10, -(1<<30), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(1e10, -42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlongArg_of_(1e10, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testcalldoubleAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(0.128, -(1 << 60), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(0.128, -42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(0.128, 1 << 60, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(1.0, -(1 << 60), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(1.0, -42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(1.0, 1 << 60, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(42.0, -(1 << 60), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(42.0, -42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(42.0, 1 << 60, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(1e10, -(1 << 60), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(1e10, -42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andsignedlonglongArg_of_(1e10, 1 << 60, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 60)


    def testinvokedoubleAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(0.128, -(1 << 60), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(0.128, -42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(0.128, 1 << 60, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(1.0, -(1 << 60), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(1.0, -42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(1.0, 1 << 60, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(42.0, -(1 << 60), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(42.0, -42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(42.0, 1 << 60, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(1e10, -(1 << 60), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(1e10, -42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andsignedlonglongArg_of_(1e10, 1 << 60, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 60)


    def testcalldoubleAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedcharArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedcharArg_of_(0.128, 128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedcharArg_of_(0.128, 255, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedcharArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedcharArg_of_(1.0, 128, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedcharArg_of_(1.0, 255, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedcharArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedcharArg_of_(42.0, 128, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedcharArg_of_(42.0, 255, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedcharArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedcharArg_of_(1e10, 128, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedcharArg_of_(1e10, 255, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 255)


    def testinvokedoubleAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedcharArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedcharArg_of_(0.128, 128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedcharArg_of_(0.128, 255, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedcharArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedcharArg_of_(1.0, 128, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedcharArg_of_(1.0, 255, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedcharArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedcharArg_of_(42.0, 128, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedcharArg_of_(42.0, 255, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedcharArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedcharArg_of_(1e10, 128, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedcharArg_of_(1e10, 255, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 255)


    def testcalldoubleAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedshortArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedshortArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedshortArg_of_(0.128, 1<<14, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedshortArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedshortArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedshortArg_of_(1.0, 1<<14, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedshortArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedshortArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedshortArg_of_(42.0, 1<<14, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedshortArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedshortArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedshortArg_of_(1e10, 1<<14, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1<<14)


    def testinvokedoubleAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedshortArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedshortArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedshortArg_of_(0.128, 1<<14, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedshortArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedshortArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedshortArg_of_(1.0, 1<<14, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedshortArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedshortArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedshortArg_of_(42.0, 1<<14, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedshortArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedshortArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedshortArg_of_(1e10, 1<<14, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1<<14)


    def testcalldoubleAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedintArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedintArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedintArg_of_(0.128, 1 << 30, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedintArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedintArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedintArg_of_(1.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedintArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedintArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedintArg_of_(42.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedintArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedintArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedintArg_of_(1e10, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testinvokedoubleAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedintArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedintArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedintArg_of_(0.128, 1 << 30, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedintArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedintArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedintArg_of_(1.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedintArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedintArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedintArg_of_(42.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedintArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedintArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedintArg_of_(1e10, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testcalldoubleAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlongArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlongArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlongArg_of_(0.128, 1 << 30, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlongArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlongArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlongArg_of_(1.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlongArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlongArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlongArg_of_(42.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlongArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlongArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlongArg_of_(1e10, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testinvokedoubleAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlongArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlongArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlongArg_of_(0.128, 1 << 30, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlongArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlongArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlongArg_of_(1.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlongArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlongArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlongArg_of_(42.0, 1 << 30, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlongArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlongArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlongArg_of_(1e10, 1 << 30, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 30)


    def testcalldoubleAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlonglongArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlonglongArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlonglongArg_of_(0.128, 1 << 62, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlonglongArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlonglongArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlonglongArg_of_(1.0, 1 << 62, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlonglongArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlonglongArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlonglongArg_of_(42.0, 1 << 62, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlonglongArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlonglongArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.calldoubleArg_andunsignedlonglongArg_of_(1e10, 1 << 62, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 62)


    def testinvokedoubleAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlonglongArg_of_(0.128, 0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlonglongArg_of_(0.128, 42, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlonglongArg_of_(0.128, 1 << 62, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlonglongArg_of_(1.0, 0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlonglongArg_of_(1.0, 42, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlonglongArg_of_(1.0, 1 << 62, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlonglongArg_of_(42.0, 0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlonglongArg_of_(42.0, 42, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlonglongArg_of_(42.0, 1 << 62, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlonglongArg_of_(1e10, 0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlonglongArg_of_(1e10, 42, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokedoubleArg_andunsignedlonglongArg_of_(1e10, 1 << 62, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], 1 << 62)


    def testcalldoubleAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andfloatArg_of_(0.128, 0.128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.calldoubleArg_andfloatArg_of_(0.128, 1.0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.calldoubleArg_andfloatArg_of_(0.128, 42.0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.calldoubleArg_andfloatArg_of_(0.128, 1e10, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.calldoubleArg_andfloatArg_of_(1.0, 0.128, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.calldoubleArg_andfloatArg_of_(1.0, 1.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.calldoubleArg_andfloatArg_of_(1.0, 42.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.calldoubleArg_andfloatArg_of_(1.0, 1e10, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.calldoubleArg_andfloatArg_of_(42.0, 0.128, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.calldoubleArg_andfloatArg_of_(42.0, 1.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.calldoubleArg_andfloatArg_of_(42.0, 42.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.calldoubleArg_andfloatArg_of_(42.0, 1e10, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.calldoubleArg_andfloatArg_of_(1e10, 0.128, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.calldoubleArg_andfloatArg_of_(1e10, 1.0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.calldoubleArg_andfloatArg_of_(1e10, 42.0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.calldoubleArg_andfloatArg_of_(1e10, 1e10, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokedoubleAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andfloatArg_of_(0.128, 0.128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokedoubleArg_andfloatArg_of_(0.128, 1.0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokedoubleArg_andfloatArg_of_(0.128, 42.0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokedoubleArg_andfloatArg_of_(0.128, 1e10, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokedoubleArg_andfloatArg_of_(1.0, 0.128, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokedoubleArg_andfloatArg_of_(1.0, 1.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokedoubleArg_andfloatArg_of_(1.0, 42.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokedoubleArg_andfloatArg_of_(1.0, 1e10, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokedoubleArg_andfloatArg_of_(42.0, 0.128, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokedoubleArg_andfloatArg_of_(42.0, 1.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokedoubleArg_andfloatArg_of_(42.0, 42.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokedoubleArg_andfloatArg_of_(42.0, 1e10, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokedoubleArg_andfloatArg_of_(1e10, 0.128, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokedoubleArg_andfloatArg_of_(1e10, 1.0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokedoubleArg_andfloatArg_of_(1e10, 42.0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokedoubleArg_andfloatArg_of_(1e10, 1e10, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1e10)


    def testcalldoubleAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_anddoubleArg_of_(0.128, 0.128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.calldoubleArg_anddoubleArg_of_(0.128, 1.0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.calldoubleArg_anddoubleArg_of_(0.128, 42.0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.calldoubleArg_anddoubleArg_of_(0.128, 1e10, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.calldoubleArg_anddoubleArg_of_(1.0, 0.128, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.calldoubleArg_anddoubleArg_of_(1.0, 1.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.calldoubleArg_anddoubleArg_of_(1.0, 42.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.calldoubleArg_anddoubleArg_of_(1.0, 1e10, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.calldoubleArg_anddoubleArg_of_(42.0, 0.128, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.calldoubleArg_anddoubleArg_of_(42.0, 1.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.calldoubleArg_anddoubleArg_of_(42.0, 42.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.calldoubleArg_anddoubleArg_of_(42.0, 1e10, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.calldoubleArg_anddoubleArg_of_(1e10, 0.128, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.calldoubleArg_anddoubleArg_of_(1e10, 1.0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.calldoubleArg_anddoubleArg_of_(1e10, 42.0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.calldoubleArg_anddoubleArg_of_(1e10, 1e10, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokedoubleAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_anddoubleArg_of_(0.128, 0.128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokedoubleArg_anddoubleArg_of_(0.128, 1.0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokedoubleArg_anddoubleArg_of_(0.128, 42.0, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokedoubleArg_anddoubleArg_of_(0.128, 1e10, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokedoubleArg_anddoubleArg_of_(1.0, 0.128, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokedoubleArg_anddoubleArg_of_(1.0, 1.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokedoubleArg_anddoubleArg_of_(1.0, 42.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokedoubleArg_anddoubleArg_of_(1.0, 1e10, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokedoubleArg_anddoubleArg_of_(42.0, 0.128, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokedoubleArg_anddoubleArg_of_(42.0, 1.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokedoubleArg_anddoubleArg_of_(42.0, 42.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokedoubleArg_anddoubleArg_of_(42.0, 1e10, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokedoubleArg_anddoubleArg_of_(1e10, 0.128, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokedoubleArg_anddoubleArg_of_(1e10, 1.0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokedoubleArg_anddoubleArg_of_(1e10, 42.0, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokedoubleArg_anddoubleArg_of_(1e10, 1e10, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 1e10)


    def testcalldoubleAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andidArg_of_(0.128, NSPriorDayDesignations, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.calldoubleArg_andidArg_of_(1.0, NSPriorDayDesignations, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.calldoubleArg_andidArg_of_(42.0, NSPriorDayDesignations, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.calldoubleArg_andidArg_of_(1e10, NSPriorDayDesignations, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokedoubleAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andidArg_of_(0.128, NSPriorDayDesignations, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokedoubleArg_andidArg_of_(1.0, NSPriorDayDesignations, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokedoubleArg_andidArg_of_(42.0, NSPriorDayDesignations, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokedoubleArg_andidArg_of_(1e10, NSPriorDayDesignations, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcalldoubleAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andcharPtrArg_of_(0.128, b"hello", o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.calldoubleArg_andcharPtrArg_of_(0.128, b"world", o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.calldoubleArg_andcharPtrArg_of_(0.128, b"foobar", o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.calldoubleArg_andcharPtrArg_of_(1.0, b"hello", o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.calldoubleArg_andcharPtrArg_of_(1.0, b"world", o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.calldoubleArg_andcharPtrArg_of_(1.0, b"foobar", o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.calldoubleArg_andcharPtrArg_of_(42.0, b"hello", o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.calldoubleArg_andcharPtrArg_of_(42.0, b"world", o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.calldoubleArg_andcharPtrArg_of_(42.0, b"foobar", o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.calldoubleArg_andcharPtrArg_of_(1e10, b"hello", o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.calldoubleArg_andcharPtrArg_of_(1e10, b"world", o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.calldoubleArg_andcharPtrArg_of_(1e10, b"foobar", o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokedoubleAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andcharPtrArg_of_(0.128, b"hello", o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokedoubleArg_andcharPtrArg_of_(0.128, b"world", o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokedoubleArg_andcharPtrArg_of_(0.128, b"foobar", o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokedoubleArg_andcharPtrArg_of_(1.0, b"hello", o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokedoubleArg_andcharPtrArg_of_(1.0, b"world", o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokedoubleArg_andcharPtrArg_of_(1.0, b"foobar", o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokedoubleArg_andcharPtrArg_of_(42.0, b"hello", o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokedoubleArg_andcharPtrArg_of_(42.0, b"world", o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokedoubleArg_andcharPtrArg_of_(42.0, b"foobar", o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokedoubleArg_andcharPtrArg_of_(1e10, b"hello", o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokedoubleArg_andcharPtrArg_of_(1e10, b"world", o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokedoubleArg_andcharPtrArg_of_(1e10, b"foobar", o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcalldoubleAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andNSPointArg_of_(0.128, (1, 2), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.calldoubleArg_andNSPointArg_of_(0.128, (3, 4), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.calldoubleArg_andNSPointArg_of_(1.0, (1, 2), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.calldoubleArg_andNSPointArg_of_(1.0, (3, 4), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.calldoubleArg_andNSPointArg_of_(42.0, (1, 2), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.calldoubleArg_andNSPointArg_of_(42.0, (3, 4), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.calldoubleArg_andNSPointArg_of_(1e10, (1, 2), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.calldoubleArg_andNSPointArg_of_(1e10, (3, 4), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (3, 4))


    def testinvokedoubleAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andNSPointArg_of_(0.128, (1, 2), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokedoubleArg_andNSPointArg_of_(0.128, (3, 4), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokedoubleArg_andNSPointArg_of_(1.0, (1, 2), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokedoubleArg_andNSPointArg_of_(1.0, (3, 4), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokedoubleArg_andNSPointArg_of_(42.0, (1, 2), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokedoubleArg_andNSPointArg_of_(42.0, (3, 4), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokedoubleArg_andNSPointArg_of_(1e10, (1, 2), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokedoubleArg_andNSPointArg_of_(1e10, (3, 4), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (3, 4))


    def testcalldoubleAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andNSRectArg_of_(0.128, ((1, 2), (3, 4)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.calldoubleArg_andNSRectArg_of_(0.128, ((7, 8), (9, 10)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.calldoubleArg_andNSRectArg_of_(1.0, ((1, 2), (3, 4)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.calldoubleArg_andNSRectArg_of_(1.0, ((7, 8), (9, 10)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.calldoubleArg_andNSRectArg_of_(42.0, ((1, 2), (3, 4)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.calldoubleArg_andNSRectArg_of_(42.0, ((7, 8), (9, 10)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.calldoubleArg_andNSRectArg_of_(1e10, ((1, 2), (3, 4)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.calldoubleArg_andNSRectArg_of_(1e10, ((7, 8), (9, 10)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokedoubleAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andNSRectArg_of_(0.128, ((1, 2), (3, 4)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokedoubleArg_andNSRectArg_of_(0.128, ((7, 8), (9, 10)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokedoubleArg_andNSRectArg_of_(1.0, ((1, 2), (3, 4)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokedoubleArg_andNSRectArg_of_(1.0, ((7, 8), (9, 10)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokedoubleArg_andNSRectArg_of_(42.0, ((1, 2), (3, 4)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokedoubleArg_andNSRectArg_of_(42.0, ((7, 8), (9, 10)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokedoubleArg_andNSRectArg_of_(1e10, ((1, 2), (3, 4)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokedoubleArg_andNSRectArg_of_(1e10, ((7, 8), (9, 10)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcalldoubleAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct1Arg_of_(0.128, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct1Arg_of_(0.128, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct1Arg_of_(1.0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct1Arg_of_(1.0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct1Arg_of_(42.0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct1Arg_of_(42.0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct1Arg_of_(1e10, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct1Arg_of_(1e10, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokedoubleAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct1Arg_of_(0.128, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct1Arg_of_(0.128, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct1Arg_of_(1.0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct1Arg_of_(1.0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct1Arg_of_(42.0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct1Arg_of_(42.0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct1Arg_of_(1e10, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct1Arg_of_(1e10, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcalldoubleAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct2Arg_of_(0.128, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct2Arg_of_(0.128, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct2Arg_of_(1.0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct2Arg_of_(1.0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct2Arg_of_(42.0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct2Arg_of_(42.0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct2Arg_of_(1e10, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct2Arg_of_(1e10, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokedoubleAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct2Arg_of_(0.128, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct2Arg_of_(0.128, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct2Arg_of_(1.0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct2Arg_of_(1.0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct2Arg_of_(42.0, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct2Arg_of_(42.0, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct2Arg_of_(1e10, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct2Arg_of_(1e10, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcalldoubleAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct3Arg_of_(0.128, (1, 2), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct3Arg_of_(0.128, (2, 4), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct3Arg_of_(1.0, (1, 2), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct3Arg_of_(1.0, (2, 4), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct3Arg_of_(42.0, (1, 2), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct3Arg_of_(42.0, (2, 4), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct3Arg_of_(1e10, (1, 2), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct3Arg_of_(1e10, (2, 4), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4))


    def testinvokedoubleAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct3Arg_of_(0.128, (1, 2), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct3Arg_of_(0.128, (2, 4), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct3Arg_of_(1.0, (1, 2), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct3Arg_of_(1.0, (2, 4), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct3Arg_of_(42.0, (1, 2), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct3Arg_of_(42.0, (2, 4), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct3Arg_of_(1e10, (1, 2), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct3Arg_of_(1e10, (2, 4), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4))


    def testcalldoubleAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct4Arg_of_(0.128, (1, 1<<60), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct4Arg_of_(0.128, (2, 4), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct4Arg_of_(1.0, (1, 1<<60), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct4Arg_of_(1.0, (2, 4), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct4Arg_of_(42.0, (1, 1<<60), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct4Arg_of_(42.0, (2, 4), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct4Arg_of_(1e10, (1, 1<<60), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct4Arg_of_(1e10, (2, 4), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4))


    def testinvokedoubleAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct4Arg_of_(0.128, (1, 1<<60), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct4Arg_of_(0.128, (2, 4), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct4Arg_of_(1.0, (1, 1<<60), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct4Arg_of_(1.0, (2, 4), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct4Arg_of_(42.0, (1, 1<<60), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct4Arg_of_(42.0, (2, 4), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct4Arg_of_(1e10, (1, 1<<60), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct4Arg_of_(1e10, (2, 4), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4))


    def testcalldoubleAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct5Arg_of_(0.128, (1, 2.5), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct5Arg_of_(0.128, (2, 4.5), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct5Arg_of_(1.0, (1, 2.5), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct5Arg_of_(1.0, (2, 4.5), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct5Arg_of_(42.0, (1, 2.5), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct5Arg_of_(42.0, (2, 4.5), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct5Arg_of_(1e10, (1, 2.5), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.calldoubleArg_andstructTestStruct5Arg_of_(1e10, (2, 4.5), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4.5))


    def testinvokedoubleAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct5Arg_of_(0.128, (1, 2.5), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct5Arg_of_(0.128, (2, 4.5), o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct5Arg_of_(1.0, (1, 2.5), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct5Arg_of_(1.0, (2, 4.5), o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct5Arg_of_(42.0, (1, 2.5), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct5Arg_of_(42.0, (2, 4.5), o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct5Arg_of_(1e10, (1, 2.5), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokedoubleArg_andstructTestStruct5Arg_of_(1e10, (2, 4.5), o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertEqual(r[1], (2, 4.5))


    def testcallidAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andboolArg_of_(NSPriorDayDesignations, YES, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callidArg_andboolArg_of_(NSPriorDayDesignations, NO, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], NO)


    def testinvokeidAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andboolArg_of_(NSPriorDayDesignations, YES, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeidArg_andboolArg_of_(NSPriorDayDesignations, NO, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], NO)


    def testcallidAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andBOOLArg_of_(NSPriorDayDesignations, YES, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callidArg_andBOOLArg_of_(NSPriorDayDesignations, NO, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], NO)


    def testinvokeidAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andBOOLArg_of_(NSPriorDayDesignations, YES, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeidArg_andBOOLArg_of_(NSPriorDayDesignations, NO, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], NO)


    def testcallidAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andcharArg_of_(NSPriorDayDesignations, -128, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callidArg_andcharArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callidArg_andcharArg_of_(NSPriorDayDesignations, 127, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 127)


    def testinvokeidAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andcharArg_of_(NSPriorDayDesignations, -128, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeidArg_andcharArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeidArg_andcharArg_of_(NSPriorDayDesignations, 127, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 127)


    def testcallidAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andsignedshortArg_of_(NSPriorDayDesignations, -(1<<14), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callidArg_andsignedshortArg_of_(NSPriorDayDesignations, -42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callidArg_andsignedshortArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callidArg_andsignedshortArg_of_(NSPriorDayDesignations, 42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callidArg_andsignedshortArg_of_(NSPriorDayDesignations, 1 << 14, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 14)


    def testinvokeidAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andsignedshortArg_of_(NSPriorDayDesignations, -(1<<14), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeidArg_andsignedshortArg_of_(NSPriorDayDesignations, -42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeidArg_andsignedshortArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeidArg_andsignedshortArg_of_(NSPriorDayDesignations, 42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeidArg_andsignedshortArg_of_(NSPriorDayDesignations, 1 << 14, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 14)


    def testcallidAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andsignedintArg_of_(NSPriorDayDesignations, -(1<<30), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callidArg_andsignedintArg_of_(NSPriorDayDesignations, -42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callidArg_andsignedintArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callidArg_andsignedintArg_of_(NSPriorDayDesignations, 42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callidArg_andsignedintArg_of_(NSPriorDayDesignations, 1 << 30, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeidAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andsignedintArg_of_(NSPriorDayDesignations, -(1<<30), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeidArg_andsignedintArg_of_(NSPriorDayDesignations, -42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeidArg_andsignedintArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeidArg_andsignedintArg_of_(NSPriorDayDesignations, 42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeidArg_andsignedintArg_of_(NSPriorDayDesignations, 1 << 30, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 30)


    def testcallidAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andsignedlongArg_of_(NSPriorDayDesignations, -(1<<30), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callidArg_andsignedlongArg_of_(NSPriorDayDesignations, -42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callidArg_andsignedlongArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callidArg_andsignedlongArg_of_(NSPriorDayDesignations, 42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callidArg_andsignedlongArg_of_(NSPriorDayDesignations, 1 << 30, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeidAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andsignedlongArg_of_(NSPriorDayDesignations, -(1<<30), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeidArg_andsignedlongArg_of_(NSPriorDayDesignations, -42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeidArg_andsignedlongArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeidArg_andsignedlongArg_of_(NSPriorDayDesignations, 42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeidArg_andsignedlongArg_of_(NSPriorDayDesignations, 1 << 30, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 30)


    def testcallidAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andsignedlonglongArg_of_(NSPriorDayDesignations, -(1 << 60), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callidArg_andsignedlonglongArg_of_(NSPriorDayDesignations, -42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callidArg_andsignedlonglongArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callidArg_andsignedlonglongArg_of_(NSPriorDayDesignations, 42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callidArg_andsignedlonglongArg_of_(NSPriorDayDesignations, 1 << 60, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 60)


    def testinvokeidAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andsignedlonglongArg_of_(NSPriorDayDesignations, -(1 << 60), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeidArg_andsignedlonglongArg_of_(NSPriorDayDesignations, -42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeidArg_andsignedlonglongArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeidArg_andsignedlonglongArg_of_(NSPriorDayDesignations, 42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeidArg_andsignedlonglongArg_of_(NSPriorDayDesignations, 1 << 60, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 60)


    def testcallidAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andunsignedcharArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callidArg_andunsignedcharArg_of_(NSPriorDayDesignations, 128, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callidArg_andunsignedcharArg_of_(NSPriorDayDesignations, 255, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 255)


    def testinvokeidAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andunsignedcharArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeidArg_andunsignedcharArg_of_(NSPriorDayDesignations, 128, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeidArg_andunsignedcharArg_of_(NSPriorDayDesignations, 255, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 255)


    def testcallidAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andunsignedshortArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callidArg_andunsignedshortArg_of_(NSPriorDayDesignations, 42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callidArg_andunsignedshortArg_of_(NSPriorDayDesignations, 1<<14, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1<<14)


    def testinvokeidAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andunsignedshortArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeidArg_andunsignedshortArg_of_(NSPriorDayDesignations, 42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeidArg_andunsignedshortArg_of_(NSPriorDayDesignations, 1<<14, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1<<14)


    def testcallidAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andunsignedintArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callidArg_andunsignedintArg_of_(NSPriorDayDesignations, 42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callidArg_andunsignedintArg_of_(NSPriorDayDesignations, 1 << 30, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeidAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andunsignedintArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeidArg_andunsignedintArg_of_(NSPriorDayDesignations, 42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeidArg_andunsignedintArg_of_(NSPriorDayDesignations, 1 << 30, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 30)


    def testcallidAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andunsignedlongArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callidArg_andunsignedlongArg_of_(NSPriorDayDesignations, 42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callidArg_andunsignedlongArg_of_(NSPriorDayDesignations, 1 << 30, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeidAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andunsignedlongArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeidArg_andunsignedlongArg_of_(NSPriorDayDesignations, 42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeidArg_andunsignedlongArg_of_(NSPriorDayDesignations, 1 << 30, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 30)


    def testcallidAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andunsignedlonglongArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callidArg_andunsignedlonglongArg_of_(NSPriorDayDesignations, 42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callidArg_andunsignedlonglongArg_of_(NSPriorDayDesignations, 1 << 62, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 62)


    def testinvokeidAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andunsignedlonglongArg_of_(NSPriorDayDesignations, 0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeidArg_andunsignedlonglongArg_of_(NSPriorDayDesignations, 42, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeidArg_andunsignedlonglongArg_of_(NSPriorDayDesignations, 1 << 62, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], 1 << 62)


    def testcallidAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andfloatArg_of_(NSPriorDayDesignations, 0.128, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callidArg_andfloatArg_of_(NSPriorDayDesignations, 1.0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callidArg_andfloatArg_of_(NSPriorDayDesignations, 42.0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callidArg_andfloatArg_of_(NSPriorDayDesignations, 1e10, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeidAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andfloatArg_of_(NSPriorDayDesignations, 0.128, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeidArg_andfloatArg_of_(NSPriorDayDesignations, 1.0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeidArg_andfloatArg_of_(NSPriorDayDesignations, 42.0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeidArg_andfloatArg_of_(NSPriorDayDesignations, 1e10, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallidAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_anddoubleArg_of_(NSPriorDayDesignations, 0.128, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callidArg_anddoubleArg_of_(NSPriorDayDesignations, 1.0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callidArg_anddoubleArg_of_(NSPriorDayDesignations, 42.0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callidArg_anddoubleArg_of_(NSPriorDayDesignations, 1e10, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeidAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_anddoubleArg_of_(NSPriorDayDesignations, 0.128, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeidArg_anddoubleArg_of_(NSPriorDayDesignations, 1.0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeidArg_anddoubleArg_of_(NSPriorDayDesignations, 42.0, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeidArg_anddoubleArg_of_(NSPriorDayDesignations, 1e10, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallidAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andidArg_of_(NSPriorDayDesignations, NSPriorDayDesignations, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokeidAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andidArg_of_(NSPriorDayDesignations, NSPriorDayDesignations, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallidAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andcharPtrArg_of_(NSPriorDayDesignations, b"hello", o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callidArg_andcharPtrArg_of_(NSPriorDayDesignations, b"world", o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callidArg_andcharPtrArg_of_(NSPriorDayDesignations, b"foobar", o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokeidAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andcharPtrArg_of_(NSPriorDayDesignations, b"hello", o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeidArg_andcharPtrArg_of_(NSPriorDayDesignations, b"world", o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeidArg_andcharPtrArg_of_(NSPriorDayDesignations, b"foobar", o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallidAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andNSPointArg_of_(NSPriorDayDesignations, (1, 2), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callidArg_andNSPointArg_of_(NSPriorDayDesignations, (3, 4), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (3, 4))


    def testinvokeidAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andNSPointArg_of_(NSPriorDayDesignations, (1, 2), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeidArg_andNSPointArg_of_(NSPriorDayDesignations, (3, 4), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (3, 4))


    def testcallidAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andNSRectArg_of_(NSPriorDayDesignations, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callidArg_andNSRectArg_of_(NSPriorDayDesignations, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokeidAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andNSRectArg_of_(NSPriorDayDesignations, ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeidArg_andNSRectArg_of_(NSPriorDayDesignations, ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallidAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andstructTestStruct1Arg_of_(NSPriorDayDesignations, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callidArg_andstructTestStruct1Arg_of_(NSPriorDayDesignations, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeidAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andstructTestStruct1Arg_of_(NSPriorDayDesignations, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeidArg_andstructTestStruct1Arg_of_(NSPriorDayDesignations, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallidAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andstructTestStruct2Arg_of_(NSPriorDayDesignations, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callidArg_andstructTestStruct2Arg_of_(NSPriorDayDesignations, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeidAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andstructTestStruct2Arg_of_(NSPriorDayDesignations, (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeidArg_andstructTestStruct2Arg_of_(NSPriorDayDesignations, (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallidAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andstructTestStruct3Arg_of_(NSPriorDayDesignations, (1, 2), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callidArg_andstructTestStruct3Arg_of_(NSPriorDayDesignations, (2, 4), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (2, 4))


    def testinvokeidAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andstructTestStruct3Arg_of_(NSPriorDayDesignations, (1, 2), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeidArg_andstructTestStruct3Arg_of_(NSPriorDayDesignations, (2, 4), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (2, 4))


    def testcallidAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andstructTestStruct4Arg_of_(NSPriorDayDesignations, (1, 1<<60), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callidArg_andstructTestStruct4Arg_of_(NSPriorDayDesignations, (2, 4), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (2, 4))


    def testinvokeidAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andstructTestStruct4Arg_of_(NSPriorDayDesignations, (1, 1<<60), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeidArg_andstructTestStruct4Arg_of_(NSPriorDayDesignations, (2, 4), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (2, 4))


    def testcallidAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidArg_andstructTestStruct5Arg_of_(NSPriorDayDesignations, (1, 2.5), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callidArg_andstructTestStruct5Arg_of_(NSPriorDayDesignations, (2, 4.5), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (2, 4.5))


    def testinvokeidAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidArg_andstructTestStruct5Arg_of_(NSPriorDayDesignations, (1, 2.5), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeidArg_andstructTestStruct5Arg_of_(NSPriorDayDesignations, (2, 4.5), o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], (2, 4.5))


    def testcallcharPtrAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andboolArg_of_(b"hello", YES, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callcharPtrArg_andboolArg_of_(b"hello", NO, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callcharPtrArg_andboolArg_of_(b"world", YES, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callcharPtrArg_andboolArg_of_(b"world", NO, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callcharPtrArg_andboolArg_of_(b"foobar", YES, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callcharPtrArg_andboolArg_of_(b"foobar", NO, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], NO)


    def testinvokecharPtrAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andboolArg_of_(b"hello", YES, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokecharPtrArg_andboolArg_of_(b"hello", NO, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokecharPtrArg_andboolArg_of_(b"world", YES, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokecharPtrArg_andboolArg_of_(b"world", NO, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokecharPtrArg_andboolArg_of_(b"foobar", YES, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokecharPtrArg_andboolArg_of_(b"foobar", NO, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], NO)


    def testcallcharPtrAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andBOOLArg_of_(b"hello", YES, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callcharPtrArg_andBOOLArg_of_(b"hello", NO, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callcharPtrArg_andBOOLArg_of_(b"world", YES, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callcharPtrArg_andBOOLArg_of_(b"world", NO, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callcharPtrArg_andBOOLArg_of_(b"foobar", YES, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callcharPtrArg_andBOOLArg_of_(b"foobar", NO, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], NO)


    def testinvokecharPtrAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andBOOLArg_of_(b"hello", YES, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokecharPtrArg_andBOOLArg_of_(b"hello", NO, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokecharPtrArg_andBOOLArg_of_(b"world", YES, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokecharPtrArg_andBOOLArg_of_(b"world", NO, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokecharPtrArg_andBOOLArg_of_(b"foobar", YES, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokecharPtrArg_andBOOLArg_of_(b"foobar", NO, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], NO)


    def testcallcharPtrAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andcharArg_of_(b"hello", -128, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callcharPtrArg_andcharArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andcharArg_of_(b"hello", 127, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callcharPtrArg_andcharArg_of_(b"world", -128, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callcharPtrArg_andcharArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andcharArg_of_(b"world", 127, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callcharPtrArg_andcharArg_of_(b"foobar", -128, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callcharPtrArg_andcharArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andcharArg_of_(b"foobar", 127, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 127)


    def testinvokecharPtrAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andcharArg_of_(b"hello", -128, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokecharPtrArg_andcharArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andcharArg_of_(b"hello", 127, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokecharPtrArg_andcharArg_of_(b"world", -128, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokecharPtrArg_andcharArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andcharArg_of_(b"world", 127, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokecharPtrArg_andcharArg_of_(b"foobar", -128, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokecharPtrArg_andcharArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andcharArg_of_(b"foobar", 127, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 127)


    def testcallcharPtrAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedshortArg_of_(b"hello", -(1<<14), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callcharPtrArg_andsignedshortArg_of_(b"hello", -42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedshortArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedshortArg_of_(b"hello", 42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedshortArg_of_(b"hello", 1 << 14, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedshortArg_of_(b"world", -(1<<14), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callcharPtrArg_andsignedshortArg_of_(b"world", -42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedshortArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedshortArg_of_(b"world", 42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedshortArg_of_(b"world", 1 << 14, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedshortArg_of_(b"foobar", -(1<<14), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callcharPtrArg_andsignedshortArg_of_(b"foobar", -42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedshortArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedshortArg_of_(b"foobar", 42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedshortArg_of_(b"foobar", 1 << 14, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 1 << 14)


    def testinvokecharPtrAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedshortArg_of_(b"hello", -(1<<14), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedshortArg_of_(b"hello", -42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedshortArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedshortArg_of_(b"hello", 42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedshortArg_of_(b"hello", 1 << 14, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedshortArg_of_(b"world", -(1<<14), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedshortArg_of_(b"world", -42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedshortArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedshortArg_of_(b"world", 42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedshortArg_of_(b"world", 1 << 14, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedshortArg_of_(b"foobar", -(1<<14), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedshortArg_of_(b"foobar", -42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedshortArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedshortArg_of_(b"foobar", 42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedshortArg_of_(b"foobar", 1 << 14, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 1 << 14)


    def testcallcharPtrAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedintArg_of_(b"hello", -(1<<30), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callcharPtrArg_andsignedintArg_of_(b"hello", -42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedintArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedintArg_of_(b"hello", 42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedintArg_of_(b"hello", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedintArg_of_(b"world", -(1<<30), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callcharPtrArg_andsignedintArg_of_(b"world", -42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedintArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedintArg_of_(b"world", 42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedintArg_of_(b"world", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedintArg_of_(b"foobar", -(1<<30), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callcharPtrArg_andsignedintArg_of_(b"foobar", -42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedintArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedintArg_of_(b"foobar", 42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedintArg_of_(b"foobar", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 1 << 30)


    def testinvokecharPtrAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedintArg_of_(b"hello", -(1<<30), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedintArg_of_(b"hello", -42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedintArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedintArg_of_(b"hello", 42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedintArg_of_(b"hello", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedintArg_of_(b"world", -(1<<30), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedintArg_of_(b"world", -42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedintArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedintArg_of_(b"world", 42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedintArg_of_(b"world", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedintArg_of_(b"foobar", -(1<<30), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedintArg_of_(b"foobar", -42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedintArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedintArg_of_(b"foobar", 42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedintArg_of_(b"foobar", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 1 << 30)


    def testcallcharPtrAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlongArg_of_(b"hello", -(1<<30), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlongArg_of_(b"hello", -42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlongArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlongArg_of_(b"hello", 42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlongArg_of_(b"hello", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlongArg_of_(b"world", -(1<<30), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlongArg_of_(b"world", -42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlongArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlongArg_of_(b"world", 42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlongArg_of_(b"world", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlongArg_of_(b"foobar", -(1<<30), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlongArg_of_(b"foobar", -42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlongArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlongArg_of_(b"foobar", 42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlongArg_of_(b"foobar", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 1 << 30)


    def testinvokecharPtrAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlongArg_of_(b"hello", -(1<<30), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlongArg_of_(b"hello", -42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlongArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlongArg_of_(b"hello", 42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlongArg_of_(b"hello", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlongArg_of_(b"world", -(1<<30), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlongArg_of_(b"world", -42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlongArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlongArg_of_(b"world", 42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlongArg_of_(b"world", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlongArg_of_(b"foobar", -(1<<30), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlongArg_of_(b"foobar", -42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlongArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlongArg_of_(b"foobar", 42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlongArg_of_(b"foobar", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 1 << 30)


    def testcallcharPtrAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlonglongArg_of_(b"hello", -(1 << 60), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlonglongArg_of_(b"hello", -42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlonglongArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlonglongArg_of_(b"hello", 42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlonglongArg_of_(b"hello", 1 << 60, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlonglongArg_of_(b"world", -(1 << 60), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlonglongArg_of_(b"world", -42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlonglongArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlonglongArg_of_(b"world", 42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlonglongArg_of_(b"world", 1 << 60, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlonglongArg_of_(b"foobar", -(1 << 60), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlonglongArg_of_(b"foobar", -42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlonglongArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlonglongArg_of_(b"foobar", 42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andsignedlonglongArg_of_(b"foobar", 1 << 60, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 1 << 60)


    def testinvokecharPtrAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlonglongArg_of_(b"hello", -(1 << 60), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlonglongArg_of_(b"hello", -42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlonglongArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlonglongArg_of_(b"hello", 42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlonglongArg_of_(b"hello", 1 << 60, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlonglongArg_of_(b"world", -(1 << 60), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlonglongArg_of_(b"world", -42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlonglongArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlonglongArg_of_(b"world", 42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlonglongArg_of_(b"world", 1 << 60, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlonglongArg_of_(b"foobar", -(1 << 60), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlonglongArg_of_(b"foobar", -42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlonglongArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlonglongArg_of_(b"foobar", 42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andsignedlonglongArg_of_(b"foobar", 1 << 60, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 1 << 60)


    def testcallcharPtrAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedcharArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedcharArg_of_(b"hello", 128, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedcharArg_of_(b"hello", 255, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedcharArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedcharArg_of_(b"world", 128, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedcharArg_of_(b"world", 255, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedcharArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedcharArg_of_(b"foobar", 128, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedcharArg_of_(b"foobar", 255, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 255)


    def testinvokecharPtrAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedcharArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedcharArg_of_(b"hello", 128, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedcharArg_of_(b"hello", 255, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedcharArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedcharArg_of_(b"world", 128, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedcharArg_of_(b"world", 255, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedcharArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedcharArg_of_(b"foobar", 128, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedcharArg_of_(b"foobar", 255, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 255)


    def testcallcharPtrAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedshortArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedshortArg_of_(b"hello", 42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedshortArg_of_(b"hello", 1<<14, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedshortArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedshortArg_of_(b"world", 42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedshortArg_of_(b"world", 1<<14, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedshortArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedshortArg_of_(b"foobar", 42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedshortArg_of_(b"foobar", 1<<14, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 1<<14)


    def testinvokecharPtrAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedshortArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedshortArg_of_(b"hello", 42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedshortArg_of_(b"hello", 1<<14, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedshortArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedshortArg_of_(b"world", 42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedshortArg_of_(b"world", 1<<14, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedshortArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedshortArg_of_(b"foobar", 42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedshortArg_of_(b"foobar", 1<<14, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 1<<14)


    def testcallcharPtrAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedintArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedintArg_of_(b"hello", 42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedintArg_of_(b"hello", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedintArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedintArg_of_(b"world", 42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedintArg_of_(b"world", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedintArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedintArg_of_(b"foobar", 42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedintArg_of_(b"foobar", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 1 << 30)


    def testinvokecharPtrAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedintArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedintArg_of_(b"hello", 42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedintArg_of_(b"hello", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedintArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedintArg_of_(b"world", 42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedintArg_of_(b"world", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedintArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedintArg_of_(b"foobar", 42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedintArg_of_(b"foobar", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 1 << 30)


    def testcallcharPtrAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlongArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlongArg_of_(b"hello", 42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlongArg_of_(b"hello", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlongArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlongArg_of_(b"world", 42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlongArg_of_(b"world", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlongArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlongArg_of_(b"foobar", 42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlongArg_of_(b"foobar", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 1 << 30)


    def testinvokecharPtrAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlongArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlongArg_of_(b"hello", 42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlongArg_of_(b"hello", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlongArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlongArg_of_(b"world", 42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlongArg_of_(b"world", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlongArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlongArg_of_(b"foobar", 42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlongArg_of_(b"foobar", 1 << 30, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 1 << 30)


    def testcallcharPtrAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlonglongArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlonglongArg_of_(b"hello", 42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlonglongArg_of_(b"hello", 1 << 62, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlonglongArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlonglongArg_of_(b"world", 42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlonglongArg_of_(b"world", 1 << 62, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlonglongArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlonglongArg_of_(b"foobar", 42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callcharPtrArg_andunsignedlonglongArg_of_(b"foobar", 1 << 62, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 1 << 62)


    def testinvokecharPtrAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlonglongArg_of_(b"hello", 0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlonglongArg_of_(b"hello", 42, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlonglongArg_of_(b"hello", 1 << 62, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlonglongArg_of_(b"world", 0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlonglongArg_of_(b"world", 42, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlonglongArg_of_(b"world", 1 << 62, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlonglongArg_of_(b"foobar", 0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlonglongArg_of_(b"foobar", 42, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokecharPtrArg_andunsignedlonglongArg_of_(b"foobar", 1 << 62, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], 1 << 62)


    def testcallcharPtrAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andfloatArg_of_(b"hello", 0.128, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callcharPtrArg_andfloatArg_of_(b"hello", 1.0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callcharPtrArg_andfloatArg_of_(b"hello", 42.0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callcharPtrArg_andfloatArg_of_(b"hello", 1e10, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callcharPtrArg_andfloatArg_of_(b"world", 0.128, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callcharPtrArg_andfloatArg_of_(b"world", 1.0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callcharPtrArg_andfloatArg_of_(b"world", 42.0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callcharPtrArg_andfloatArg_of_(b"world", 1e10, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callcharPtrArg_andfloatArg_of_(b"foobar", 0.128, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callcharPtrArg_andfloatArg_of_(b"foobar", 1.0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callcharPtrArg_andfloatArg_of_(b"foobar", 42.0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callcharPtrArg_andfloatArg_of_(b"foobar", 1e10, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokecharPtrAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andfloatArg_of_(b"hello", 0.128, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokecharPtrArg_andfloatArg_of_(b"hello", 1.0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokecharPtrArg_andfloatArg_of_(b"hello", 42.0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokecharPtrArg_andfloatArg_of_(b"hello", 1e10, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokecharPtrArg_andfloatArg_of_(b"world", 0.128, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokecharPtrArg_andfloatArg_of_(b"world", 1.0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokecharPtrArg_andfloatArg_of_(b"world", 42.0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokecharPtrArg_andfloatArg_of_(b"world", 1e10, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokecharPtrArg_andfloatArg_of_(b"foobar", 0.128, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokecharPtrArg_andfloatArg_of_(b"foobar", 1.0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokecharPtrArg_andfloatArg_of_(b"foobar", 42.0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokecharPtrArg_andfloatArg_of_(b"foobar", 1e10, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertAlmostEqual(r[1], 1e10)


    def testcallcharPtrAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_anddoubleArg_of_(b"hello", 0.128, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callcharPtrArg_anddoubleArg_of_(b"hello", 1.0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callcharPtrArg_anddoubleArg_of_(b"hello", 42.0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callcharPtrArg_anddoubleArg_of_(b"hello", 1e10, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callcharPtrArg_anddoubleArg_of_(b"world", 0.128, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callcharPtrArg_anddoubleArg_of_(b"world", 1.0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callcharPtrArg_anddoubleArg_of_(b"world", 42.0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callcharPtrArg_anddoubleArg_of_(b"world", 1e10, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callcharPtrArg_anddoubleArg_of_(b"foobar", 0.128, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callcharPtrArg_anddoubleArg_of_(b"foobar", 1.0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callcharPtrArg_anddoubleArg_of_(b"foobar", 42.0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callcharPtrArg_anddoubleArg_of_(b"foobar", 1e10, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokecharPtrAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_anddoubleArg_of_(b"hello", 0.128, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokecharPtrArg_anddoubleArg_of_(b"hello", 1.0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokecharPtrArg_anddoubleArg_of_(b"hello", 42.0, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokecharPtrArg_anddoubleArg_of_(b"hello", 1e10, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokecharPtrArg_anddoubleArg_of_(b"world", 0.128, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokecharPtrArg_anddoubleArg_of_(b"world", 1.0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokecharPtrArg_anddoubleArg_of_(b"world", 42.0, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokecharPtrArg_anddoubleArg_of_(b"world", 1e10, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokecharPtrArg_anddoubleArg_of_(b"foobar", 0.128, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokecharPtrArg_anddoubleArg_of_(b"foobar", 1.0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokecharPtrArg_anddoubleArg_of_(b"foobar", 42.0, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokecharPtrArg_anddoubleArg_of_(b"foobar", 1e10, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertAlmostEqual(r[1], 1e10)


    def testcallcharPtrAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andidArg_of_(b"hello", NSPriorDayDesignations, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callcharPtrArg_andidArg_of_(b"world", NSPriorDayDesignations, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callcharPtrArg_andidArg_of_(b"foobar", NSPriorDayDesignations, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokecharPtrAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andidArg_of_(b"hello", NSPriorDayDesignations, o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokecharPtrArg_andidArg_of_(b"world", NSPriorDayDesignations, o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokecharPtrArg_andidArg_of_(b"foobar", NSPriorDayDesignations, o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallcharPtrAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andcharPtrArg_of_(b"hello", b"hello", o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callcharPtrArg_andcharPtrArg_of_(b"hello", b"world", o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callcharPtrArg_andcharPtrArg_of_(b"hello", b"foobar", o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callcharPtrArg_andcharPtrArg_of_(b"world", b"hello", o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callcharPtrArg_andcharPtrArg_of_(b"world", b"world", o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callcharPtrArg_andcharPtrArg_of_(b"world", b"foobar", o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callcharPtrArg_andcharPtrArg_of_(b"foobar", b"hello", o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callcharPtrArg_andcharPtrArg_of_(b"foobar", b"world", o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callcharPtrArg_andcharPtrArg_of_(b"foobar", b"foobar", o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokecharPtrAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andcharPtrArg_of_(b"hello", b"hello", o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokecharPtrArg_andcharPtrArg_of_(b"hello", b"world", o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokecharPtrArg_andcharPtrArg_of_(b"hello", b"foobar", o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokecharPtrArg_andcharPtrArg_of_(b"world", b"hello", o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokecharPtrArg_andcharPtrArg_of_(b"world", b"world", o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokecharPtrArg_andcharPtrArg_of_(b"world", b"foobar", o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokecharPtrArg_andcharPtrArg_of_(b"foobar", b"hello", o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokecharPtrArg_andcharPtrArg_of_(b"foobar", b"world", o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokecharPtrArg_andcharPtrArg_of_(b"foobar", b"foobar", o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallcharPtrAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andNSPointArg_of_(b"hello", (1, 2), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callcharPtrArg_andNSPointArg_of_(b"hello", (3, 4), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callcharPtrArg_andNSPointArg_of_(b"world", (1, 2), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callcharPtrArg_andNSPointArg_of_(b"world", (3, 4), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callcharPtrArg_andNSPointArg_of_(b"foobar", (1, 2), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callcharPtrArg_andNSPointArg_of_(b"foobar", (3, 4), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (3, 4))


    def testinvokecharPtrAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andNSPointArg_of_(b"hello", (1, 2), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokecharPtrArg_andNSPointArg_of_(b"hello", (3, 4), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokecharPtrArg_andNSPointArg_of_(b"world", (1, 2), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokecharPtrArg_andNSPointArg_of_(b"world", (3, 4), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokecharPtrArg_andNSPointArg_of_(b"foobar", (1, 2), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokecharPtrArg_andNSPointArg_of_(b"foobar", (3, 4), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (3, 4))


    def testcallcharPtrAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andNSRectArg_of_(b"hello", ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callcharPtrArg_andNSRectArg_of_(b"hello", ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callcharPtrArg_andNSRectArg_of_(b"world", ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callcharPtrArg_andNSRectArg_of_(b"world", ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callcharPtrArg_andNSRectArg_of_(b"foobar", ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callcharPtrArg_andNSRectArg_of_(b"foobar", ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokecharPtrAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andNSRectArg_of_(b"hello", ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokecharPtrArg_andNSRectArg_of_(b"hello", ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokecharPtrArg_andNSRectArg_of_(b"world", ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokecharPtrArg_andNSRectArg_of_(b"world", ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokecharPtrArg_andNSRectArg_of_(b"foobar", ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokecharPtrArg_andNSRectArg_of_(b"foobar", ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallcharPtrAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct1Arg_of_(b"hello", (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct1Arg_of_(b"hello", (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct1Arg_of_(b"world", (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct1Arg_of_(b"world", (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct1Arg_of_(b"foobar", (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct1Arg_of_(b"foobar", (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokecharPtrAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct1Arg_of_(b"hello", (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct1Arg_of_(b"hello", (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct1Arg_of_(b"world", (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct1Arg_of_(b"world", (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct1Arg_of_(b"foobar", (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct1Arg_of_(b"foobar", (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallcharPtrAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct2Arg_of_(b"hello", (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct2Arg_of_(b"hello", (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct2Arg_of_(b"world", (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct2Arg_of_(b"world", (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct2Arg_of_(b"foobar", (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct2Arg_of_(b"foobar", (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokecharPtrAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct2Arg_of_(b"hello", (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct2Arg_of_(b"hello", (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct2Arg_of_(b"world", (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct2Arg_of_(b"world", (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct2Arg_of_(b"foobar", (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct2Arg_of_(b"foobar", (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallcharPtrAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct3Arg_of_(b"hello", (1, 2), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct3Arg_of_(b"hello", (2, 4), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct3Arg_of_(b"world", (1, 2), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct3Arg_of_(b"world", (2, 4), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct3Arg_of_(b"foobar", (1, 2), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct3Arg_of_(b"foobar", (2, 4), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (2, 4))


    def testinvokecharPtrAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct3Arg_of_(b"hello", (1, 2), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct3Arg_of_(b"hello", (2, 4), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct3Arg_of_(b"world", (1, 2), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct3Arg_of_(b"world", (2, 4), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct3Arg_of_(b"foobar", (1, 2), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct3Arg_of_(b"foobar", (2, 4), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (2, 4))


    def testcallcharPtrAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct4Arg_of_(b"hello", (1, 1<<60), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct4Arg_of_(b"hello", (2, 4), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct4Arg_of_(b"world", (1, 1<<60), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct4Arg_of_(b"world", (2, 4), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct4Arg_of_(b"foobar", (1, 1<<60), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct4Arg_of_(b"foobar", (2, 4), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (2, 4))


    def testinvokecharPtrAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct4Arg_of_(b"hello", (1, 1<<60), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct4Arg_of_(b"hello", (2, 4), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct4Arg_of_(b"world", (1, 1<<60), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct4Arg_of_(b"world", (2, 4), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct4Arg_of_(b"foobar", (1, 1<<60), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct4Arg_of_(b"foobar", (2, 4), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (2, 4))


    def testcallcharPtrAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct5Arg_of_(b"hello", (1, 2.5), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct5Arg_of_(b"hello", (2, 4.5), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct5Arg_of_(b"world", (1, 2.5), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct5Arg_of_(b"world", (2, 4.5), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct5Arg_of_(b"foobar", (1, 2.5), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callcharPtrArg_andstructTestStruct5Arg_of_(b"foobar", (2, 4.5), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (2, 4.5))


    def testinvokecharPtrAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct5Arg_of_(b"hello", (1, 2.5), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct5Arg_of_(b"hello", (2, 4.5), o)
        self.assertEqual(r[0], unicode(b"hello"))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct5Arg_of_(b"world", (1, 2.5), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct5Arg_of_(b"world", (2, 4.5), o)
        self.assertEqual(r[0], unicode(b"world"))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct5Arg_of_(b"foobar", (1, 2.5), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokecharPtrArg_andstructTestStruct5Arg_of_(b"foobar", (2, 4.5), o)
        self.assertEqual(r[0], unicode(b"foobar"))
        self.assertEqual(r[1], (2, 4.5))


    def testcallNSPointAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andboolArg_of_((1, 2), YES, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callNSPointArg_andboolArg_of_((1, 2), NO, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callNSPointArg_andboolArg_of_((3, 4), YES, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callNSPointArg_andboolArg_of_((3, 4), NO, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], NO)


    def testinvokeNSPointAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andboolArg_of_((1, 2), YES, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeNSPointArg_andboolArg_of_((1, 2), NO, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeNSPointArg_andboolArg_of_((3, 4), YES, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeNSPointArg_andboolArg_of_((3, 4), NO, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], NO)


    def testcallNSPointAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andBOOLArg_of_((1, 2), YES, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callNSPointArg_andBOOLArg_of_((1, 2), NO, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callNSPointArg_andBOOLArg_of_((3, 4), YES, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callNSPointArg_andBOOLArg_of_((3, 4), NO, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], NO)


    def testinvokeNSPointAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andBOOLArg_of_((1, 2), YES, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeNSPointArg_andBOOLArg_of_((1, 2), NO, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeNSPointArg_andBOOLArg_of_((3, 4), YES, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeNSPointArg_andBOOLArg_of_((3, 4), NO, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], NO)


    def testcallNSPointAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andcharArg_of_((1, 2), -128, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callNSPointArg_andcharArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andcharArg_of_((1, 2), 127, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callNSPointArg_andcharArg_of_((3, 4), -128, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callNSPointArg_andcharArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andcharArg_of_((3, 4), 127, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 127)


    def testinvokeNSPointAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andcharArg_of_((1, 2), -128, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeNSPointArg_andcharArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andcharArg_of_((1, 2), 127, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokeNSPointArg_andcharArg_of_((3, 4), -128, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeNSPointArg_andcharArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andcharArg_of_((3, 4), 127, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 127)


    def testcallNSPointAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andsignedshortArg_of_((1, 2), -(1<<14), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callNSPointArg_andsignedshortArg_of_((1, 2), -42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callNSPointArg_andsignedshortArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andsignedshortArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSPointArg_andsignedshortArg_of_((1, 2), 1 << 14, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callNSPointArg_andsignedshortArg_of_((3, 4), -(1<<14), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callNSPointArg_andsignedshortArg_of_((3, 4), -42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callNSPointArg_andsignedshortArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andsignedshortArg_of_((3, 4), 42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSPointArg_andsignedshortArg_of_((3, 4), 1 << 14, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 14)


    def testinvokeNSPointAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedshortArg_of_((1, 2), -(1<<14), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedshortArg_of_((1, 2), -42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedshortArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedshortArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedshortArg_of_((1, 2), 1 << 14, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedshortArg_of_((3, 4), -(1<<14), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedshortArg_of_((3, 4), -42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedshortArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedshortArg_of_((3, 4), 42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedshortArg_of_((3, 4), 1 << 14, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 14)


    def testcallNSPointAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andsignedintArg_of_((1, 2), -(1<<30), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callNSPointArg_andsignedintArg_of_((1, 2), -42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callNSPointArg_andsignedintArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andsignedintArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSPointArg_andsignedintArg_of_((1, 2), 1 << 30, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callNSPointArg_andsignedintArg_of_((3, 4), -(1<<30), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callNSPointArg_andsignedintArg_of_((3, 4), -42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callNSPointArg_andsignedintArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andsignedintArg_of_((3, 4), 42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSPointArg_andsignedintArg_of_((3, 4), 1 << 30, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 30)


    def testinvokeNSPointAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedintArg_of_((1, 2), -(1<<30), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedintArg_of_((1, 2), -42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedintArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedintArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedintArg_of_((1, 2), 1 << 30, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedintArg_of_((3, 4), -(1<<30), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedintArg_of_((3, 4), -42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedintArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedintArg_of_((3, 4), 42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedintArg_of_((3, 4), 1 << 30, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 30)


    def testcallNSPointAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andsignedlongArg_of_((1, 2), -(1<<30), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callNSPointArg_andsignedlongArg_of_((1, 2), -42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callNSPointArg_andsignedlongArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andsignedlongArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSPointArg_andsignedlongArg_of_((1, 2), 1 << 30, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callNSPointArg_andsignedlongArg_of_((3, 4), -(1<<30), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callNSPointArg_andsignedlongArg_of_((3, 4), -42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callNSPointArg_andsignedlongArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andsignedlongArg_of_((3, 4), 42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSPointArg_andsignedlongArg_of_((3, 4), 1 << 30, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 30)


    def testinvokeNSPointAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlongArg_of_((1, 2), -(1<<30), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlongArg_of_((1, 2), -42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlongArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlongArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlongArg_of_((1, 2), 1 << 30, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlongArg_of_((3, 4), -(1<<30), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlongArg_of_((3, 4), -42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlongArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlongArg_of_((3, 4), 42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlongArg_of_((3, 4), 1 << 30, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 30)


    def testcallNSPointAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andsignedlonglongArg_of_((1, 2), -(1 << 60), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callNSPointArg_andsignedlonglongArg_of_((1, 2), -42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callNSPointArg_andsignedlonglongArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andsignedlonglongArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSPointArg_andsignedlonglongArg_of_((1, 2), 1 << 60, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callNSPointArg_andsignedlonglongArg_of_((3, 4), -(1 << 60), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callNSPointArg_andsignedlonglongArg_of_((3, 4), -42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callNSPointArg_andsignedlonglongArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andsignedlonglongArg_of_((3, 4), 42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSPointArg_andsignedlonglongArg_of_((3, 4), 1 << 60, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 60)


    def testinvokeNSPointAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlonglongArg_of_((1, 2), -(1 << 60), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlonglongArg_of_((1, 2), -42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlonglongArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlonglongArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlonglongArg_of_((1, 2), 1 << 60, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlonglongArg_of_((3, 4), -(1 << 60), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlonglongArg_of_((3, 4), -42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlonglongArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlonglongArg_of_((3, 4), 42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSPointArg_andsignedlonglongArg_of_((3, 4), 1 << 60, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 60)


    def testcallNSPointAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedcharArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedcharArg_of_((1, 2), 128, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedcharArg_of_((1, 2), 255, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedcharArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedcharArg_of_((3, 4), 128, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedcharArg_of_((3, 4), 255, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 255)


    def testinvokeNSPointAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedcharArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedcharArg_of_((1, 2), 128, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedcharArg_of_((1, 2), 255, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedcharArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedcharArg_of_((3, 4), 128, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedcharArg_of_((3, 4), 255, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 255)


    def testcallNSPointAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedshortArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedshortArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedshortArg_of_((1, 2), 1<<14, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedshortArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedshortArg_of_((3, 4), 42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedshortArg_of_((3, 4), 1<<14, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1<<14)


    def testinvokeNSPointAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedshortArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedshortArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedshortArg_of_((1, 2), 1<<14, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedshortArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedshortArg_of_((3, 4), 42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedshortArg_of_((3, 4), 1<<14, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1<<14)


    def testcallNSPointAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedintArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedintArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedintArg_of_((1, 2), 1 << 30, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedintArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedintArg_of_((3, 4), 42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedintArg_of_((3, 4), 1 << 30, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 30)


    def testinvokeNSPointAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedintArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedintArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedintArg_of_((1, 2), 1 << 30, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedintArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedintArg_of_((3, 4), 42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedintArg_of_((3, 4), 1 << 30, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 30)


    def testcallNSPointAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedlongArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedlongArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedlongArg_of_((1, 2), 1 << 30, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedlongArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedlongArg_of_((3, 4), 42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedlongArg_of_((3, 4), 1 << 30, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 30)


    def testinvokeNSPointAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedlongArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedlongArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedlongArg_of_((1, 2), 1 << 30, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedlongArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedlongArg_of_((3, 4), 42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedlongArg_of_((3, 4), 1 << 30, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 30)


    def testcallNSPointAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedlonglongArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedlonglongArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedlonglongArg_of_((1, 2), 1 << 62, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedlonglongArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedlonglongArg_of_((3, 4), 42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSPointArg_andunsignedlonglongArg_of_((3, 4), 1 << 62, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 62)


    def testinvokeNSPointAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedlonglongArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedlonglongArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedlonglongArg_of_((1, 2), 1 << 62, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedlonglongArg_of_((3, 4), 0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedlonglongArg_of_((3, 4), 42, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSPointArg_andunsignedlonglongArg_of_((3, 4), 1 << 62, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], 1 << 62)


    def testcallNSPointAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andfloatArg_of_((1, 2), 0.128, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callNSPointArg_andfloatArg_of_((1, 2), 1.0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callNSPointArg_andfloatArg_of_((1, 2), 42.0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callNSPointArg_andfloatArg_of_((1, 2), 1e10, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callNSPointArg_andfloatArg_of_((3, 4), 0.128, o)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callNSPointArg_andfloatArg_of_((3, 4), 1.0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callNSPointArg_andfloatArg_of_((3, 4), 42.0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callNSPointArg_andfloatArg_of_((3, 4), 1e10, o)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeNSPointAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andfloatArg_of_((1, 2), 0.128, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeNSPointArg_andfloatArg_of_((1, 2), 1.0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeNSPointArg_andfloatArg_of_((1, 2), 42.0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeNSPointArg_andfloatArg_of_((1, 2), 1e10, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeNSPointArg_andfloatArg_of_((3, 4), 0.128, o)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeNSPointArg_andfloatArg_of_((3, 4), 1.0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeNSPointArg_andfloatArg_of_((3, 4), 42.0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeNSPointArg_andfloatArg_of_((3, 4), 1e10, o)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def testcallNSPointAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_anddoubleArg_of_((1, 2), 0.128, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callNSPointArg_anddoubleArg_of_((1, 2), 1.0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callNSPointArg_anddoubleArg_of_((1, 2), 42.0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callNSPointArg_anddoubleArg_of_((1, 2), 1e10, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callNSPointArg_anddoubleArg_of_((3, 4), 0.128, o)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callNSPointArg_anddoubleArg_of_((3, 4), 1.0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callNSPointArg_anddoubleArg_of_((3, 4), 42.0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callNSPointArg_anddoubleArg_of_((3, 4), 1e10, o)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeNSPointAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_anddoubleArg_of_((1, 2), 0.128, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeNSPointArg_anddoubleArg_of_((1, 2), 1.0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeNSPointArg_anddoubleArg_of_((1, 2), 42.0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeNSPointArg_anddoubleArg_of_((1, 2), 1e10, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeNSPointArg_anddoubleArg_of_((3, 4), 0.128, o)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeNSPointArg_anddoubleArg_of_((3, 4), 1.0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeNSPointArg_anddoubleArg_of_((3, 4), 42.0, o)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeNSPointArg_anddoubleArg_of_((3, 4), 1e10, o)
        self.assertEqual(r[0], (3, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def testcallNSPointAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andidArg_of_((1, 2), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callNSPointArg_andidArg_of_((3, 4), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokeNSPointAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andidArg_of_((1, 2), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokeNSPointArg_andidArg_of_((3, 4), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallNSPointAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andcharPtrArg_of_((1, 2), b"hello", o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callNSPointArg_andcharPtrArg_of_((1, 2), b"world", o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callNSPointArg_andcharPtrArg_of_((1, 2), b"foobar", o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callNSPointArg_andcharPtrArg_of_((3, 4), b"hello", o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callNSPointArg_andcharPtrArg_of_((3, 4), b"world", o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callNSPointArg_andcharPtrArg_of_((3, 4), b"foobar", o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokeNSPointAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andcharPtrArg_of_((1, 2), b"hello", o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeNSPointArg_andcharPtrArg_of_((1, 2), b"world", o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeNSPointArg_andcharPtrArg_of_((1, 2), b"foobar", o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokeNSPointArg_andcharPtrArg_of_((3, 4), b"hello", o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeNSPointArg_andcharPtrArg_of_((3, 4), b"world", o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeNSPointArg_andcharPtrArg_of_((3, 4), b"foobar", o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallNSPointAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andNSPointArg_of_((1, 2), (1, 2), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callNSPointArg_andNSPointArg_of_((1, 2), (3, 4), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callNSPointArg_andNSPointArg_of_((3, 4), (1, 2), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callNSPointArg_andNSPointArg_of_((3, 4), (3, 4), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (3, 4))


    def testinvokeNSPointAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andNSPointArg_of_((1, 2), (1, 2), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeNSPointArg_andNSPointArg_of_((1, 2), (3, 4), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokeNSPointArg_andNSPointArg_of_((3, 4), (1, 2), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeNSPointArg_andNSPointArg_of_((3, 4), (3, 4), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (3, 4))


    def testcallNSPointAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andNSRectArg_of_((1, 2), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callNSPointArg_andNSRectArg_of_((1, 2), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callNSPointArg_andNSRectArg_of_((3, 4), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callNSPointArg_andNSRectArg_of_((3, 4), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokeNSPointAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andNSRectArg_of_((1, 2), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeNSPointArg_andNSRectArg_of_((1, 2), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokeNSPointArg_andNSRectArg_of_((3, 4), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeNSPointArg_andNSRectArg_of_((3, 4), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallNSPointAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct1Arg_of_((1, 2), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct1Arg_of_((1, 2), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct1Arg_of_((3, 4), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct1Arg_of_((3, 4), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeNSPointAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct1Arg_of_((1, 2), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct1Arg_of_((1, 2), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct1Arg_of_((3, 4), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct1Arg_of_((3, 4), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallNSPointAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct2Arg_of_((1, 2), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct2Arg_of_((1, 2), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct2Arg_of_((3, 4), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct2Arg_of_((3, 4), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeNSPointAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct2Arg_of_((1, 2), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct2Arg_of_((1, 2), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct2Arg_of_((3, 4), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct2Arg_of_((3, 4), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallNSPointAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct3Arg_of_((1, 2), (1, 2), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct3Arg_of_((1, 2), (2, 4), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct3Arg_of_((3, 4), (1, 2), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct3Arg_of_((3, 4), (2, 4), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (2, 4))


    def testinvokeNSPointAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct3Arg_of_((1, 2), (1, 2), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct3Arg_of_((1, 2), (2, 4), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct3Arg_of_((3, 4), (1, 2), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct3Arg_of_((3, 4), (2, 4), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (2, 4))


    def testcallNSPointAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct4Arg_of_((1, 2), (1, 1<<60), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct4Arg_of_((1, 2), (2, 4), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct4Arg_of_((3, 4), (1, 1<<60), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct4Arg_of_((3, 4), (2, 4), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (2, 4))


    def testinvokeNSPointAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct4Arg_of_((1, 2), (1, 1<<60), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct4Arg_of_((1, 2), (2, 4), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct4Arg_of_((3, 4), (1, 1<<60), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct4Arg_of_((3, 4), (2, 4), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (2, 4))


    def testcallNSPointAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct5Arg_of_((1, 2), (1, 2.5), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct5Arg_of_((1, 2), (2, 4.5), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct5Arg_of_((3, 4), (1, 2.5), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callNSPointArg_andstructTestStruct5Arg_of_((3, 4), (2, 4.5), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (2, 4.5))


    def testinvokeNSPointAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct5Arg_of_((1, 2), (1, 2.5), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct5Arg_of_((1, 2), (2, 4.5), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct5Arg_of_((3, 4), (1, 2.5), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeNSPointArg_andstructTestStruct5Arg_of_((3, 4), (2, 4.5), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (2, 4.5))


    def testcallNSRectAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andboolArg_of_(((1, 2), (3, 4)), YES, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callNSRectArg_andboolArg_of_(((1, 2), (3, 4)), NO, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callNSRectArg_andboolArg_of_(((7, 8), (9, 10)), YES, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callNSRectArg_andboolArg_of_(((7, 8), (9, 10)), NO, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], NO)


    def testinvokeNSRectAndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andboolArg_of_(((1, 2), (3, 4)), YES, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeNSRectArg_andboolArg_of_(((1, 2), (3, 4)), NO, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeNSRectArg_andboolArg_of_(((7, 8), (9, 10)), YES, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeNSRectArg_andboolArg_of_(((7, 8), (9, 10)), NO, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], NO)


    def testcallNSRectAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andBOOLArg_of_(((1, 2), (3, 4)), YES, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callNSRectArg_andBOOLArg_of_(((1, 2), (3, 4)), NO, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callNSRectArg_andBOOLArg_of_(((7, 8), (9, 10)), YES, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callNSRectArg_andBOOLArg_of_(((7, 8), (9, 10)), NO, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], NO)


    def testinvokeNSRectAndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andBOOLArg_of_(((1, 2), (3, 4)), YES, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeNSRectArg_andBOOLArg_of_(((1, 2), (3, 4)), NO, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokeNSRectArg_andBOOLArg_of_(((7, 8), (9, 10)), YES, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeNSRectArg_andBOOLArg_of_(((7, 8), (9, 10)), NO, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], NO)


    def testcallNSRectAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andcharArg_of_(((1, 2), (3, 4)), -128, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callNSRectArg_andcharArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andcharArg_of_(((1, 2), (3, 4)), 127, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callNSRectArg_andcharArg_of_(((7, 8), (9, 10)), -128, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callNSRectArg_andcharArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andcharArg_of_(((7, 8), (9, 10)), 127, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 127)


    def testinvokeNSRectAndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andcharArg_of_(((1, 2), (3, 4)), -128, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeNSRectArg_andcharArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andcharArg_of_(((1, 2), (3, 4)), 127, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokeNSRectArg_andcharArg_of_(((7, 8), (9, 10)), -128, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokeNSRectArg_andcharArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andcharArg_of_(((7, 8), (9, 10)), 127, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 127)


    def testcallNSRectAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andsignedshortArg_of_(((1, 2), (3, 4)), -(1<<14), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callNSRectArg_andsignedshortArg_of_(((1, 2), (3, 4)), -42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callNSRectArg_andsignedshortArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andsignedshortArg_of_(((1, 2), (3, 4)), 42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSRectArg_andsignedshortArg_of_(((1, 2), (3, 4)), 1 << 14, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callNSRectArg_andsignedshortArg_of_(((7, 8), (9, 10)), -(1<<14), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callNSRectArg_andsignedshortArg_of_(((7, 8), (9, 10)), -42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callNSRectArg_andsignedshortArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andsignedshortArg_of_(((7, 8), (9, 10)), 42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSRectArg_andsignedshortArg_of_(((7, 8), (9, 10)), 1 << 14, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 14)


    def testinvokeNSRectAndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedshortArg_of_(((1, 2), (3, 4)), -(1<<14), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedshortArg_of_(((1, 2), (3, 4)), -42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedshortArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedshortArg_of_(((1, 2), (3, 4)), 42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedshortArg_of_(((1, 2), (3, 4)), 1 << 14, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedshortArg_of_(((7, 8), (9, 10)), -(1<<14), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedshortArg_of_(((7, 8), (9, 10)), -42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedshortArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedshortArg_of_(((7, 8), (9, 10)), 42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedshortArg_of_(((7, 8), (9, 10)), 1 << 14, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 14)


    def testcallNSRectAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andsignedintArg_of_(((1, 2), (3, 4)), -(1<<30), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callNSRectArg_andsignedintArg_of_(((1, 2), (3, 4)), -42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callNSRectArg_andsignedintArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andsignedintArg_of_(((1, 2), (3, 4)), 42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSRectArg_andsignedintArg_of_(((1, 2), (3, 4)), 1 << 30, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callNSRectArg_andsignedintArg_of_(((7, 8), (9, 10)), -(1<<30), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callNSRectArg_andsignedintArg_of_(((7, 8), (9, 10)), -42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callNSRectArg_andsignedintArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andsignedintArg_of_(((7, 8), (9, 10)), 42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSRectArg_andsignedintArg_of_(((7, 8), (9, 10)), 1 << 30, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 30)


    def testinvokeNSRectAndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedintArg_of_(((1, 2), (3, 4)), -(1<<30), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedintArg_of_(((1, 2), (3, 4)), -42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedintArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedintArg_of_(((1, 2), (3, 4)), 42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedintArg_of_(((1, 2), (3, 4)), 1 << 30, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedintArg_of_(((7, 8), (9, 10)), -(1<<30), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedintArg_of_(((7, 8), (9, 10)), -42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedintArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedintArg_of_(((7, 8), (9, 10)), 42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedintArg_of_(((7, 8), (9, 10)), 1 << 30, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 30)


    def testcallNSRectAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andsignedlongArg_of_(((1, 2), (3, 4)), -(1<<30), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callNSRectArg_andsignedlongArg_of_(((1, 2), (3, 4)), -42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callNSRectArg_andsignedlongArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andsignedlongArg_of_(((1, 2), (3, 4)), 42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSRectArg_andsignedlongArg_of_(((1, 2), (3, 4)), 1 << 30, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callNSRectArg_andsignedlongArg_of_(((7, 8), (9, 10)), -(1<<30), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callNSRectArg_andsignedlongArg_of_(((7, 8), (9, 10)), -42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callNSRectArg_andsignedlongArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andsignedlongArg_of_(((7, 8), (9, 10)), 42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSRectArg_andsignedlongArg_of_(((7, 8), (9, 10)), 1 << 30, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 30)


    def testinvokeNSRectAndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlongArg_of_(((1, 2), (3, 4)), -(1<<30), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlongArg_of_(((1, 2), (3, 4)), -42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlongArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlongArg_of_(((1, 2), (3, 4)), 42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlongArg_of_(((1, 2), (3, 4)), 1 << 30, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlongArg_of_(((7, 8), (9, 10)), -(1<<30), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlongArg_of_(((7, 8), (9, 10)), -42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlongArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlongArg_of_(((7, 8), (9, 10)), 42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlongArg_of_(((7, 8), (9, 10)), 1 << 30, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 30)


    def testcallNSRectAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andsignedlonglongArg_of_(((1, 2), (3, 4)), -(1 << 60), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callNSRectArg_andsignedlonglongArg_of_(((1, 2), (3, 4)), -42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callNSRectArg_andsignedlonglongArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andsignedlonglongArg_of_(((1, 2), (3, 4)), 42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSRectArg_andsignedlonglongArg_of_(((1, 2), (3, 4)), 1 << 60, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callNSRectArg_andsignedlonglongArg_of_(((7, 8), (9, 10)), -(1 << 60), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callNSRectArg_andsignedlonglongArg_of_(((7, 8), (9, 10)), -42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callNSRectArg_andsignedlonglongArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andsignedlonglongArg_of_(((7, 8), (9, 10)), 42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSRectArg_andsignedlonglongArg_of_(((7, 8), (9, 10)), 1 << 60, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 60)


    def testinvokeNSRectAndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlonglongArg_of_(((1, 2), (3, 4)), -(1 << 60), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlonglongArg_of_(((1, 2), (3, 4)), -42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlonglongArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlonglongArg_of_(((1, 2), (3, 4)), 42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlonglongArg_of_(((1, 2), (3, 4)), 1 << 60, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlonglongArg_of_(((7, 8), (9, 10)), -(1 << 60), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlonglongArg_of_(((7, 8), (9, 10)), -42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlonglongArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlonglongArg_of_(((7, 8), (9, 10)), 42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSRectArg_andsignedlonglongArg_of_(((7, 8), (9, 10)), 1 << 60, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 60)


    def testcallNSRectAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedcharArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedcharArg_of_(((1, 2), (3, 4)), 128, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedcharArg_of_(((1, 2), (3, 4)), 255, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedcharArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedcharArg_of_(((7, 8), (9, 10)), 128, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedcharArg_of_(((7, 8), (9, 10)), 255, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 255)


    def testinvokeNSRectAndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedcharArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedcharArg_of_(((1, 2), (3, 4)), 128, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedcharArg_of_(((1, 2), (3, 4)), 255, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedcharArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedcharArg_of_(((7, 8), (9, 10)), 128, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedcharArg_of_(((7, 8), (9, 10)), 255, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 255)


    def testcallNSRectAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedshortArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedshortArg_of_(((1, 2), (3, 4)), 42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedshortArg_of_(((1, 2), (3, 4)), 1<<14, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedshortArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedshortArg_of_(((7, 8), (9, 10)), 42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedshortArg_of_(((7, 8), (9, 10)), 1<<14, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1<<14)


    def testinvokeNSRectAndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedshortArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedshortArg_of_(((1, 2), (3, 4)), 42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedshortArg_of_(((1, 2), (3, 4)), 1<<14, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedshortArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedshortArg_of_(((7, 8), (9, 10)), 42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedshortArg_of_(((7, 8), (9, 10)), 1<<14, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1<<14)


    def testcallNSRectAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedintArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedintArg_of_(((1, 2), (3, 4)), 42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedintArg_of_(((1, 2), (3, 4)), 1 << 30, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedintArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedintArg_of_(((7, 8), (9, 10)), 42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedintArg_of_(((7, 8), (9, 10)), 1 << 30, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 30)


    def testinvokeNSRectAndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedintArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedintArg_of_(((1, 2), (3, 4)), 42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedintArg_of_(((1, 2), (3, 4)), 1 << 30, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedintArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedintArg_of_(((7, 8), (9, 10)), 42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedintArg_of_(((7, 8), (9, 10)), 1 << 30, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 30)


    def testcallNSRectAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedlongArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedlongArg_of_(((1, 2), (3, 4)), 42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedlongArg_of_(((1, 2), (3, 4)), 1 << 30, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedlongArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedlongArg_of_(((7, 8), (9, 10)), 42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedlongArg_of_(((7, 8), (9, 10)), 1 << 30, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 30)


    def testinvokeNSRectAndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedlongArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedlongArg_of_(((1, 2), (3, 4)), 42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedlongArg_of_(((1, 2), (3, 4)), 1 << 30, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedlongArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedlongArg_of_(((7, 8), (9, 10)), 42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedlongArg_of_(((7, 8), (9, 10)), 1 << 30, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 30)


    def testcallNSRectAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedlonglongArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedlonglongArg_of_(((1, 2), (3, 4)), 42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedlonglongArg_of_(((1, 2), (3, 4)), 1 << 62, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedlonglongArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedlonglongArg_of_(((7, 8), (9, 10)), 42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callNSRectArg_andunsignedlonglongArg_of_(((7, 8), (9, 10)), 1 << 62, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 62)


    def testinvokeNSRectAndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedlonglongArg_of_(((1, 2), (3, 4)), 0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedlonglongArg_of_(((1, 2), (3, 4)), 42, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedlonglongArg_of_(((1, 2), (3, 4)), 1 << 62, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedlonglongArg_of_(((7, 8), (9, 10)), 0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedlonglongArg_of_(((7, 8), (9, 10)), 42, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeNSRectArg_andunsignedlonglongArg_of_(((7, 8), (9, 10)), 1 << 62, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], 1 << 62)


    def testcallNSRectAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andfloatArg_of_(((1, 2), (3, 4)), 0.128, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callNSRectArg_andfloatArg_of_(((1, 2), (3, 4)), 1.0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callNSRectArg_andfloatArg_of_(((1, 2), (3, 4)), 42.0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callNSRectArg_andfloatArg_of_(((1, 2), (3, 4)), 1e10, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callNSRectArg_andfloatArg_of_(((7, 8), (9, 10)), 0.128, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callNSRectArg_andfloatArg_of_(((7, 8), (9, 10)), 1.0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callNSRectArg_andfloatArg_of_(((7, 8), (9, 10)), 42.0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callNSRectArg_andfloatArg_of_(((7, 8), (9, 10)), 1e10, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeNSRectAndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andfloatArg_of_(((1, 2), (3, 4)), 0.128, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeNSRectArg_andfloatArg_of_(((1, 2), (3, 4)), 1.0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeNSRectArg_andfloatArg_of_(((1, 2), (3, 4)), 42.0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeNSRectArg_andfloatArg_of_(((1, 2), (3, 4)), 1e10, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeNSRectArg_andfloatArg_of_(((7, 8), (9, 10)), 0.128, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeNSRectArg_andfloatArg_of_(((7, 8), (9, 10)), 1.0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeNSRectArg_andfloatArg_of_(((7, 8), (9, 10)), 42.0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeNSRectArg_andfloatArg_of_(((7, 8), (9, 10)), 1e10, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 1e10)


    def testcallNSRectAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_anddoubleArg_of_(((1, 2), (3, 4)), 0.128, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callNSRectArg_anddoubleArg_of_(((1, 2), (3, 4)), 1.0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callNSRectArg_anddoubleArg_of_(((1, 2), (3, 4)), 42.0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callNSRectArg_anddoubleArg_of_(((1, 2), (3, 4)), 1e10, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callNSRectArg_anddoubleArg_of_(((7, 8), (9, 10)), 0.128, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callNSRectArg_anddoubleArg_of_(((7, 8), (9, 10)), 1.0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callNSRectArg_anddoubleArg_of_(((7, 8), (9, 10)), 42.0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callNSRectArg_anddoubleArg_of_(((7, 8), (9, 10)), 1e10, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokeNSRectAnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_anddoubleArg_of_(((1, 2), (3, 4)), 0.128, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeNSRectArg_anddoubleArg_of_(((1, 2), (3, 4)), 1.0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeNSRectArg_anddoubleArg_of_(((1, 2), (3, 4)), 42.0, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeNSRectArg_anddoubleArg_of_(((1, 2), (3, 4)), 1e10, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokeNSRectArg_anddoubleArg_of_(((7, 8), (9, 10)), 0.128, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokeNSRectArg_anddoubleArg_of_(((7, 8), (9, 10)), 1.0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokeNSRectArg_anddoubleArg_of_(((7, 8), (9, 10)), 42.0, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokeNSRectArg_anddoubleArg_of_(((7, 8), (9, 10)), 1e10, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertAlmostEqual(r[1], 1e10)


    def testcallNSRectAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andidArg_of_(((1, 2), (3, 4)), NSPriorDayDesignations, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callNSRectArg_andidArg_of_(((7, 8), (9, 10)), NSPriorDayDesignations, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokeNSRectAndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andidArg_of_(((1, 2), (3, 4)), NSPriorDayDesignations, o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokeNSRectArg_andidArg_of_(((7, 8), (9, 10)), NSPriorDayDesignations, o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallNSRectAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andcharPtrArg_of_(((1, 2), (3, 4)), b"hello", o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callNSRectArg_andcharPtrArg_of_(((1, 2), (3, 4)), b"world", o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callNSRectArg_andcharPtrArg_of_(((1, 2), (3, 4)), b"foobar", o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callNSRectArg_andcharPtrArg_of_(((7, 8), (9, 10)), b"hello", o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callNSRectArg_andcharPtrArg_of_(((7, 8), (9, 10)), b"world", o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callNSRectArg_andcharPtrArg_of_(((7, 8), (9, 10)), b"foobar", o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokeNSRectAndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andcharPtrArg_of_(((1, 2), (3, 4)), b"hello", o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeNSRectArg_andcharPtrArg_of_(((1, 2), (3, 4)), b"world", o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeNSRectArg_andcharPtrArg_of_(((1, 2), (3, 4)), b"foobar", o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokeNSRectArg_andcharPtrArg_of_(((7, 8), (9, 10)), b"hello", o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokeNSRectArg_andcharPtrArg_of_(((7, 8), (9, 10)), b"world", o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokeNSRectArg_andcharPtrArg_of_(((7, 8), (9, 10)), b"foobar", o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallNSRectAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andNSPointArg_of_(((1, 2), (3, 4)), (1, 2), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callNSRectArg_andNSPointArg_of_(((1, 2), (3, 4)), (3, 4), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callNSRectArg_andNSPointArg_of_(((7, 8), (9, 10)), (1, 2), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callNSRectArg_andNSPointArg_of_(((7, 8), (9, 10)), (3, 4), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (3, 4))


    def testinvokeNSRectAndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andNSPointArg_of_(((1, 2), (3, 4)), (1, 2), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeNSRectArg_andNSPointArg_of_(((1, 2), (3, 4)), (3, 4), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokeNSRectArg_andNSPointArg_of_(((7, 8), (9, 10)), (1, 2), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeNSRectArg_andNSPointArg_of_(((7, 8), (9, 10)), (3, 4), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (3, 4))


    def testcallNSRectAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andNSRectArg_of_(((1, 2), (3, 4)), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callNSRectArg_andNSRectArg_of_(((1, 2), (3, 4)), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callNSRectArg_andNSRectArg_of_(((7, 8), (9, 10)), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callNSRectArg_andNSRectArg_of_(((7, 8), (9, 10)), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokeNSRectAndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andNSRectArg_of_(((1, 2), (3, 4)), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeNSRectArg_andNSRectArg_of_(((1, 2), (3, 4)), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokeNSRectArg_andNSRectArg_of_(((7, 8), (9, 10)), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeNSRectArg_andNSRectArg_of_(((7, 8), (9, 10)), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallNSRectAndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct1Arg_of_(((1, 2), (3, 4)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct1Arg_of_(((1, 2), (3, 4)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct1Arg_of_(((7, 8), (9, 10)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct1Arg_of_(((7, 8), (9, 10)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeNSRectAndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct1Arg_of_(((1, 2), (3, 4)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct1Arg_of_(((1, 2), (3, 4)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct1Arg_of_(((7, 8), (9, 10)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct1Arg_of_(((7, 8), (9, 10)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallNSRectAndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct2Arg_of_(((1, 2), (3, 4)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct2Arg_of_(((1, 2), (3, 4)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct2Arg_of_(((7, 8), (9, 10)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct2Arg_of_(((7, 8), (9, 10)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokeNSRectAndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct2Arg_of_(((1, 2), (3, 4)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct2Arg_of_(((1, 2), (3, 4)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct2Arg_of_(((7, 8), (9, 10)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct2Arg_of_(((7, 8), (9, 10)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallNSRectAndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct3Arg_of_(((1, 2), (3, 4)), (1, 2), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct3Arg_of_(((1, 2), (3, 4)), (2, 4), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct3Arg_of_(((7, 8), (9, 10)), (1, 2), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct3Arg_of_(((7, 8), (9, 10)), (2, 4), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (2, 4))


    def testinvokeNSRectAndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct3Arg_of_(((1, 2), (3, 4)), (1, 2), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct3Arg_of_(((1, 2), (3, 4)), (2, 4), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct3Arg_of_(((7, 8), (9, 10)), (1, 2), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct3Arg_of_(((7, 8), (9, 10)), (2, 4), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (2, 4))


    def testcallNSRectAndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct4Arg_of_(((1, 2), (3, 4)), (1, 1<<60), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct4Arg_of_(((1, 2), (3, 4)), (2, 4), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct4Arg_of_(((7, 8), (9, 10)), (1, 1<<60), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct4Arg_of_(((7, 8), (9, 10)), (2, 4), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (2, 4))


    def testinvokeNSRectAndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct4Arg_of_(((1, 2), (3, 4)), (1, 1<<60), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct4Arg_of_(((1, 2), (3, 4)), (2, 4), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct4Arg_of_(((7, 8), (9, 10)), (1, 1<<60), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct4Arg_of_(((7, 8), (9, 10)), (2, 4), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (2, 4))


    def testcallNSRectAndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct5Arg_of_(((1, 2), (3, 4)), (1, 2.5), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct5Arg_of_(((1, 2), (3, 4)), (2, 4.5), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct5Arg_of_(((7, 8), (9, 10)), (1, 2.5), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callNSRectArg_andstructTestStruct5Arg_of_(((7, 8), (9, 10)), (2, 4.5), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (2, 4.5))


    def testinvokeNSRectAndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct5Arg_of_(((1, 2), (3, 4)), (1, 2.5), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct5Arg_of_(((1, 2), (3, 4)), (2, 4.5), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct5Arg_of_(((7, 8), (9, 10)), (1, 2.5), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokeNSRectArg_andstructTestStruct5Arg_of_(((7, 8), (9, 10)), (2, 4.5), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], (2, 4.5))


    def testcallstructTestStruct1AndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andboolArg_of_((1, 2, (1, 2, 3, 4, 5)), YES, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andboolArg_of_((1, 2, (1, 2, 3, 4, 5)), NO, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andboolArg_of_((9, 8, (-1, -2, -3, -4, -5)), YES, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andboolArg_of_((9, 8, (-1, -2, -3, -4, -5)), NO, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NO)


    def testinvokestructTestStruct1AndboolArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andboolArg_of_((1, 2, (1, 2, 3, 4, 5)), YES, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andboolArg_of_((1, 2, (1, 2, 3, 4, 5)), NO, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andboolArg_of_((9, 8, (-1, -2, -3, -4, -5)), YES, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andboolArg_of_((9, 8, (-1, -2, -3, -4, -5)), NO, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NO)


    def testcallstructTestStruct1AndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andBOOLArg_of_((1, 2, (1, 2, 3, 4, 5)), YES, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andBOOLArg_of_((1, 2, (1, 2, 3, 4, 5)), NO, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andBOOLArg_of_((9, 8, (-1, -2, -3, -4, -5)), YES, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andBOOLArg_of_((9, 8, (-1, -2, -3, -4, -5)), NO, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NO)


    def testinvokestructTestStruct1AndBOOLArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andBOOLArg_of_((1, 2, (1, 2, 3, 4, 5)), YES, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andBOOLArg_of_((1, 2, (1, 2, 3, 4, 5)), NO, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andBOOLArg_of_((9, 8, (-1, -2, -3, -4, -5)), YES, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andBOOLArg_of_((9, 8, (-1, -2, -3, -4, -5)), NO, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NO)


    def testcallstructTestStruct1AndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andcharArg_of_((1, 2, (1, 2, 3, 4, 5)), -128, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 127, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), -128, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 127, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 127)


    def testinvokestructTestStruct1AndcharArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andcharArg_of_((1, 2, (1, 2, 3, 4, 5)), -128, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 127, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), -128, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 127, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 127)


    def testcallstructTestStruct1AndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), -(1<<14), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), -42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 14, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), -(1<<14), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), -42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 14, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 14)


    def testinvokestructTestStruct1AndsignedshortArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), -(1<<14), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), -42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 14, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), -(1<<14), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), -42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 14, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 14)


    def testcallstructTestStruct1AndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), -(1<<30), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), -42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 30, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), -(1<<30), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), -42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct1AndsignedintArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), -(1<<30), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), -42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 30, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), -(1<<30), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), -42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct1AndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), -(1<<30), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), -42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 30, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), -(1<<30), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), -42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct1AndsignedlongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), -(1<<30), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), -42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 30, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), -(1<<30), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), -42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct1AndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), -(1 << 60), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), -42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 60, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), -(1 << 60), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), -42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 60, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 60)


    def testinvokestructTestStruct1AndsignedlonglongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), -(1 << 60), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), -42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 60, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), -(1 << 60), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), -42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 60, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 60)


    def testcallstructTestStruct1AndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 128, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 255, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 128, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 255, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 255)


    def testinvokestructTestStruct1AndunsignedcharArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 128, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 255, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 128, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 255, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 255)


    def testcallstructTestStruct1AndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 1<<14, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1<<14, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1<<14)


    def testinvokestructTestStruct1AndunsignedshortArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 1<<14, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1<<14, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1<<14)


    def testcallstructTestStruct1AndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 30, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct1AndunsignedintArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 30, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct1AndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 30, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct1AndunsignedlongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 30, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct1AndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 62, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andunsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 62, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 62)


    def testinvokestructTestStruct1AndunsignedlonglongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 62, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andunsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 62, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 62)


    def testcallstructTestStruct1AndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andfloatArg_of_((1, 2, (1, 2, 3, 4, 5)), 0.128, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andfloatArg_of_((1, 2, (1, 2, 3, 4, 5)), 1.0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andfloatArg_of_((1, 2, (1, 2, 3, 4, 5)), 42.0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andfloatArg_of_((1, 2, (1, 2, 3, 4, 5)), 1e10, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andfloatArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0.128, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andfloatArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1.0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andfloatArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42.0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andfloatArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1e10, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokestructTestStruct1AndfloatArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andfloatArg_of_((1, 2, (1, 2, 3, 4, 5)), 0.128, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andfloatArg_of_((1, 2, (1, 2, 3, 4, 5)), 1.0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andfloatArg_of_((1, 2, (1, 2, 3, 4, 5)), 42.0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andfloatArg_of_((1, 2, (1, 2, 3, 4, 5)), 1e10, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andfloatArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0.128, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andfloatArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1.0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andfloatArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42.0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andfloatArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1e10, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1e10)


    def testcallstructTestStruct1AnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_anddoubleArg_of_((1, 2, (1, 2, 3, 4, 5)), 0.128, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_anddoubleArg_of_((1, 2, (1, 2, 3, 4, 5)), 1.0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_anddoubleArg_of_((1, 2, (1, 2, 3, 4, 5)), 42.0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_anddoubleArg_of_((1, 2, (1, 2, 3, 4, 5)), 1e10, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_anddoubleArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0.128, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_anddoubleArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1.0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_anddoubleArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42.0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_anddoubleArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1e10, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokestructTestStruct1AnddoubleArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_anddoubleArg_of_((1, 2, (1, 2, 3, 4, 5)), 0.128, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_anddoubleArg_of_((1, 2, (1, 2, 3, 4, 5)), 1.0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_anddoubleArg_of_((1, 2, (1, 2, 3, 4, 5)), 42.0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_anddoubleArg_of_((1, 2, (1, 2, 3, 4, 5)), 1e10, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_anddoubleArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0.128, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_anddoubleArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1.0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_anddoubleArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42.0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_anddoubleArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1e10, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1e10)


    def testcallstructTestStruct1AndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andidArg_of_((1, 2, (1, 2, 3, 4, 5)), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andidArg_of_((9, 8, (-1, -2, -3, -4, -5)), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokestructTestStruct1AndidArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andidArg_of_((1, 2, (1, 2, 3, 4, 5)), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andidArg_of_((9, 8, (-1, -2, -3, -4, -5)), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallstructTestStruct1AndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andcharPtrArg_of_((1, 2, (1, 2, 3, 4, 5)), b"hello", o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andcharPtrArg_of_((1, 2, (1, 2, 3, 4, 5)), b"world", o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andcharPtrArg_of_((1, 2, (1, 2, 3, 4, 5)), b"foobar", o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andcharPtrArg_of_((9, 8, (-1, -2, -3, -4, -5)), b"hello", o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andcharPtrArg_of_((9, 8, (-1, -2, -3, -4, -5)), b"world", o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andcharPtrArg_of_((9, 8, (-1, -2, -3, -4, -5)), b"foobar", o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokestructTestStruct1AndcharPtrArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andcharPtrArg_of_((1, 2, (1, 2, 3, 4, 5)), b"hello", o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andcharPtrArg_of_((1, 2, (1, 2, 3, 4, 5)), b"world", o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andcharPtrArg_of_((1, 2, (1, 2, 3, 4, 5)), b"foobar", o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andcharPtrArg_of_((9, 8, (-1, -2, -3, -4, -5)), b"hello", o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andcharPtrArg_of_((9, 8, (-1, -2, -3, -4, -5)), b"world", o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andcharPtrArg_of_((9, 8, (-1, -2, -3, -4, -5)), b"foobar", o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallstructTestStruct1AndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andNSPointArg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andNSPointArg_of_((1, 2, (1, 2, 3, 4, 5)), (3, 4), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andNSPointArg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andNSPointArg_of_((9, 8, (-1, -2, -3, -4, -5)), (3, 4), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (3, 4))


    def testinvokestructTestStruct1AndNSPointArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andNSPointArg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andNSPointArg_of_((1, 2, (1, 2, 3, 4, 5)), (3, 4), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andNSPointArg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andNSPointArg_of_((9, 8, (-1, -2, -3, -4, -5)), (3, 4), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (3, 4))


    def testcallstructTestStruct1AndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andNSRectArg_of_((1, 2, (1, 2, 3, 4, 5)), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andNSRectArg_of_((1, 2, (1, 2, 3, 4, 5)), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andNSRectArg_of_((9, 8, (-1, -2, -3, -4, -5)), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andNSRectArg_of_((9, 8, (-1, -2, -3, -4, -5)), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokestructTestStruct1AndNSRectArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andNSRectArg_of_((1, 2, (1, 2, 3, 4, 5)), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andNSRectArg_of_((1, 2, (1, 2, 3, 4, 5)), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andNSRectArg_of_((9, 8, (-1, -2, -3, -4, -5)), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andNSRectArg_of_((9, 8, (-1, -2, -3, -4, -5)), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallstructTestStruct1AndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct1Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct1Arg_of_((1, 2, (1, 2, 3, 4, 5)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct1Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct1Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct1AndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct1Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct1Arg_of_((1, 2, (1, 2, 3, 4, 5)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct1Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct1Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct1AndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct2Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct2Arg_of_((1, 2, (1, 2, 3, 4, 5)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct2Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct2Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct1AndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct2Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct2Arg_of_((1, 2, (1, 2, 3, 4, 5)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct2Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct2Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct1AndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct3Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct3Arg_of_((1, 2, (1, 2, 3, 4, 5)), (2, 4), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct3Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct3Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (2, 4), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4))


    def testinvokestructTestStruct1AndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct3Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct3Arg_of_((1, 2, (1, 2, 3, 4, 5)), (2, 4), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct3Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct3Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (2, 4), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4))


    def testcallstructTestStruct1AndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct4Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 1<<60), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct4Arg_of_((1, 2, (1, 2, 3, 4, 5)), (2, 4), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct4Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 1<<60), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct4Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (2, 4), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4))


    def testinvokestructTestStruct1AndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct4Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 1<<60), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct4Arg_of_((1, 2, (1, 2, 3, 4, 5)), (2, 4), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct4Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 1<<60), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct4Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (2, 4), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4))


    def testcallstructTestStruct1AndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct5Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2.5), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct5Arg_of_((1, 2, (1, 2, 3, 4, 5)), (2, 4.5), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct5Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2.5), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callstructTestStruct1Arg_andstructTestStruct5Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (2, 4.5), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4.5))


    def testinvokestructTestStruct1AndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct5Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2.5), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct5Arg_of_((1, 2, (1, 2, 3, 4, 5)), (2, 4.5), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct5Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2.5), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokestructTestStruct1Arg_andstructTestStruct5Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (2, 4.5), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4.5))


    def testcallstructTestStruct2AndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andboolArg_of_((1, 2, (1, 2, 3, 4, 5)), YES, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andboolArg_of_((1, 2, (1, 2, 3, 4, 5)), NO, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andboolArg_of_((9, 8, (-1, -2, -3, -4, -5)), YES, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andboolArg_of_((9, 8, (-1, -2, -3, -4, -5)), NO, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NO)


    def testinvokestructTestStruct2AndboolArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andboolArg_of_((1, 2, (1, 2, 3, 4, 5)), YES, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andboolArg_of_((1, 2, (1, 2, 3, 4, 5)), NO, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andboolArg_of_((9, 8, (-1, -2, -3, -4, -5)), YES, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andboolArg_of_((9, 8, (-1, -2, -3, -4, -5)), NO, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NO)


    def testcallstructTestStruct2AndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andBOOLArg_of_((1, 2, (1, 2, 3, 4, 5)), YES, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andBOOLArg_of_((1, 2, (1, 2, 3, 4, 5)), NO, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andBOOLArg_of_((9, 8, (-1, -2, -3, -4, -5)), YES, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andBOOLArg_of_((9, 8, (-1, -2, -3, -4, -5)), NO, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NO)


    def testinvokestructTestStruct2AndBOOLArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andBOOLArg_of_((1, 2, (1, 2, 3, 4, 5)), YES, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andBOOLArg_of_((1, 2, (1, 2, 3, 4, 5)), NO, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andBOOLArg_of_((9, 8, (-1, -2, -3, -4, -5)), YES, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andBOOLArg_of_((9, 8, (-1, -2, -3, -4, -5)), NO, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NO)


    def testcallstructTestStruct2AndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andcharArg_of_((1, 2, (1, 2, 3, 4, 5)), -128, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 127, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), -128, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 127, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 127)


    def testinvokestructTestStruct2AndcharArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andcharArg_of_((1, 2, (1, 2, 3, 4, 5)), -128, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 127, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), -128, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 127, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 127)


    def testcallstructTestStruct2AndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), -(1<<14), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), -42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 14, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), -(1<<14), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), -42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 14, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 14)


    def testinvokestructTestStruct2AndsignedshortArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), -(1<<14), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), -42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 14, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), -(1<<14), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), -42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 14, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 14)


    def testcallstructTestStruct2AndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), -(1<<30), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), -42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 30, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), -(1<<30), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), -42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct2AndsignedintArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), -(1<<30), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), -42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 30, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), -(1<<30), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), -42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct2AndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), -(1<<30), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), -42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 30, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), -(1<<30), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), -42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct2AndsignedlongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), -(1<<30), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), -42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 30, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), -(1<<30), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), -42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct2AndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), -(1 << 60), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), -42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 60, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), -(1 << 60), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), -42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 60, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 60)


    def testinvokestructTestStruct2AndsignedlonglongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), -(1 << 60), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), -42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 60, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), -(1 << 60), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), -42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 60, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 60)


    def testcallstructTestStruct2AndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 128, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 255, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 128, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 255, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 255)


    def testinvokestructTestStruct2AndunsignedcharArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 128, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedcharArg_of_((1, 2, (1, 2, 3, 4, 5)), 255, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 128, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedcharArg_of_((9, 8, (-1, -2, -3, -4, -5)), 255, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 255)


    def testcallstructTestStruct2AndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 1<<14, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1<<14, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1<<14)


    def testinvokestructTestStruct2AndunsignedshortArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedshortArg_of_((1, 2, (1, 2, 3, 4, 5)), 1<<14, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedshortArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1<<14, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1<<14)


    def testcallstructTestStruct2AndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 30, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct2AndunsignedintArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedintArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 30, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedintArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct2AndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 30, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct2AndunsignedlongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedlongArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 30, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedlongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 30, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct2AndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 62, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andunsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 62, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 62)


    def testinvokestructTestStruct2AndunsignedlonglongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 42, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedlonglongArg_of_((1, 2, (1, 2, 3, 4, 5)), 1 << 62, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andunsignedlonglongArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1 << 62, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], 1 << 62)


    def testcallstructTestStruct2AndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andfloatArg_of_((1, 2, (1, 2, 3, 4, 5)), 0.128, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andfloatArg_of_((1, 2, (1, 2, 3, 4, 5)), 1.0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andfloatArg_of_((1, 2, (1, 2, 3, 4, 5)), 42.0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andfloatArg_of_((1, 2, (1, 2, 3, 4, 5)), 1e10, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andfloatArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0.128, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andfloatArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1.0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andfloatArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42.0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andfloatArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1e10, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokestructTestStruct2AndfloatArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andfloatArg_of_((1, 2, (1, 2, 3, 4, 5)), 0.128, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andfloatArg_of_((1, 2, (1, 2, 3, 4, 5)), 1.0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andfloatArg_of_((1, 2, (1, 2, 3, 4, 5)), 42.0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andfloatArg_of_((1, 2, (1, 2, 3, 4, 5)), 1e10, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andfloatArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0.128, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andfloatArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1.0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andfloatArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42.0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andfloatArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1e10, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1e10)


    def testcallstructTestStruct2AnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_anddoubleArg_of_((1, 2, (1, 2, 3, 4, 5)), 0.128, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_anddoubleArg_of_((1, 2, (1, 2, 3, 4, 5)), 1.0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_anddoubleArg_of_((1, 2, (1, 2, 3, 4, 5)), 42.0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_anddoubleArg_of_((1, 2, (1, 2, 3, 4, 5)), 1e10, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_anddoubleArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0.128, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_anddoubleArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1.0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_anddoubleArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42.0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_anddoubleArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1e10, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokestructTestStruct2AnddoubleArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_anddoubleArg_of_((1, 2, (1, 2, 3, 4, 5)), 0.128, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_anddoubleArg_of_((1, 2, (1, 2, 3, 4, 5)), 1.0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_anddoubleArg_of_((1, 2, (1, 2, 3, 4, 5)), 42.0, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_anddoubleArg_of_((1, 2, (1, 2, 3, 4, 5)), 1e10, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_anddoubleArg_of_((9, 8, (-1, -2, -3, -4, -5)), 0.128, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_anddoubleArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1.0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_anddoubleArg_of_((9, 8, (-1, -2, -3, -4, -5)), 42.0, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_anddoubleArg_of_((9, 8, (-1, -2, -3, -4, -5)), 1e10, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertAlmostEqual(r[1], 1e10)


    def testcallstructTestStruct2AndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andidArg_of_((1, 2, (1, 2, 3, 4, 5)), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andidArg_of_((9, 8, (-1, -2, -3, -4, -5)), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokestructTestStruct2AndidArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andidArg_of_((1, 2, (1, 2, 3, 4, 5)), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andidArg_of_((9, 8, (-1, -2, -3, -4, -5)), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallstructTestStruct2AndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andcharPtrArg_of_((1, 2, (1, 2, 3, 4, 5)), b"hello", o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andcharPtrArg_of_((1, 2, (1, 2, 3, 4, 5)), b"world", o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andcharPtrArg_of_((1, 2, (1, 2, 3, 4, 5)), b"foobar", o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andcharPtrArg_of_((9, 8, (-1, -2, -3, -4, -5)), b"hello", o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andcharPtrArg_of_((9, 8, (-1, -2, -3, -4, -5)), b"world", o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andcharPtrArg_of_((9, 8, (-1, -2, -3, -4, -5)), b"foobar", o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokestructTestStruct2AndcharPtrArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andcharPtrArg_of_((1, 2, (1, 2, 3, 4, 5)), b"hello", o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andcharPtrArg_of_((1, 2, (1, 2, 3, 4, 5)), b"world", o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andcharPtrArg_of_((1, 2, (1, 2, 3, 4, 5)), b"foobar", o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andcharPtrArg_of_((9, 8, (-1, -2, -3, -4, -5)), b"hello", o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andcharPtrArg_of_((9, 8, (-1, -2, -3, -4, -5)), b"world", o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andcharPtrArg_of_((9, 8, (-1, -2, -3, -4, -5)), b"foobar", o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallstructTestStruct2AndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andNSPointArg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andNSPointArg_of_((1, 2, (1, 2, 3, 4, 5)), (3, 4), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andNSPointArg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andNSPointArg_of_((9, 8, (-1, -2, -3, -4, -5)), (3, 4), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (3, 4))


    def testinvokestructTestStruct2AndNSPointArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andNSPointArg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andNSPointArg_of_((1, 2, (1, 2, 3, 4, 5)), (3, 4), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andNSPointArg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andNSPointArg_of_((9, 8, (-1, -2, -3, -4, -5)), (3, 4), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (3, 4))


    def testcallstructTestStruct2AndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andNSRectArg_of_((1, 2, (1, 2, 3, 4, 5)), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andNSRectArg_of_((1, 2, (1, 2, 3, 4, 5)), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andNSRectArg_of_((9, 8, (-1, -2, -3, -4, -5)), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andNSRectArg_of_((9, 8, (-1, -2, -3, -4, -5)), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokestructTestStruct2AndNSRectArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andNSRectArg_of_((1, 2, (1, 2, 3, 4, 5)), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andNSRectArg_of_((1, 2, (1, 2, 3, 4, 5)), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andNSRectArg_of_((9, 8, (-1, -2, -3, -4, -5)), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andNSRectArg_of_((9, 8, (-1, -2, -3, -4, -5)), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallstructTestStruct2AndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct1Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct1Arg_of_((1, 2, (1, 2, 3, 4, 5)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct1Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct1Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct2AndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct1Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct1Arg_of_((1, 2, (1, 2, 3, 4, 5)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct1Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct1Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct2AndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct2Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct2Arg_of_((1, 2, (1, 2, 3, 4, 5)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct2Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct2Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct2AndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct2Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct2Arg_of_((1, 2, (1, 2, 3, 4, 5)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct2Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct2Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct2AndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct3Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct3Arg_of_((1, 2, (1, 2, 3, 4, 5)), (2, 4), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct3Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct3Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (2, 4), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4))


    def testinvokestructTestStruct2AndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct3Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct3Arg_of_((1, 2, (1, 2, 3, 4, 5)), (2, 4), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct3Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct3Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (2, 4), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4))


    def testcallstructTestStruct2AndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct4Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 1<<60), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct4Arg_of_((1, 2, (1, 2, 3, 4, 5)), (2, 4), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct4Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 1<<60), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct4Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (2, 4), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4))


    def testinvokestructTestStruct2AndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct4Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 1<<60), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct4Arg_of_((1, 2, (1, 2, 3, 4, 5)), (2, 4), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct4Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 1<<60), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct4Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (2, 4), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4))


    def testcallstructTestStruct2AndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct5Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2.5), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct5Arg_of_((1, 2, (1, 2, 3, 4, 5)), (2, 4.5), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct5Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2.5), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callstructTestStruct2Arg_andstructTestStruct5Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (2, 4.5), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4.5))


    def testinvokestructTestStruct2AndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct5Arg_of_((1, 2, (1, 2, 3, 4, 5)), (1, 2.5), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct5Arg_of_((1, 2, (1, 2, 3, 4, 5)), (2, 4.5), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct5Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (1, 2.5), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokestructTestStruct2Arg_andstructTestStruct5Arg_of_((9, 8, (-1, -2, -3, -4, -5)), (2, 4.5), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (2, 4.5))


    def testcallstructTestStruct3AndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andboolArg_of_((1, 2), YES, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andboolArg_of_((1, 2), NO, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andboolArg_of_((2, 4), YES, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andboolArg_of_((2, 4), NO, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NO)


    def testinvokestructTestStruct3AndboolArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andboolArg_of_((1, 2), YES, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andboolArg_of_((1, 2), NO, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andboolArg_of_((2, 4), YES, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andboolArg_of_((2, 4), NO, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NO)


    def testcallstructTestStruct3AndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andBOOLArg_of_((1, 2), YES, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andBOOLArg_of_((1, 2), NO, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andBOOLArg_of_((2, 4), YES, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andBOOLArg_of_((2, 4), NO, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NO)


    def testinvokestructTestStruct3AndBOOLArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andBOOLArg_of_((1, 2), YES, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andBOOLArg_of_((1, 2), NO, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andBOOLArg_of_((2, 4), YES, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andBOOLArg_of_((2, 4), NO, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NO)


    def testcallstructTestStruct3AndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andcharArg_of_((1, 2), -128, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andcharArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andcharArg_of_((1, 2), 127, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andcharArg_of_((2, 4), -128, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andcharArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andcharArg_of_((2, 4), 127, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 127)


    def testinvokestructTestStruct3AndcharArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andcharArg_of_((1, 2), -128, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andcharArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andcharArg_of_((1, 2), 127, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andcharArg_of_((2, 4), -128, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andcharArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andcharArg_of_((2, 4), 127, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 127)


    def testcallstructTestStruct3AndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedshortArg_of_((1, 2), -(1<<14), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedshortArg_of_((1, 2), -42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedshortArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedshortArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedshortArg_of_((1, 2), 1 << 14, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedshortArg_of_((2, 4), -(1<<14), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedshortArg_of_((2, 4), -42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedshortArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedshortArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedshortArg_of_((2, 4), 1 << 14, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 14)


    def testinvokestructTestStruct3AndsignedshortArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedshortArg_of_((1, 2), -(1<<14), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedshortArg_of_((1, 2), -42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedshortArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedshortArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedshortArg_of_((1, 2), 1 << 14, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedshortArg_of_((2, 4), -(1<<14), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedshortArg_of_((2, 4), -42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedshortArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedshortArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedshortArg_of_((2, 4), 1 << 14, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 14)


    def testcallstructTestStruct3AndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedintArg_of_((1, 2), -(1<<30), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedintArg_of_((1, 2), -42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedintArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedintArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedintArg_of_((1, 2), 1 << 30, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedintArg_of_((2, 4), -(1<<30), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedintArg_of_((2, 4), -42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedintArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedintArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedintArg_of_((2, 4), 1 << 30, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct3AndsignedintArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedintArg_of_((1, 2), -(1<<30), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedintArg_of_((1, 2), -42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedintArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedintArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedintArg_of_((1, 2), 1 << 30, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedintArg_of_((2, 4), -(1<<30), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedintArg_of_((2, 4), -42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedintArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedintArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedintArg_of_((2, 4), 1 << 30, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct3AndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlongArg_of_((1, 2), -(1<<30), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlongArg_of_((1, 2), -42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlongArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlongArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlongArg_of_((1, 2), 1 << 30, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlongArg_of_((2, 4), -(1<<30), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlongArg_of_((2, 4), -42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlongArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlongArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlongArg_of_((2, 4), 1 << 30, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct3AndsignedlongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlongArg_of_((1, 2), -(1<<30), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlongArg_of_((1, 2), -42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlongArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlongArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlongArg_of_((1, 2), 1 << 30, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlongArg_of_((2, 4), -(1<<30), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlongArg_of_((2, 4), -42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlongArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlongArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlongArg_of_((2, 4), 1 << 30, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct3AndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlonglongArg_of_((1, 2), -(1 << 60), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlonglongArg_of_((1, 2), -42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlonglongArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlonglongArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlonglongArg_of_((1, 2), 1 << 60, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlonglongArg_of_((2, 4), -(1 << 60), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlonglongArg_of_((2, 4), -42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlonglongArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlonglongArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andsignedlonglongArg_of_((2, 4), 1 << 60, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 60)


    def testinvokestructTestStruct3AndsignedlonglongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlonglongArg_of_((1, 2), -(1 << 60), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlonglongArg_of_((1, 2), -42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlonglongArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlonglongArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlonglongArg_of_((1, 2), 1 << 60, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlonglongArg_of_((2, 4), -(1 << 60), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlonglongArg_of_((2, 4), -42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlonglongArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlonglongArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andsignedlonglongArg_of_((2, 4), 1 << 60, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 60)


    def testcallstructTestStruct3AndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedcharArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedcharArg_of_((1, 2), 128, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedcharArg_of_((1, 2), 255, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedcharArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedcharArg_of_((2, 4), 128, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedcharArg_of_((2, 4), 255, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 255)


    def testinvokestructTestStruct3AndunsignedcharArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedcharArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedcharArg_of_((1, 2), 128, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedcharArg_of_((1, 2), 255, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedcharArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedcharArg_of_((2, 4), 128, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedcharArg_of_((2, 4), 255, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 255)


    def testcallstructTestStruct3AndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedshortArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedshortArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedshortArg_of_((1, 2), 1<<14, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedshortArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedshortArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedshortArg_of_((2, 4), 1<<14, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1<<14)


    def testinvokestructTestStruct3AndunsignedshortArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedshortArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedshortArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedshortArg_of_((1, 2), 1<<14, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedshortArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedshortArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedshortArg_of_((2, 4), 1<<14, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1<<14)


    def testcallstructTestStruct3AndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedintArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedintArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedintArg_of_((1, 2), 1 << 30, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedintArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedintArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedintArg_of_((2, 4), 1 << 30, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct3AndunsignedintArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedintArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedintArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedintArg_of_((1, 2), 1 << 30, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedintArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedintArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedintArg_of_((2, 4), 1 << 30, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct3AndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedlongArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedlongArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedlongArg_of_((1, 2), 1 << 30, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedlongArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedlongArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedlongArg_of_((2, 4), 1 << 30, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct3AndunsignedlongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedlongArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedlongArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedlongArg_of_((1, 2), 1 << 30, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedlongArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedlongArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedlongArg_of_((2, 4), 1 << 30, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct3AndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedlonglongArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedlonglongArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedlonglongArg_of_((1, 2), 1 << 62, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedlonglongArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedlonglongArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andunsignedlonglongArg_of_((2, 4), 1 << 62, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 62)


    def testinvokestructTestStruct3AndunsignedlonglongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedlonglongArg_of_((1, 2), 0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedlonglongArg_of_((1, 2), 42, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedlonglongArg_of_((1, 2), 1 << 62, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedlonglongArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedlonglongArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andunsignedlonglongArg_of_((2, 4), 1 << 62, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 62)


    def testcallstructTestStruct3AndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andfloatArg_of_((1, 2), 0.128, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andfloatArg_of_((1, 2), 1.0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andfloatArg_of_((1, 2), 42.0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andfloatArg_of_((1, 2), 1e10, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andfloatArg_of_((2, 4), 0.128, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andfloatArg_of_((2, 4), 1.0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andfloatArg_of_((2, 4), 42.0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andfloatArg_of_((2, 4), 1e10, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokestructTestStruct3AndfloatArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andfloatArg_of_((1, 2), 0.128, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andfloatArg_of_((1, 2), 1.0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andfloatArg_of_((1, 2), 42.0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andfloatArg_of_((1, 2), 1e10, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andfloatArg_of_((2, 4), 0.128, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andfloatArg_of_((2, 4), 1.0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andfloatArg_of_((2, 4), 42.0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andfloatArg_of_((2, 4), 1e10, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def testcallstructTestStruct3AnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_anddoubleArg_of_((1, 2), 0.128, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_anddoubleArg_of_((1, 2), 1.0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_anddoubleArg_of_((1, 2), 42.0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_anddoubleArg_of_((1, 2), 1e10, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_anddoubleArg_of_((2, 4), 0.128, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_anddoubleArg_of_((2, 4), 1.0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_anddoubleArg_of_((2, 4), 42.0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_anddoubleArg_of_((2, 4), 1e10, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokestructTestStruct3AnddoubleArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_anddoubleArg_of_((1, 2), 0.128, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_anddoubleArg_of_((1, 2), 1.0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_anddoubleArg_of_((1, 2), 42.0, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_anddoubleArg_of_((1, 2), 1e10, o)
        self.assertEqual(r[0], (1, 2))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_anddoubleArg_of_((2, 4), 0.128, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_anddoubleArg_of_((2, 4), 1.0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_anddoubleArg_of_((2, 4), 42.0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_anddoubleArg_of_((2, 4), 1e10, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def testcallstructTestStruct3AndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andidArg_of_((1, 2), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andidArg_of_((2, 4), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokestructTestStruct3AndidArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andidArg_of_((1, 2), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andidArg_of_((2, 4), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallstructTestStruct3AndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andcharPtrArg_of_((1, 2), b"hello", o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andcharPtrArg_of_((1, 2), b"world", o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andcharPtrArg_of_((1, 2), b"foobar", o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andcharPtrArg_of_((2, 4), b"hello", o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andcharPtrArg_of_((2, 4), b"world", o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andcharPtrArg_of_((2, 4), b"foobar", o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokestructTestStruct3AndcharPtrArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andcharPtrArg_of_((1, 2), b"hello", o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andcharPtrArg_of_((1, 2), b"world", o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andcharPtrArg_of_((1, 2), b"foobar", o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andcharPtrArg_of_((2, 4), b"hello", o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andcharPtrArg_of_((2, 4), b"world", o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andcharPtrArg_of_((2, 4), b"foobar", o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallstructTestStruct3AndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andNSPointArg_of_((1, 2), (1, 2), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andNSPointArg_of_((1, 2), (3, 4), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andNSPointArg_of_((2, 4), (1, 2), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andNSPointArg_of_((2, 4), (3, 4), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (3, 4))


    def testinvokestructTestStruct3AndNSPointArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andNSPointArg_of_((1, 2), (1, 2), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andNSPointArg_of_((1, 2), (3, 4), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andNSPointArg_of_((2, 4), (1, 2), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andNSPointArg_of_((2, 4), (3, 4), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (3, 4))


    def testcallstructTestStruct3AndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andNSRectArg_of_((1, 2), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andNSRectArg_of_((1, 2), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andNSRectArg_of_((2, 4), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andNSRectArg_of_((2, 4), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokestructTestStruct3AndNSRectArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andNSRectArg_of_((1, 2), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andNSRectArg_of_((1, 2), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andNSRectArg_of_((2, 4), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andNSRectArg_of_((2, 4), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallstructTestStruct3AndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct1Arg_of_((1, 2), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct1Arg_of_((1, 2), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct1Arg_of_((2, 4), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct1Arg_of_((2, 4), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct3AndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct1Arg_of_((1, 2), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct1Arg_of_((1, 2), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct1Arg_of_((2, 4), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct1Arg_of_((2, 4), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct3AndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct2Arg_of_((1, 2), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct2Arg_of_((1, 2), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct2Arg_of_((2, 4), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct2Arg_of_((2, 4), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct3AndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct2Arg_of_((1, 2), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct2Arg_of_((1, 2), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct2Arg_of_((2, 4), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct2Arg_of_((2, 4), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct3AndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct3Arg_of_((1, 2), (1, 2), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct3Arg_of_((1, 2), (2, 4), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct3Arg_of_((2, 4), (1, 2), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct3Arg_of_((2, 4), (2, 4), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4))


    def testinvokestructTestStruct3AndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct3Arg_of_((1, 2), (1, 2), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct3Arg_of_((1, 2), (2, 4), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct3Arg_of_((2, 4), (1, 2), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct3Arg_of_((2, 4), (2, 4), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4))


    def testcallstructTestStruct3AndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct4Arg_of_((1, 2), (1, 1<<60), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct4Arg_of_((1, 2), (2, 4), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct4Arg_of_((2, 4), (1, 1<<60), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct4Arg_of_((2, 4), (2, 4), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4))


    def testinvokestructTestStruct3AndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct4Arg_of_((1, 2), (1, 1<<60), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct4Arg_of_((1, 2), (2, 4), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct4Arg_of_((2, 4), (1, 1<<60), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct4Arg_of_((2, 4), (2, 4), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4))


    def testcallstructTestStruct3AndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct5Arg_of_((1, 2), (1, 2.5), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct5Arg_of_((1, 2), (2, 4.5), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct5Arg_of_((2, 4), (1, 2.5), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callstructTestStruct3Arg_andstructTestStruct5Arg_of_((2, 4), (2, 4.5), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4.5))


    def testinvokestructTestStruct3AndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct5Arg_of_((1, 2), (1, 2.5), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct5Arg_of_((1, 2), (2, 4.5), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct5Arg_of_((2, 4), (1, 2.5), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokestructTestStruct3Arg_andstructTestStruct5Arg_of_((2, 4), (2, 4.5), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4.5))


    def testcallstructTestStruct4AndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andboolArg_of_((1, 1<<60), YES, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andboolArg_of_((1, 1<<60), NO, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andboolArg_of_((2, 4), YES, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andboolArg_of_((2, 4), NO, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NO)


    def testinvokestructTestStruct4AndboolArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andboolArg_of_((1, 1<<60), YES, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andboolArg_of_((1, 1<<60), NO, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andboolArg_of_((2, 4), YES, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andboolArg_of_((2, 4), NO, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NO)


    def testcallstructTestStruct4AndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andBOOLArg_of_((1, 1<<60), YES, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andBOOLArg_of_((1, 1<<60), NO, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andBOOLArg_of_((2, 4), YES, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andBOOLArg_of_((2, 4), NO, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NO)


    def testinvokestructTestStruct4AndBOOLArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andBOOLArg_of_((1, 1<<60), YES, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andBOOLArg_of_((1, 1<<60), NO, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andBOOLArg_of_((2, 4), YES, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andBOOLArg_of_((2, 4), NO, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NO)


    def testcallstructTestStruct4AndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andcharArg_of_((1, 1<<60), -128, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andcharArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andcharArg_of_((1, 1<<60), 127, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andcharArg_of_((2, 4), -128, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andcharArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andcharArg_of_((2, 4), 127, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 127)


    def testinvokestructTestStruct4AndcharArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andcharArg_of_((1, 1<<60), -128, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andcharArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andcharArg_of_((1, 1<<60), 127, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andcharArg_of_((2, 4), -128, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andcharArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andcharArg_of_((2, 4), 127, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 127)


    def testcallstructTestStruct4AndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedshortArg_of_((1, 1<<60), -(1<<14), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedshortArg_of_((1, 1<<60), -42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedshortArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedshortArg_of_((1, 1<<60), 42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedshortArg_of_((1, 1<<60), 1 << 14, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedshortArg_of_((2, 4), -(1<<14), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedshortArg_of_((2, 4), -42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedshortArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedshortArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedshortArg_of_((2, 4), 1 << 14, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 14)


    def testinvokestructTestStruct4AndsignedshortArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedshortArg_of_((1, 1<<60), -(1<<14), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedshortArg_of_((1, 1<<60), -42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedshortArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedshortArg_of_((1, 1<<60), 42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedshortArg_of_((1, 1<<60), 1 << 14, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedshortArg_of_((2, 4), -(1<<14), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedshortArg_of_((2, 4), -42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedshortArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedshortArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedshortArg_of_((2, 4), 1 << 14, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 14)


    def testcallstructTestStruct4AndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedintArg_of_((1, 1<<60), -(1<<30), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedintArg_of_((1, 1<<60), -42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedintArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedintArg_of_((1, 1<<60), 42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedintArg_of_((1, 1<<60), 1 << 30, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedintArg_of_((2, 4), -(1<<30), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedintArg_of_((2, 4), -42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedintArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedintArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedintArg_of_((2, 4), 1 << 30, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct4AndsignedintArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedintArg_of_((1, 1<<60), -(1<<30), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedintArg_of_((1, 1<<60), -42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedintArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedintArg_of_((1, 1<<60), 42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedintArg_of_((1, 1<<60), 1 << 30, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedintArg_of_((2, 4), -(1<<30), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedintArg_of_((2, 4), -42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedintArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedintArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedintArg_of_((2, 4), 1 << 30, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct4AndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlongArg_of_((1, 1<<60), -(1<<30), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlongArg_of_((1, 1<<60), -42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlongArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlongArg_of_((1, 1<<60), 42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlongArg_of_((1, 1<<60), 1 << 30, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlongArg_of_((2, 4), -(1<<30), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlongArg_of_((2, 4), -42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlongArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlongArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlongArg_of_((2, 4), 1 << 30, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct4AndsignedlongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlongArg_of_((1, 1<<60), -(1<<30), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlongArg_of_((1, 1<<60), -42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlongArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlongArg_of_((1, 1<<60), 42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlongArg_of_((1, 1<<60), 1 << 30, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlongArg_of_((2, 4), -(1<<30), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlongArg_of_((2, 4), -42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlongArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlongArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlongArg_of_((2, 4), 1 << 30, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct4AndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlonglongArg_of_((1, 1<<60), -(1 << 60), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlonglongArg_of_((1, 1<<60), -42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlonglongArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlonglongArg_of_((1, 1<<60), 42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlonglongArg_of_((1, 1<<60), 1 << 60, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlonglongArg_of_((2, 4), -(1 << 60), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlonglongArg_of_((2, 4), -42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlonglongArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlonglongArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andsignedlonglongArg_of_((2, 4), 1 << 60, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 60)


    def testinvokestructTestStruct4AndsignedlonglongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlonglongArg_of_((1, 1<<60), -(1 << 60), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlonglongArg_of_((1, 1<<60), -42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlonglongArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlonglongArg_of_((1, 1<<60), 42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlonglongArg_of_((1, 1<<60), 1 << 60, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlonglongArg_of_((2, 4), -(1 << 60), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlonglongArg_of_((2, 4), -42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlonglongArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlonglongArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andsignedlonglongArg_of_((2, 4), 1 << 60, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 60)


    def testcallstructTestStruct4AndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedcharArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedcharArg_of_((1, 1<<60), 128, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedcharArg_of_((1, 1<<60), 255, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedcharArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedcharArg_of_((2, 4), 128, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedcharArg_of_((2, 4), 255, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 255)


    def testinvokestructTestStruct4AndunsignedcharArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedcharArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedcharArg_of_((1, 1<<60), 128, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedcharArg_of_((1, 1<<60), 255, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedcharArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedcharArg_of_((2, 4), 128, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedcharArg_of_((2, 4), 255, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 255)


    def testcallstructTestStruct4AndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedshortArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedshortArg_of_((1, 1<<60), 42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedshortArg_of_((1, 1<<60), 1<<14, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedshortArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedshortArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedshortArg_of_((2, 4), 1<<14, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1<<14)


    def testinvokestructTestStruct4AndunsignedshortArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedshortArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedshortArg_of_((1, 1<<60), 42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedshortArg_of_((1, 1<<60), 1<<14, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedshortArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedshortArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedshortArg_of_((2, 4), 1<<14, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1<<14)


    def testcallstructTestStruct4AndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedintArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedintArg_of_((1, 1<<60), 42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedintArg_of_((1, 1<<60), 1 << 30, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedintArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedintArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedintArg_of_((2, 4), 1 << 30, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct4AndunsignedintArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedintArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedintArg_of_((1, 1<<60), 42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedintArg_of_((1, 1<<60), 1 << 30, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedintArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedintArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedintArg_of_((2, 4), 1 << 30, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct4AndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedlongArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedlongArg_of_((1, 1<<60), 42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedlongArg_of_((1, 1<<60), 1 << 30, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedlongArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedlongArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedlongArg_of_((2, 4), 1 << 30, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct4AndunsignedlongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedlongArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedlongArg_of_((1, 1<<60), 42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedlongArg_of_((1, 1<<60), 1 << 30, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedlongArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedlongArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedlongArg_of_((2, 4), 1 << 30, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct4AndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedlonglongArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedlonglongArg_of_((1, 1<<60), 42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedlonglongArg_of_((1, 1<<60), 1 << 62, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedlonglongArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedlonglongArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andunsignedlonglongArg_of_((2, 4), 1 << 62, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 62)


    def testinvokestructTestStruct4AndunsignedlonglongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedlonglongArg_of_((1, 1<<60), 0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedlonglongArg_of_((1, 1<<60), 42, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedlonglongArg_of_((1, 1<<60), 1 << 62, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedlonglongArg_of_((2, 4), 0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedlonglongArg_of_((2, 4), 42, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andunsignedlonglongArg_of_((2, 4), 1 << 62, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], 1 << 62)


    def testcallstructTestStruct4AndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andfloatArg_of_((1, 1<<60), 0.128, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andfloatArg_of_((1, 1<<60), 1.0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andfloatArg_of_((1, 1<<60), 42.0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andfloatArg_of_((1, 1<<60), 1e10, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andfloatArg_of_((2, 4), 0.128, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andfloatArg_of_((2, 4), 1.0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andfloatArg_of_((2, 4), 42.0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andfloatArg_of_((2, 4), 1e10, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokestructTestStruct4AndfloatArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andfloatArg_of_((1, 1<<60), 0.128, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andfloatArg_of_((1, 1<<60), 1.0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andfloatArg_of_((1, 1<<60), 42.0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andfloatArg_of_((1, 1<<60), 1e10, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andfloatArg_of_((2, 4), 0.128, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andfloatArg_of_((2, 4), 1.0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andfloatArg_of_((2, 4), 42.0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andfloatArg_of_((2, 4), 1e10, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def testcallstructTestStruct4AnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_anddoubleArg_of_((1, 1<<60), 0.128, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_anddoubleArg_of_((1, 1<<60), 1.0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_anddoubleArg_of_((1, 1<<60), 42.0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_anddoubleArg_of_((1, 1<<60), 1e10, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_anddoubleArg_of_((2, 4), 0.128, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_anddoubleArg_of_((2, 4), 1.0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_anddoubleArg_of_((2, 4), 42.0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_anddoubleArg_of_((2, 4), 1e10, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokestructTestStruct4AnddoubleArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_anddoubleArg_of_((1, 1<<60), 0.128, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_anddoubleArg_of_((1, 1<<60), 1.0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_anddoubleArg_of_((1, 1<<60), 42.0, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_anddoubleArg_of_((1, 1<<60), 1e10, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_anddoubleArg_of_((2, 4), 0.128, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_anddoubleArg_of_((2, 4), 1.0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_anddoubleArg_of_((2, 4), 42.0, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_anddoubleArg_of_((2, 4), 1e10, o)
        self.assertEqual(r[0], (2, 4))
        self.assertAlmostEqual(r[1], 1e10)


    def testcallstructTestStruct4AndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andidArg_of_((1, 1<<60), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andidArg_of_((2, 4), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokestructTestStruct4AndidArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andidArg_of_((1, 1<<60), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andidArg_of_((2, 4), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallstructTestStruct4AndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andcharPtrArg_of_((1, 1<<60), b"hello", o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andcharPtrArg_of_((1, 1<<60), b"world", o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andcharPtrArg_of_((1, 1<<60), b"foobar", o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andcharPtrArg_of_((2, 4), b"hello", o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andcharPtrArg_of_((2, 4), b"world", o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andcharPtrArg_of_((2, 4), b"foobar", o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokestructTestStruct4AndcharPtrArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andcharPtrArg_of_((1, 1<<60), b"hello", o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andcharPtrArg_of_((1, 1<<60), b"world", o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andcharPtrArg_of_((1, 1<<60), b"foobar", o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andcharPtrArg_of_((2, 4), b"hello", o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andcharPtrArg_of_((2, 4), b"world", o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andcharPtrArg_of_((2, 4), b"foobar", o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallstructTestStruct4AndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andNSPointArg_of_((1, 1<<60), (1, 2), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andNSPointArg_of_((1, 1<<60), (3, 4), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andNSPointArg_of_((2, 4), (1, 2), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andNSPointArg_of_((2, 4), (3, 4), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (3, 4))


    def testinvokestructTestStruct4AndNSPointArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andNSPointArg_of_((1, 1<<60), (1, 2), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andNSPointArg_of_((1, 1<<60), (3, 4), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andNSPointArg_of_((2, 4), (1, 2), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andNSPointArg_of_((2, 4), (3, 4), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (3, 4))


    def testcallstructTestStruct4AndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andNSRectArg_of_((1, 1<<60), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andNSRectArg_of_((1, 1<<60), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andNSRectArg_of_((2, 4), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andNSRectArg_of_((2, 4), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokestructTestStruct4AndNSRectArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andNSRectArg_of_((1, 1<<60), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andNSRectArg_of_((1, 1<<60), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andNSRectArg_of_((2, 4), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andNSRectArg_of_((2, 4), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallstructTestStruct4AndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct1Arg_of_((1, 1<<60), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct1Arg_of_((1, 1<<60), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct1Arg_of_((2, 4), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct1Arg_of_((2, 4), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct4AndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct1Arg_of_((1, 1<<60), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct1Arg_of_((1, 1<<60), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct1Arg_of_((2, 4), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct1Arg_of_((2, 4), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct4AndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct2Arg_of_((1, 1<<60), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct2Arg_of_((1, 1<<60), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct2Arg_of_((2, 4), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct2Arg_of_((2, 4), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct4AndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct2Arg_of_((1, 1<<60), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct2Arg_of_((1, 1<<60), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct2Arg_of_((2, 4), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct2Arg_of_((2, 4), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct4AndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct3Arg_of_((1, 1<<60), (1, 2), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct3Arg_of_((1, 1<<60), (2, 4), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct3Arg_of_((2, 4), (1, 2), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct3Arg_of_((2, 4), (2, 4), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4))


    def testinvokestructTestStruct4AndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct3Arg_of_((1, 1<<60), (1, 2), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct3Arg_of_((1, 1<<60), (2, 4), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct3Arg_of_((2, 4), (1, 2), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct3Arg_of_((2, 4), (2, 4), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4))


    def testcallstructTestStruct4AndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct4Arg_of_((1, 1<<60), (1, 1<<60), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct4Arg_of_((1, 1<<60), (2, 4), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct4Arg_of_((2, 4), (1, 1<<60), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct4Arg_of_((2, 4), (2, 4), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4))


    def testinvokestructTestStruct4AndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct4Arg_of_((1, 1<<60), (1, 1<<60), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct4Arg_of_((1, 1<<60), (2, 4), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct4Arg_of_((2, 4), (1, 1<<60), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct4Arg_of_((2, 4), (2, 4), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4))


    def testcallstructTestStruct4AndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct5Arg_of_((1, 1<<60), (1, 2.5), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct5Arg_of_((1, 1<<60), (2, 4.5), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct5Arg_of_((2, 4), (1, 2.5), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callstructTestStruct4Arg_andstructTestStruct5Arg_of_((2, 4), (2, 4.5), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4.5))


    def testinvokestructTestStruct4AndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct5Arg_of_((1, 1<<60), (1, 2.5), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct5Arg_of_((1, 1<<60), (2, 4.5), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct5Arg_of_((2, 4), (1, 2.5), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokestructTestStruct4Arg_andstructTestStruct5Arg_of_((2, 4), (2, 4.5), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (2, 4.5))


    def testcallstructTestStruct5AndboolArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andboolArg_of_((1, 2.5), YES, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andboolArg_of_((1, 2.5), NO, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andboolArg_of_((2, 4.5), YES, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andboolArg_of_((2, 4.5), NO, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], NO)


    def testinvokestructTestStruct5AndboolArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andboolArg_of_((1, 2.5), YES, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andboolArg_of_((1, 2.5), NO, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andboolArg_of_((2, 4.5), YES, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andboolArg_of_((2, 4.5), NO, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], NO)


    def testcallstructTestStruct5AndBOOLArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andBOOLArg_of_((1, 2.5), YES, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andBOOLArg_of_((1, 2.5), NO, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andBOOLArg_of_((2, 4.5), YES, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andBOOLArg_of_((2, 4.5), NO, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], NO)


    def testinvokestructTestStruct5AndBOOLArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andBOOLArg_of_((1, 2.5), YES, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andBOOLArg_of_((1, 2.5), NO, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], NO)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andBOOLArg_of_((2, 4.5), YES, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andBOOLArg_of_((2, 4.5), NO, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], NO)


    def testcallstructTestStruct5AndcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andcharArg_of_((1, 2.5), -128, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andcharArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andcharArg_of_((1, 2.5), 127, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andcharArg_of_((2, 4.5), -128, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andcharArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andcharArg_of_((2, 4.5), 127, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 127)


    def testinvokestructTestStruct5AndcharArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andcharArg_of_((1, 2.5), -128, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andcharArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andcharArg_of_((1, 2.5), 127, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 127)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andcharArg_of_((2, 4.5), -128, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andcharArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andcharArg_of_((2, 4.5), 127, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 127)


    def testcallstructTestStruct5AndsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedshortArg_of_((1, 2.5), -(1<<14), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedshortArg_of_((1, 2.5), -42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedshortArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedshortArg_of_((1, 2.5), 42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedshortArg_of_((1, 2.5), 1 << 14, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedshortArg_of_((2, 4.5), -(1<<14), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedshortArg_of_((2, 4.5), -42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedshortArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedshortArg_of_((2, 4.5), 42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedshortArg_of_((2, 4.5), 1 << 14, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 14)


    def testinvokestructTestStruct5AndsignedshortArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedshortArg_of_((1, 2.5), -(1<<14), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedshortArg_of_((1, 2.5), -42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedshortArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedshortArg_of_((1, 2.5), 42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedshortArg_of_((1, 2.5), 1 << 14, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 14)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedshortArg_of_((2, 4.5), -(1<<14), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedshortArg_of_((2, 4.5), -42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedshortArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedshortArg_of_((2, 4.5), 42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedshortArg_of_((2, 4.5), 1 << 14, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 14)


    def testcallstructTestStruct5AndsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedintArg_of_((1, 2.5), -(1<<30), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedintArg_of_((1, 2.5), -42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedintArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedintArg_of_((1, 2.5), 42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedintArg_of_((1, 2.5), 1 << 30, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedintArg_of_((2, 4.5), -(1<<30), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedintArg_of_((2, 4.5), -42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedintArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedintArg_of_((2, 4.5), 42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedintArg_of_((2, 4.5), 1 << 30, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct5AndsignedintArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedintArg_of_((1, 2.5), -(1<<30), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedintArg_of_((1, 2.5), -42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedintArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedintArg_of_((1, 2.5), 42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedintArg_of_((1, 2.5), 1 << 30, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedintArg_of_((2, 4.5), -(1<<30), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedintArg_of_((2, 4.5), -42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedintArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedintArg_of_((2, 4.5), 42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedintArg_of_((2, 4.5), 1 << 30, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct5AndsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlongArg_of_((1, 2.5), -(1<<30), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlongArg_of_((1, 2.5), -42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlongArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlongArg_of_((1, 2.5), 42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlongArg_of_((1, 2.5), 1 << 30, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlongArg_of_((2, 4.5), -(1<<30), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlongArg_of_((2, 4.5), -42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlongArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlongArg_of_((2, 4.5), 42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlongArg_of_((2, 4.5), 1 << 30, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct5AndsignedlongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlongArg_of_((1, 2.5), -(1<<30), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlongArg_of_((1, 2.5), -42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlongArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlongArg_of_((1, 2.5), 42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlongArg_of_((1, 2.5), 1 << 30, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlongArg_of_((2, 4.5), -(1<<30), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlongArg_of_((2, 4.5), -42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlongArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlongArg_of_((2, 4.5), 42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlongArg_of_((2, 4.5), 1 << 30, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct5AndsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlonglongArg_of_((1, 2.5), -(1 << 60), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlonglongArg_of_((1, 2.5), -42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlonglongArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlonglongArg_of_((1, 2.5), 42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlonglongArg_of_((1, 2.5), 1 << 60, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlonglongArg_of_((2, 4.5), -(1 << 60), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlonglongArg_of_((2, 4.5), -42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlonglongArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlonglongArg_of_((2, 4.5), 42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andsignedlonglongArg_of_((2, 4.5), 1 << 60, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 60)


    def testinvokestructTestStruct5AndsignedlonglongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlonglongArg_of_((1, 2.5), -(1 << 60), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlonglongArg_of_((1, 2.5), -42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlonglongArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlonglongArg_of_((1, 2.5), 42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlonglongArg_of_((1, 2.5), 1 << 60, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 60)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlonglongArg_of_((2, 4.5), -(1 << 60), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlonglongArg_of_((2, 4.5), -42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlonglongArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlonglongArg_of_((2, 4.5), 42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andsignedlonglongArg_of_((2, 4.5), 1 << 60, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 60)


    def testcallstructTestStruct5AndunsignedcharArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedcharArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedcharArg_of_((1, 2.5), 128, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedcharArg_of_((1, 2.5), 255, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedcharArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedcharArg_of_((2, 4.5), 128, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedcharArg_of_((2, 4.5), 255, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 255)


    def testinvokestructTestStruct5AndunsignedcharArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedcharArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedcharArg_of_((1, 2.5), 128, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedcharArg_of_((1, 2.5), 255, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 255)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedcharArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedcharArg_of_((2, 4.5), 128, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedcharArg_of_((2, 4.5), 255, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 255)


    def testcallstructTestStruct5AndunsignedshortArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedshortArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedshortArg_of_((1, 2.5), 42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedshortArg_of_((1, 2.5), 1<<14, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedshortArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedshortArg_of_((2, 4.5), 42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedshortArg_of_((2, 4.5), 1<<14, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1<<14)


    def testinvokestructTestStruct5AndunsignedshortArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedshortArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedshortArg_of_((1, 2.5), 42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedshortArg_of_((1, 2.5), 1<<14, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1<<14)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedshortArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedshortArg_of_((2, 4.5), 42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedshortArg_of_((2, 4.5), 1<<14, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1<<14)


    def testcallstructTestStruct5AndunsignedintArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedintArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedintArg_of_((1, 2.5), 42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedintArg_of_((1, 2.5), 1 << 30, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedintArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedintArg_of_((2, 4.5), 42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedintArg_of_((2, 4.5), 1 << 30, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct5AndunsignedintArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedintArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedintArg_of_((1, 2.5), 42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedintArg_of_((1, 2.5), 1 << 30, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedintArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedintArg_of_((2, 4.5), 42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedintArg_of_((2, 4.5), 1 << 30, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct5AndunsignedlongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedlongArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedlongArg_of_((1, 2.5), 42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedlongArg_of_((1, 2.5), 1 << 30, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedlongArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedlongArg_of_((2, 4.5), 42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedlongArg_of_((2, 4.5), 1 << 30, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 30)


    def testinvokestructTestStruct5AndunsignedlongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedlongArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedlongArg_of_((1, 2.5), 42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedlongArg_of_((1, 2.5), 1 << 30, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 30)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedlongArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedlongArg_of_((2, 4.5), 42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedlongArg_of_((2, 4.5), 1 << 30, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 30)


    def testcallstructTestStruct5AndunsignedlonglongArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedlonglongArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedlonglongArg_of_((1, 2.5), 42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedlonglongArg_of_((1, 2.5), 1 << 62, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedlonglongArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedlonglongArg_of_((2, 4.5), 42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andunsignedlonglongArg_of_((2, 4.5), 1 << 62, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 62)


    def testinvokestructTestStruct5AndunsignedlonglongArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedlonglongArg_of_((1, 2.5), 0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedlonglongArg_of_((1, 2.5), 42, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedlonglongArg_of_((1, 2.5), 1 << 62, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], 1 << 62)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedlonglongArg_of_((2, 4.5), 0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedlonglongArg_of_((2, 4.5), 42, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andunsignedlonglongArg_of_((2, 4.5), 1 << 62, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], 1 << 62)


    def testcallstructTestStruct5AndfloatArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andfloatArg_of_((1, 2.5), 0.128, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andfloatArg_of_((1, 2.5), 1.0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andfloatArg_of_((1, 2.5), 42.0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andfloatArg_of_((1, 2.5), 1e10, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andfloatArg_of_((2, 4.5), 0.128, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andfloatArg_of_((2, 4.5), 1.0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andfloatArg_of_((2, 4.5), 42.0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andfloatArg_of_((2, 4.5), 1e10, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokestructTestStruct5AndfloatArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andfloatArg_of_((1, 2.5), 0.128, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andfloatArg_of_((1, 2.5), 1.0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andfloatArg_of_((1, 2.5), 42.0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andfloatArg_of_((1, 2.5), 1e10, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andfloatArg_of_((2, 4.5), 0.128, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andfloatArg_of_((2, 4.5), 1.0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andfloatArg_of_((2, 4.5), 42.0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andfloatArg_of_((2, 4.5), 1e10, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 1e10)


    def testcallstructTestStruct5AnddoubleArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_anddoubleArg_of_((1, 2.5), 0.128, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_anddoubleArg_of_((1, 2.5), 1.0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_anddoubleArg_of_((1, 2.5), 42.0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_anddoubleArg_of_((1, 2.5), 1e10, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_anddoubleArg_of_((2, 4.5), 0.128, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_anddoubleArg_of_((2, 4.5), 1.0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_anddoubleArg_of_((2, 4.5), 42.0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_anddoubleArg_of_((2, 4.5), 1e10, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokestructTestStruct5AnddoubleArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_anddoubleArg_of_((1, 2.5), 0.128, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_anddoubleArg_of_((1, 2.5), 1.0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_anddoubleArg_of_((1, 2.5), 42.0, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_anddoubleArg_of_((1, 2.5), 1e10, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertAlmostEqual(r[1], 1e10)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_anddoubleArg_of_((2, 4.5), 0.128, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_anddoubleArg_of_((2, 4.5), 1.0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_anddoubleArg_of_((2, 4.5), 42.0, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_anddoubleArg_of_((2, 4.5), 1e10, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertAlmostEqual(r[1], 1e10)


    def testcallstructTestStruct5AndidArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andidArg_of_((1, 2.5), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andidArg_of_((2, 4.5), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokestructTestStruct5AndidArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andidArg_of_((1, 2.5), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], NSPriorDayDesignations)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andidArg_of_((2, 4.5), NSPriorDayDesignations, o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallstructTestStruct5AndcharPtrArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andcharPtrArg_of_((1, 2.5), b"hello", o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andcharPtrArg_of_((1, 2.5), b"world", o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andcharPtrArg_of_((1, 2.5), b"foobar", o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andcharPtrArg_of_((2, 4.5), b"hello", o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andcharPtrArg_of_((2, 4.5), b"world", o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andcharPtrArg_of_((2, 4.5), b"foobar", o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], unicode(b"foobar"))


    def testinvokestructTestStruct5AndcharPtrArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andcharPtrArg_of_((1, 2.5), b"hello", o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andcharPtrArg_of_((1, 2.5), b"world", o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andcharPtrArg_of_((1, 2.5), b"foobar", o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], unicode(b"foobar"))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andcharPtrArg_of_((2, 4.5), b"hello", o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], unicode(b"hello"))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andcharPtrArg_of_((2, 4.5), b"world", o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], unicode(b"world"))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andcharPtrArg_of_((2, 4.5), b"foobar", o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], unicode(b"foobar"))


    def testcallstructTestStruct5AndNSPointArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andNSPointArg_of_((1, 2.5), (1, 2), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andNSPointArg_of_((1, 2.5), (3, 4), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andNSPointArg_of_((2, 4.5), (1, 2), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andNSPointArg_of_((2, 4.5), (3, 4), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (3, 4))


    def testinvokestructTestStruct5AndNSPointArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andNSPointArg_of_((1, 2.5), (1, 2), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andNSPointArg_of_((1, 2.5), (3, 4), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (3, 4))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andNSPointArg_of_((2, 4.5), (1, 2), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andNSPointArg_of_((2, 4.5), (3, 4), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (3, 4))


    def testcallstructTestStruct5AndNSRectArg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andNSRectArg_of_((1, 2.5), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andNSRectArg_of_((1, 2.5), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andNSRectArg_of_((2, 4.5), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andNSRectArg_of_((2, 4.5), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokestructTestStruct5AndNSRectArg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andNSRectArg_of_((1, 2.5), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andNSRectArg_of_((1, 2.5), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], ((7, 8), (9, 10)))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andNSRectArg_of_((2, 4.5), ((1, 2), (3, 4)), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andNSRectArg_of_((2, 4.5), ((7, 8), (9, 10)), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallstructTestStruct5AndstructTestStruct1Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct1Arg_of_((1, 2.5), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct1Arg_of_((1, 2.5), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct1Arg_of_((2, 4.5), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct1Arg_of_((2, 4.5), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct5AndstructTestStruct1Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct1Arg_of_((1, 2.5), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct1Arg_of_((1, 2.5), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct1Arg_of_((2, 4.5), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct1Arg_of_((2, 4.5), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct5AndstructTestStruct2Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct2Arg_of_((1, 2.5), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct2Arg_of_((1, 2.5), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct2Arg_of_((2, 4.5), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct2Arg_of_((2, 4.5), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct5AndstructTestStruct2Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct2Arg_of_((1, 2.5), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct2Arg_of_((1, 2.5), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct2Arg_of_((2, 4.5), (1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct2Arg_of_((2, 4.5), (9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct5AndstructTestStruct3Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct3Arg_of_((1, 2.5), (1, 2), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct3Arg_of_((1, 2.5), (2, 4), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct3Arg_of_((2, 4.5), (1, 2), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct3Arg_of_((2, 4.5), (2, 4), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (2, 4))


    def testinvokestructTestStruct5AndstructTestStruct3Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct3Arg_of_((1, 2.5), (1, 2), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct3Arg_of_((1, 2.5), (2, 4), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct3Arg_of_((2, 4.5), (1, 2), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct3Arg_of_((2, 4.5), (2, 4), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (2, 4))


    def testcallstructTestStruct5AndstructTestStruct4Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct4Arg_of_((1, 2.5), (1, 1<<60), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct4Arg_of_((1, 2.5), (2, 4), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct4Arg_of_((2, 4.5), (1, 1<<60), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct4Arg_of_((2, 4.5), (2, 4), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (2, 4))


    def testinvokestructTestStruct5AndstructTestStruct4Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct4Arg_of_((1, 2.5), (1, 1<<60), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct4Arg_of_((1, 2.5), (2, 4), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (2, 4))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct4Arg_of_((2, 4.5), (1, 1<<60), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct4Arg_of_((2, 4.5), (2, 4), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (2, 4))


    def testcallstructTestStruct5AndstructTestStruct5Arg(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct5Arg_of_((1, 2.5), (1, 2.5), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct5Arg_of_((1, 2.5), (2, 4.5), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct5Arg_of_((2, 4.5), (1, 2.5), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callstructTestStruct5Arg_andstructTestStruct5Arg_of_((2, 4.5), (2, 4.5), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (2, 4.5))


    def testinvokestructTestStruct5AndstructTestStruct5Arg(self):
        if not nsinvoke_ok:
            return
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct5Arg_of_((1, 2.5), (1, 2.5), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct5Arg_of_((1, 2.5), (2, 4.5), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (2, 4.5))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct5Arg_of_((2, 4.5), (1, 2.5), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokestructTestStruct5Arg_andstructTestStruct5Arg_of_((2, 4.5), (2, 4.5), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (2, 4.5))


    # Pass by reference arguments (in)

    def testcallboolIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callboolInArg_of_(YES, o)
        self.assertEqual(r, YES)
        r = PyObjC_TestClass2.callboolInArg_of_(NO, o)
        self.assertEqual(r, NO)


    def testinvokeboolIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeboolInArg_of_(YES, o)
        self.assertEqual(r, YES)
        r = PyObjC_TestClass2.invokeboolInArg_of_(NO, o)
        self.assertEqual(r, NO)


    def testcallBOOLIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callBOOLInArg_of_(YES, o)
        self.assertEqual(r, YES)
        r = PyObjC_TestClass2.callBOOLInArg_of_(NO, o)
        self.assertEqual(r, NO)


    def testinvokeBOOLIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeBOOLInArg_of_(YES, o)
        self.assertEqual(r, YES)
        r = PyObjC_TestClass2.invokeBOOLInArg_of_(NO, o)
        self.assertEqual(r, NO)


    def testcallcharIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharInArg_of_(-128, o)
        self.assertEqual(r, -128)
        r = PyObjC_TestClass2.callcharInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callcharInArg_of_(127, o)
        self.assertEqual(r, 127)


    def testinvokecharIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharInArg_of_(-128, o)
        self.assertEqual(r, -128)
        r = PyObjC_TestClass2.invokecharInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokecharInArg_of_(127, o)
        self.assertEqual(r, 127)


    def testcallsignedshortIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedshortInArg_of_(-(1<<14), o)
        self.assertEqual(r, -(1<<14))
        r = PyObjC_TestClass2.callsignedshortInArg_of_(-42, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.callsignedshortInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callsignedshortInArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.callsignedshortInArg_of_(1 << 14, o)
        self.assertEqual(r, 1 << 14)


    def testinvokesignedshortIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedshortInArg_of_(-(1<<14), o)
        self.assertEqual(r, -(1<<14))
        r = PyObjC_TestClass2.invokesignedshortInArg_of_(-42, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.invokesignedshortInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokesignedshortInArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokesignedshortInArg_of_(1 << 14, o)
        self.assertEqual(r, 1 << 14)


    def testcallsignedintIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedintInArg_of_(-(1<<30), o)
        self.assertEqual(r, -(1<<30))
        r = PyObjC_TestClass2.callsignedintInArg_of_(-42, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.callsignedintInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callsignedintInArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.callsignedintInArg_of_(1 << 30, o)
        self.assertEqual(r, 1 << 30)


    def testinvokesignedintIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedintInArg_of_(-(1<<30), o)
        self.assertEqual(r, -(1<<30))
        r = PyObjC_TestClass2.invokesignedintInArg_of_(-42, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.invokesignedintInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokesignedintInArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokesignedintInArg_of_(1 << 30, o)
        self.assertEqual(r, 1 << 30)


    def testcallsignedlongIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlongInArg_of_(-(1<<30), o)
        self.assertEqual(r, -(1<<30))
        r = PyObjC_TestClass2.callsignedlongInArg_of_(-42, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.callsignedlongInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callsignedlongInArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.callsignedlongInArg_of_(1 << 30, o)
        self.assertEqual(r, 1 << 30)


    def testinvokesignedlongIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlongInArg_of_(-(1<<30), o)
        self.assertEqual(r, -(1<<30))
        r = PyObjC_TestClass2.invokesignedlongInArg_of_(-42, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.invokesignedlongInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokesignedlongInArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokesignedlongInArg_of_(1 << 30, o)
        self.assertEqual(r, 1 << 30)


    def testcallsignedlonglongIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callsignedlonglongInArg_of_(-(1 << 60), o)
        self.assertEqual(r, -(1 << 60))
        r = PyObjC_TestClass2.callsignedlonglongInArg_of_(-42, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.callsignedlonglongInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callsignedlonglongInArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.callsignedlonglongInArg_of_(1 << 60, o)
        self.assertEqual(r, 1 << 60)


    def testinvokesignedlonglongIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokesignedlonglongInArg_of_(-(1 << 60), o)
        self.assertEqual(r, -(1 << 60))
        r = PyObjC_TestClass2.invokesignedlonglongInArg_of_(-42, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.invokesignedlonglongInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokesignedlonglongInArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokesignedlonglongInArg_of_(1 << 60, o)
        self.assertEqual(r, 1 << 60)


    def testcallunsignedcharIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedcharInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callunsignedcharInArg_of_(128, o)
        self.assertEqual(r, 128)
        r = PyObjC_TestClass2.callunsignedcharInArg_of_(255, o)
        self.assertEqual(r, 255)


    def testinvokeunsignedcharIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedcharInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedcharInArg_of_(128, o)
        self.assertEqual(r, 128)
        r = PyObjC_TestClass2.invokeunsignedcharInArg_of_(255, o)
        self.assertEqual(r, 255)


    def testcallunsignedshortIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedshortInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callunsignedshortInArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.callunsignedshortInArg_of_(1<<14, o)
        self.assertEqual(r, 1<<14)


    def testinvokeunsignedshortIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedshortInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedshortInArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokeunsignedshortInArg_of_(1<<14, o)
        self.assertEqual(r, 1<<14)


    def testcallunsignedintIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedintInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callunsignedintInArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.callunsignedintInArg_of_(1 << 30, o)
        self.assertEqual(r, 1 << 30)


    def testinvokeunsignedintIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedintInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedintInArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokeunsignedintInArg_of_(1 << 30, o)
        self.assertEqual(r, 1 << 30)


    def testcallunsignedlongIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlongInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callunsignedlongInArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.callunsignedlongInArg_of_(1 << 30, o)
        self.assertEqual(r, 1 << 30)


    def testinvokeunsignedlongIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlongInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedlongInArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokeunsignedlongInArg_of_(1 << 30, o)
        self.assertEqual(r, 1 << 30)


    def testcallunsignedlonglongIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callunsignedlonglongInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callunsignedlonglongInArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.callunsignedlonglongInArg_of_(1 << 62, o)
        self.assertEqual(r, 1 << 62)


    def testinvokeunsignedlonglongIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeunsignedlonglongInArg_of_(0, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongInArg_of_(42, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongInArg_of_(1 << 62, o)
        self.assertEqual(r, 1 << 62)


    def testcallfloatIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callfloatInArg_of_(0.128, o)
        self.assertAlmostEqual(r, 0.128)
        r = PyObjC_TestClass2.callfloatInArg_of_(1.0, o)
        self.assertAlmostEqual(r, 1.0)
        r = PyObjC_TestClass2.callfloatInArg_of_(42.0, o)
        self.assertAlmostEqual(r, 42.0)
        r = PyObjC_TestClass2.callfloatInArg_of_(1e10, o)
        self.assertAlmostEqual(r, 1e10)


    def testinvokefloatIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokefloatInArg_of_(0.128, o)
        self.assertAlmostEqual(r, 0.128)
        r = PyObjC_TestClass2.invokefloatInArg_of_(1.0, o)
        self.assertAlmostEqual(r, 1.0)
        r = PyObjC_TestClass2.invokefloatInArg_of_(42.0, o)
        self.assertAlmostEqual(r, 42.0)
        r = PyObjC_TestClass2.invokefloatInArg_of_(1e10, o)
        self.assertAlmostEqual(r, 1e10)


    def testcalldoubleIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.calldoubleInArg_of_(0.128, o)
        self.assertAlmostEqual(r, 0.128)
        r = PyObjC_TestClass2.calldoubleInArg_of_(1.0, o)
        self.assertAlmostEqual(r, 1.0)
        r = PyObjC_TestClass2.calldoubleInArg_of_(42.0, o)
        self.assertAlmostEqual(r, 42.0)
        r = PyObjC_TestClass2.calldoubleInArg_of_(1e10, o)
        self.assertAlmostEqual(r, 1e10)


    def testinvokedoubleIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokedoubleInArg_of_(0.128, o)
        self.assertAlmostEqual(r, 0.128)
        r = PyObjC_TestClass2.invokedoubleInArg_of_(1.0, o)
        self.assertAlmostEqual(r, 1.0)
        r = PyObjC_TestClass2.invokedoubleInArg_of_(42.0, o)
        self.assertAlmostEqual(r, 42.0)
        r = PyObjC_TestClass2.invokedoubleInArg_of_(1e10, o)
        self.assertAlmostEqual(r, 1e10)


    def testcallidIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callidInArg_of_(NSPriorDayDesignations, o)
        self.assertEqual(r, NSPriorDayDesignations)


    def testinvokeidIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeidInArg_of_(NSPriorDayDesignations, o)
        self.assertEqual(r, NSPriorDayDesignations)


    def testcallcharPtrIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callcharPtrInArg_of_(b"hello", o)
        self.assertEqual(r, unicode(b"hello"))
        r = PyObjC_TestClass2.callcharPtrInArg_of_(b"world", o)
        self.assertEqual(r, unicode(b"world"))
        r = PyObjC_TestClass2.callcharPtrInArg_of_(b"foobar", o)
        self.assertEqual(r, unicode(b"foobar"))


    def testinvokecharPtrIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokecharPtrInArg_of_(b"hello", o)
        self.assertEqual(r, unicode(b"hello"))
        r = PyObjC_TestClass2.invokecharPtrInArg_of_(b"world", o)
        self.assertEqual(r, unicode(b"world"))
        r = PyObjC_TestClass2.invokecharPtrInArg_of_(b"foobar", o)
        self.assertEqual(r, unicode(b"foobar"))


    def testcallNSPointIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSPointInArg_of_((1, 2), o)
        self.assertEqual(r, (1, 2))
        r = PyObjC_TestClass2.callNSPointInArg_of_((3, 4), o)
        self.assertEqual(r, (3, 4))


    def testinvokeNSPointIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSPointInArg_of_((1, 2), o)
        self.assertEqual(r, (1, 2))
        r = PyObjC_TestClass2.invokeNSPointInArg_of_((3, 4), o)
        self.assertEqual(r, (3, 4))


    def testcallNSRectIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callNSRectInArg_of_(((1, 2), (3, 4)), o)
        self.assertEqual(r, ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callNSRectInArg_of_(((7, 8), (9, 10)), o)
        self.assertEqual(r, ((7, 8), (9, 10)))


    def testinvokeNSRectIn(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokeNSRectInArg_of_(((1, 2), (3, 4)), o)
        self.assertEqual(r, ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeNSRectInArg_of_(((7, 8), (9, 10)), o)
        self.assertEqual(r, ((7, 8), (9, 10)))


    def testcallstructTestStruct1In(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct1InArg_of_((1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct1InArg_of_((9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct1In(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct1InArg_of_((1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct1InArg_of_((9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct2In(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct2InArg_of_((1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct2InArg_of_((9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct2In(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct2InArg_of_((1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct2InArg_of_((9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct3In(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct3InArg_of_((1, 2), o)
        self.assertEqual(r, (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct3InArg_of_((2, 4), o)
        self.assertEqual(r, (2, 4))


    def testinvokestructTestStruct3In(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct3InArg_of_((1, 2), o)
        self.assertEqual(r, (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct3InArg_of_((2, 4), o)
        self.assertEqual(r, (2, 4))


    def testcallstructTestStruct4In(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct4InArg_of_((1, 1<<60), o)
        self.assertEqual(r, (1, 1<<60))
        r = PyObjC_TestClass2.callstructTestStruct4InArg_of_((2, 4), o)
        self.assertEqual(r, (2, 4))


    def testinvokestructTestStruct4In(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct4InArg_of_((1, 1<<60), o)
        self.assertEqual(r, (1, 1<<60))
        r = PyObjC_TestClass2.invokestructTestStruct4InArg_of_((2, 4), o)
        self.assertEqual(r, (2, 4))


    def testcallstructTestStruct5In(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.callstructTestStruct5InArg_of_((1, 2.5), o)
        self.assertEqual(r, (1, 2.5))
        r = PyObjC_TestClass2.callstructTestStruct5InArg_of_((2, 4.5), o)
        self.assertEqual(r, (2, 4.5))


    def testinvokestructTestStruct5In(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        r = PyObjC_TestClass2.invokestructTestStruct5InArg_of_((1, 2.5), o)
        self.assertEqual(r, (1, 2.5))
        r = PyObjC_TestClass2.invokestructTestStruct5InArg_of_((2, 4.5), o)
        self.assertEqual(r, (2, 4.5))


    # Pass by reference arguments (out)

    def testcallboolOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callboolOutArg_of_(None, o)
        self.assertEqual(r, YES)
        r = PyObjC_TestClass2.callboolOutArg_of_(None, o)
        self.assertEqual(r, NO)


    def testinvokeboolOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeboolOutArg_of_(None, o)
        self.assertEqual(r, YES)
        r = PyObjC_TestClass2.invokeboolOutArg_of_(None, o)
        self.assertEqual(r, NO)


    def testcallBOOLOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callBOOLOutArg_of_(None, o)
        self.assertEqual(r, YES)
        r = PyObjC_TestClass2.callBOOLOutArg_of_(None, o)
        self.assertEqual(r, NO)


    def testinvokeBOOLOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeBOOLOutArg_of_(None, o)
        self.assertEqual(r, YES)
        r = PyObjC_TestClass2.invokeBOOLOutArg_of_(None, o)
        self.assertEqual(r, NO)


    def testcallcharOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callcharOutArg_of_(None, o)
        self.assertEqual(r, -128)
        r = PyObjC_TestClass2.callcharOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callcharOutArg_of_(None, o)
        self.assertEqual(r, 127)


    def testinvokecharOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokecharOutArg_of_(None, o)
        self.assertEqual(r, -128)
        r = PyObjC_TestClass2.invokecharOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokecharOutArg_of_(None, o)
        self.assertEqual(r, 127)


    def testcallsignedshortOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callsignedshortOutArg_of_(None, o)
        self.assertEqual(r, -(1<<14))
        r = PyObjC_TestClass2.callsignedshortOutArg_of_(None, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.callsignedshortOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callsignedshortOutArg_of_(None, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.callsignedshortOutArg_of_(None, o)
        self.assertEqual(r, 1 << 14)


    def testinvokesignedshortOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokesignedshortOutArg_of_(None, o)
        self.assertEqual(r, -(1<<14))
        r = PyObjC_TestClass2.invokesignedshortOutArg_of_(None, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.invokesignedshortOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokesignedshortOutArg_of_(None, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokesignedshortOutArg_of_(None, o)
        self.assertEqual(r, 1 << 14)


    def testcallsignedintOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callsignedintOutArg_of_(None, o)
        self.assertEqual(r, -(1<<30))
        r = PyObjC_TestClass2.callsignedintOutArg_of_(None, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.callsignedintOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callsignedintOutArg_of_(None, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.callsignedintOutArg_of_(None, o)
        self.assertEqual(r, 1 << 30)


    def testinvokesignedintOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokesignedintOutArg_of_(None, o)
        self.assertEqual(r, -(1<<30))
        r = PyObjC_TestClass2.invokesignedintOutArg_of_(None, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.invokesignedintOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokesignedintOutArg_of_(None, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokesignedintOutArg_of_(None, o)
        self.assertEqual(r, 1 << 30)


    def testcallsignedlongOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callsignedlongOutArg_of_(None, o)
        self.assertEqual(r, -(1<<30))
        r = PyObjC_TestClass2.callsignedlongOutArg_of_(None, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.callsignedlongOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callsignedlongOutArg_of_(None, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.callsignedlongOutArg_of_(None, o)
        self.assertEqual(r, 1 << 30)


    def testinvokesignedlongOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokesignedlongOutArg_of_(None, o)
        self.assertEqual(r, -(1<<30))
        r = PyObjC_TestClass2.invokesignedlongOutArg_of_(None, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.invokesignedlongOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokesignedlongOutArg_of_(None, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokesignedlongOutArg_of_(None, o)
        self.assertEqual(r, 1 << 30)


    def testcallsignedlonglongOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callsignedlonglongOutArg_of_(None, o)
        self.assertEqual(r, -(1 << 60))
        r = PyObjC_TestClass2.callsignedlonglongOutArg_of_(None, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.callsignedlonglongOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callsignedlonglongOutArg_of_(None, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.callsignedlonglongOutArg_of_(None, o)
        self.assertEqual(r, 1 << 60)


    def testinvokesignedlonglongOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokesignedlonglongOutArg_of_(None, o)
        self.assertEqual(r, -(1 << 60))
        r = PyObjC_TestClass2.invokesignedlonglongOutArg_of_(None, o)
        self.assertEqual(r, -42)
        r = PyObjC_TestClass2.invokesignedlonglongOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokesignedlonglongOutArg_of_(None, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokesignedlonglongOutArg_of_(None, o)
        self.assertEqual(r, 1 << 60)


    def testcallunsignedcharOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callunsignedcharOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callunsignedcharOutArg_of_(None, o)
        self.assertEqual(r, 128)
        r = PyObjC_TestClass2.callunsignedcharOutArg_of_(None, o)
        self.assertEqual(r, 255)


    def testinvokeunsignedcharOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeunsignedcharOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedcharOutArg_of_(None, o)
        self.assertEqual(r, 128)
        r = PyObjC_TestClass2.invokeunsignedcharOutArg_of_(None, o)
        self.assertEqual(r, 255)


    def testcallunsignedshortOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callunsignedshortOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callunsignedshortOutArg_of_(None, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.callunsignedshortOutArg_of_(None, o)
        self.assertEqual(r, 1<<14)


    def testinvokeunsignedshortOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeunsignedshortOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedshortOutArg_of_(None, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokeunsignedshortOutArg_of_(None, o)
        self.assertEqual(r, 1<<14)


    def testcallunsignedintOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callunsignedintOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callunsignedintOutArg_of_(None, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.callunsignedintOutArg_of_(None, o)
        self.assertEqual(r, 1 << 30)


    def testinvokeunsignedintOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeunsignedintOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedintOutArg_of_(None, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokeunsignedintOutArg_of_(None, o)
        self.assertEqual(r, 1 << 30)


    def testcallunsignedlongOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callunsignedlongOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callunsignedlongOutArg_of_(None, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.callunsignedlongOutArg_of_(None, o)
        self.assertEqual(r, 1 << 30)


    def testinvokeunsignedlongOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeunsignedlongOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedlongOutArg_of_(None, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokeunsignedlongOutArg_of_(None, o)
        self.assertEqual(r, 1 << 30)


    def testcallunsignedlonglongOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callunsignedlonglongOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.callunsignedlonglongOutArg_of_(None, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.callunsignedlonglongOutArg_of_(None, o)
        self.assertEqual(r, 1 << 62)


    def testinvokeunsignedlonglongOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeunsignedlonglongOutArg_of_(None, o)
        self.assertEqual(r, 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongOutArg_of_(None, o)
        self.assertEqual(r, 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongOutArg_of_(None, o)
        self.assertEqual(r, 1 << 62)


    def testcallfloatOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callfloatOutArg_of_(None, o)
        self.assertAlmostEqual(r, 0.128)
        r = PyObjC_TestClass2.callfloatOutArg_of_(None, o)
        self.assertAlmostEqual(r, 1.0)
        r = PyObjC_TestClass2.callfloatOutArg_of_(None, o)
        self.assertAlmostEqual(r, 42.0)
        r = PyObjC_TestClass2.callfloatOutArg_of_(None, o)
        self.assertAlmostEqual(r, 1e10)


    def testinvokefloatOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokefloatOutArg_of_(None, o)
        self.assertAlmostEqual(r, 0.128)
        r = PyObjC_TestClass2.invokefloatOutArg_of_(None, o)
        self.assertAlmostEqual(r, 1.0)
        r = PyObjC_TestClass2.invokefloatOutArg_of_(None, o)
        self.assertAlmostEqual(r, 42.0)
        r = PyObjC_TestClass2.invokefloatOutArg_of_(None, o)
        self.assertAlmostEqual(r, 1e10)


    def testcalldoubleOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.calldoubleOutArg_of_(None, o)
        self.assertAlmostEqual(r, 0.128)
        r = PyObjC_TestClass2.calldoubleOutArg_of_(None, o)
        self.assertAlmostEqual(r, 1.0)
        r = PyObjC_TestClass2.calldoubleOutArg_of_(None, o)
        self.assertAlmostEqual(r, 42.0)
        r = PyObjC_TestClass2.calldoubleOutArg_of_(None, o)
        self.assertAlmostEqual(r, 1e10)


    def testinvokedoubleOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokedoubleOutArg_of_(None, o)
        self.assertAlmostEqual(r, 0.128)
        r = PyObjC_TestClass2.invokedoubleOutArg_of_(None, o)
        self.assertAlmostEqual(r, 1.0)
        r = PyObjC_TestClass2.invokedoubleOutArg_of_(None, o)
        self.assertAlmostEqual(r, 42.0)
        r = PyObjC_TestClass2.invokedoubleOutArg_of_(None, o)
        self.assertAlmostEqual(r, 1e10)


    def testcallidOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callidOutArg_of_(None, o)
        self.assertEqual(r, NSPriorDayDesignations)


    def testinvokeidOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeidOutArg_of_(None, o)
        self.assertEqual(r, NSPriorDayDesignations)


    def testcallcharPtrOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callcharPtrOutArg_of_(None, o)
        self.assertEqual(r, b"hello")
        r = PyObjC_TestClass2.callcharPtrOutArg_of_(None, o)
        self.assertEqual(r, b"world")
        r = PyObjC_TestClass2.callcharPtrOutArg_of_(None, o)
        self.assertEqual(r, b"foobar")


    def testinvokecharPtrOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokecharPtrOutArg_of_(None, o)
        self.assertEqual(r, (b"hello"))
        r = PyObjC_TestClass2.invokecharPtrOutArg_of_(None, o)
        self.assertEqual(r, (b"world"))
        r = PyObjC_TestClass2.invokecharPtrOutArg_of_(None, o)
        self.assertEqual(r, (b"foobar"))


    def testcallNSPointOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callNSPointOutArg_of_(None, o)
        self.assertEqual(r, (1, 2))
        r = PyObjC_TestClass2.callNSPointOutArg_of_(None, o)
        self.assertEqual(r, (3, 4))


    def testinvokeNSPointOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeNSPointOutArg_of_(None, o)
        self.assertEqual(r, (1, 2))
        r = PyObjC_TestClass2.invokeNSPointOutArg_of_(None, o)
        self.assertEqual(r, (3, 4))


    def testcallNSRectOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callNSRectOutArg_of_(None, o)
        self.assertEqual(r, ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callNSRectOutArg_of_(None, o)
        self.assertEqual(r, ((7, 8), (9, 10)))


    def testinvokeNSRectOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeNSRectOutArg_of_(None, o)
        self.assertEqual(r, ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeNSRectOutArg_of_(None, o)
        self.assertEqual(r, ((7, 8), (9, 10)))


    def testcallstructTestStruct1Out(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callstructTestStruct1OutArg_of_(None, o)
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct1OutArg_of_(None, o)
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct1Out(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokestructTestStruct1OutArg_of_(None, o)
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct1OutArg_of_(None, o)
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct2Out(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callstructTestStruct2OutArg_of_(None, o)
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct2OutArg_of_(None, o)
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct2Out(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokestructTestStruct2OutArg_of_(None, o)
        self.assertEqual(r, (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct2OutArg_of_(None, o)
        self.assertEqual(r, (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct3Out(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callstructTestStruct3OutArg_of_(None, o)
        self.assertEqual(r, (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct3OutArg_of_(None, o)
        self.assertEqual(r, (2, 4))


    def testinvokestructTestStruct3Out(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokestructTestStruct3OutArg_of_(None, o)
        self.assertEqual(r, (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct3OutArg_of_(None, o)
        self.assertEqual(r, (2, 4))


    def testcallstructTestStruct4Out(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callstructTestStruct4OutArg_of_(None, o)
        self.assertEqual(r, (1, 1<<60))
        r = PyObjC_TestClass2.callstructTestStruct4OutArg_of_(None, o)
        self.assertEqual(r, (2, 4))


    def testinvokestructTestStruct4Out(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokestructTestStruct4OutArg_of_(None, o)
        self.assertEqual(r, (1, 1<<60))
        r = PyObjC_TestClass2.invokestructTestStruct4OutArg_of_(None, o)
        self.assertEqual(r, (2, 4))


    def testcallstructTestStruct5Out(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callstructTestStruct5OutArg_of_(None, o)
        self.assertEqual(r, (1, 2.5))
        r = PyObjC_TestClass2.callstructTestStruct5OutArg_of_(None, o)
        self.assertEqual(r, (2, 4.5))


    def testinvokestructTestStruct5Out(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokestructTestStruct5OutArg_of_(None, o)
        self.assertEqual(r, (1, 2.5))
        r = PyObjC_TestClass2.invokestructTestStruct5OutArg_of_(None, o)
        self.assertEqual(r, (2, 4.5))


    # Pass by reference arguments (out)

    def testcallboolInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callboolInOutArg_of_(NO, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callboolInOutArg_of_(YES, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)


    def testinvokeboolInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeboolInOutArg_of_(NO, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeboolInOutArg_of_(YES, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)


    def testcallBOOLInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callBOOLInOutArg_of_(NO, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.callBOOLInOutArg_of_(YES, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)


    def testinvokeBOOLInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeBOOLInOutArg_of_(NO, o)
        self.assertEqual(r[0], NO)
        self.assertEqual(r[1], YES)
        r = PyObjC_TestClass2.invokeBOOLInOutArg_of_(YES, o)
        self.assertEqual(r[0], YES)
        self.assertEqual(r[1], NO)


    def testcallcharInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callcharInOutArg_of_(127, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.callcharInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callcharInOutArg_of_(-128, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 127)


    def testinvokecharInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokecharInOutArg_of_(127, o)
        self.assertEqual(r[0], 127)
        self.assertEqual(r[1], -128)
        r = PyObjC_TestClass2.invokecharInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokecharInOutArg_of_(-128, o)
        self.assertEqual(r[0], -128)
        self.assertEqual(r[1], 127)


    def testcallsignedshortInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callsignedshortInOutArg_of_(1 << 14, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.callsignedshortInOutArg_of_(42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedshortInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedshortInOutArg_of_(-42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedshortInOutArg_of_(-(1<<14), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 14)


    def testinvokesignedshortInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokesignedshortInOutArg_of_(1 << 14, o)
        self.assertEqual(r[0], 1 << 14)
        self.assertEqual(r[1], -(1<<14))
        r = PyObjC_TestClass2.invokesignedshortInOutArg_of_(42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedshortInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedshortInOutArg_of_(-42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedshortInOutArg_of_(-(1<<14), o)
        self.assertEqual(r[0], -(1<<14))
        self.assertEqual(r[1], 1 << 14)


    def testcallsignedintInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callsignedintInOutArg_of_(1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedintInOutArg_of_(42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedintInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedintInOutArg_of_(-42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedintInOutArg_of_(-(1<<30), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedintInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokesignedintInOutArg_of_(1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedintInOutArg_of_(42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedintInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedintInOutArg_of_(-42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedintInOutArg_of_(-(1<<30), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedlongInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callsignedlongInOutArg_of_(1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.callsignedlongInOutArg_of_(42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlongInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlongInOutArg_of_(-42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlongInOutArg_of_(-(1<<30), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)


    def testinvokesignedlongInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokesignedlongInOutArg_of_(1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], -(1<<30))
        r = PyObjC_TestClass2.invokesignedlongInOutArg_of_(42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlongInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlongInOutArg_of_(-42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlongInOutArg_of_(-(1<<30), o)
        self.assertEqual(r[0], -(1<<30))
        self.assertEqual(r[1], 1 << 30)


    def testcallsignedlonglongInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callsignedlonglongInOutArg_of_(1 << 60, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.callsignedlonglongInOutArg_of_(42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.callsignedlonglongInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callsignedlonglongInOutArg_of_(-42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callsignedlonglongInOutArg_of_(-(1 << 60), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 60)


    def testinvokesignedlonglongInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokesignedlonglongInOutArg_of_(1 << 60, o)
        self.assertEqual(r[0], 1 << 60)
        self.assertEqual(r[1], -(1 << 60))
        r = PyObjC_TestClass2.invokesignedlonglongInOutArg_of_(42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], -42)
        r = PyObjC_TestClass2.invokesignedlonglongInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokesignedlonglongInOutArg_of_(-42, o)
        self.assertEqual(r[0], -42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokesignedlonglongInOutArg_of_(-(1 << 60), o)
        self.assertEqual(r[0], -(1 << 60))
        self.assertEqual(r[1], 1 << 60)


    def testcallunsignedcharInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callunsignedcharInOutArg_of_(255, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedcharInOutArg_of_(128, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.callunsignedcharInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)


    def testinvokeunsignedcharInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeunsignedcharInOutArg_of_(255, o)
        self.assertEqual(r[0], 255)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedcharInOutArg_of_(128, o)
        self.assertEqual(r[0], 128)
        self.assertEqual(r[1], 128)
        r = PyObjC_TestClass2.invokeunsignedcharInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 255)


    def testcallunsignedshortInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callunsignedshortInOutArg_of_(1<<14, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedshortInOutArg_of_(42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedshortInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)


    def testinvokeunsignedshortInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeunsignedshortInOutArg_of_(1<<14, o)
        self.assertEqual(r[0], 1<<14)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedshortInOutArg_of_(42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedshortInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1<<14)


    def testcallunsignedintInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callunsignedintInOutArg_of_(1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedintInOutArg_of_(42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedintInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedintInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeunsignedintInOutArg_of_(1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedintInOutArg_of_(42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedintInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedlongInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callunsignedlongInOutArg_of_(1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlongInOutArg_of_(42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlongInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)


    def testinvokeunsignedlongInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeunsignedlongInOutArg_of_(1 << 30, o)
        self.assertEqual(r[0], 1 << 30)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlongInOutArg_of_(42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlongInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 30)


    def testcallunsignedlonglongInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callunsignedlonglongInOutArg_of_(1 << 62, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.callunsignedlonglongInOutArg_of_(42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.callunsignedlonglongInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)


    def testinvokeunsignedlonglongInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeunsignedlonglongInOutArg_of_(1 << 62, o)
        self.assertEqual(r[0], 1 << 62)
        self.assertEqual(r[1], 0)
        r = PyObjC_TestClass2.invokeunsignedlonglongInOutArg_of_(42, o)
        self.assertEqual(r[0], 42)
        self.assertEqual(r[1], 42)
        r = PyObjC_TestClass2.invokeunsignedlonglongInOutArg_of_(0, o)
        self.assertEqual(r[0], 0)
        self.assertEqual(r[1], 1 << 62)


    def testcallfloatInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callfloatInOutArg_of_(1e10, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.callfloatInOutArg_of_(42.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.callfloatInOutArg_of_(1.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.callfloatInOutArg_of_(0.128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokefloatInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokefloatInOutArg_of_(1e10, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokefloatInOutArg_of_(42.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokefloatInOutArg_of_(1.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokefloatInOutArg_of_(0.128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)


    def testcalldoubleInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.calldoubleInOutArg_of_(1e10, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.calldoubleInOutArg_of_(42.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.calldoubleInOutArg_of_(1.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.calldoubleInOutArg_of_(0.128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)


    def testinvokedoubleInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokedoubleInOutArg_of_(1e10, o)
        self.assertAlmostEqual(r[0], 1e10)
        self.assertAlmostEqual(r[1], 0.128)
        r = PyObjC_TestClass2.invokedoubleInOutArg_of_(42.0, o)
        self.assertAlmostEqual(r[0], 42.0)
        self.assertAlmostEqual(r[1], 1.0)
        r = PyObjC_TestClass2.invokedoubleInOutArg_of_(1.0, o)
        self.assertAlmostEqual(r[0], 1.0)
        self.assertAlmostEqual(r[1], 42.0)
        r = PyObjC_TestClass2.invokedoubleInOutArg_of_(0.128, o)
        self.assertAlmostEqual(r[0], 0.128)
        self.assertAlmostEqual(r[1], 1e10)


    def testcallidInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callidInOutArg_of_(NSPriorDayDesignations, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testinvokeidInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeidInOutArg_of_(NSPriorDayDesignations, o)
        self.assertEqual(r[0], NSPriorDayDesignations)
        self.assertEqual(r[1], NSPriorDayDesignations)


    def testcallcharPtrInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callcharPtrInOutArg_of_(b"foobar", o)
        self.assertEqual(r[0], b"foobar")
        self.assertEqual(r[1], b"hello")
        r = PyObjC_TestClass2.callcharPtrInOutArg_of_(b"world", o)
        self.assertEqual(r[0], b"world")
        self.assertEqual(r[1], b"world")
        r = PyObjC_TestClass2.callcharPtrInOutArg_of_(b"hello", o)
        self.assertEqual(r[0], b"hello")
        self.assertEqual(r[1], b"foobar")


    def testinvokecharPtrInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokecharPtrInOutArg_of_(b"foobar", o)
        self.assertEqual(r[0], (b"foobar"))
        self.assertEqual(r[1], (b"hello"))
        r = PyObjC_TestClass2.invokecharPtrInOutArg_of_(b"world", o)
        self.assertEqual(r[0], (b"world"))
        self.assertEqual(r[1], (b"world"))
        r = PyObjC_TestClass2.invokecharPtrInOutArg_of_(b"hello", o)
        self.assertEqual(r[0], (b"hello"))
        self.assertEqual(r[1], (b"foobar"))


    def testcallNSPointInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callNSPointInOutArg_of_((3, 4), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callNSPointInOutArg_of_((1, 2), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (3, 4))


    def testinvokeNSPointInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeNSPointInOutArg_of_((3, 4), o)
        self.assertEqual(r[0], (3, 4))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokeNSPointInOutArg_of_((1, 2), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (3, 4))


    def testcallNSRectInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callNSRectInOutArg_of_(((7, 8), (9, 10)), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.callNSRectInOutArg_of_(((1, 2), (3, 4)), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testinvokeNSRectInOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokeNSRectInOutArg_of_(((7, 8), (9, 10)), o)
        self.assertEqual(r[0], ((7, 8), (9, 10)))
        self.assertEqual(r[1], ((1, 2), (3, 4)))
        r = PyObjC_TestClass2.invokeNSRectInOutArg_of_(((1, 2), (3, 4)), o)
        self.assertEqual(r[0], ((1, 2), (3, 4)))
        self.assertEqual(r[1], ((7, 8), (9, 10)))


    def testcallstructTestStruct1InOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callstructTestStruct1InOutArg_of_((9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct1InOutArg_of_((1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct1InOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokestructTestStruct1InOutArg_of_((9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct1InOutArg_of_((1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct2InOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callstructTestStruct2InOutArg_of_((9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.callstructTestStruct2InOutArg_of_((1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testinvokestructTestStruct2InOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokestructTestStruct2InOutArg_of_((9, 8, (-1, -2, -3, -4, -5)), o)
        self.assertEqual(r[0], (9, 8, (-1, -2, -3, -4, -5)))
        self.assertEqual(r[1], (1, 2, (1, 2, 3, 4, 5)))
        r = PyObjC_TestClass2.invokestructTestStruct2InOutArg_of_((1, 2, (1, 2, 3, 4, 5)), o)
        self.assertEqual(r[0], (1, 2, (1, 2, 3, 4, 5)))
        self.assertEqual(r[1], (9, 8, (-1, -2, -3, -4, -5)))


    def testcallstructTestStruct3InOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callstructTestStruct3InOutArg_of_((2, 4), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.callstructTestStruct3InOutArg_of_((1, 2), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4))


    def testinvokestructTestStruct3InOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokestructTestStruct3InOutArg_of_((2, 4), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 2))
        r = PyObjC_TestClass2.invokestructTestStruct3InOutArg_of_((1, 2), o)
        self.assertEqual(r[0], (1, 2))
        self.assertEqual(r[1], (2, 4))


    def testcallstructTestStruct4InOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callstructTestStruct4InOutArg_of_((2, 4), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.callstructTestStruct4InOutArg_of_((1, 1<<60), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (2, 4))


    def testinvokestructTestStruct4InOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokestructTestStruct4InOutArg_of_((2, 4), o)
        self.assertEqual(r[0], (2, 4))
        self.assertEqual(r[1], (1, 1<<60))
        r = PyObjC_TestClass2.invokestructTestStruct4InOutArg_of_((1, 1<<60), o)
        self.assertEqual(r[0], (1, 1<<60))
        self.assertEqual(r[1], (2, 4))


    def testcallstructTestStruct5InOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.callstructTestStruct5InOutArg_of_((2, 4.5), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.callstructTestStruct5InOutArg_of_((1, 2.5), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (2, 4.5))


    def testinvokestructTestStruct5InOut(self):
        o = Python_TestClass.alloc().init()
        self.assertIsNotNone(o)
        o.reset()
        r = PyObjC_TestClass2.invokestructTestStruct5InOutArg_of_((2, 4.5), o)
        self.assertEqual(r[0], (2, 4.5))
        self.assertEqual(r[1], (1, 2.5))
        r = PyObjC_TestClass2.invokestructTestStruct5InOutArg_of_((1, 2.5), o)
        self.assertEqual(r[0], (1, 2.5))
        self.assertEqual(r[1], (2, 4.5))



if __name__ == "__main__":
    main()
