'Basic usage and properties of a cfunc.'

@tag('important')
def test_basic(self):

    f = cfunc(add_sig)(add_usecase)
    self.assertEqual(f.__name__, 'add_usecase')
    self.assertEqual(f.__qualname__, 'add_usecase')
    self.assertIs(f.__wrapped__, add_usecase)
    symbol = f.native_name
    self.assertIsInstance(symbol, str)
    self.assertIn('add_usecase', symbol)
    addr = f.address
    self.assertIsInstance(addr, utils.INT_TYPES)
    ct = f.ctypes
    self.assertEqual(ctypes.cast(ct, ctypes.c_void_p).value, addr)
    self.assertPreciseEqual(ct(2.0, 3.5), 5.5)
