def METHOD_NAME(self):
    # Ensure that casts to the correct type are forced when calling a
    # device function with a signature. This test ensures that:
    #
    # - We don't compile a new specialization of rgba for float32 when we
    #   shouldn't
    # - We insert a cast when calling rgba, as opposed to failing to type.
    @cuda.jit('int32(int32, int32, int32, int32)', device=True)
    def rgba(r, g, b, a):
        return (((r & 0xFF) << 16) |
                ((g & 0xFF) << 8) |
                ((b & 0xFF) << 0) |
                ((a & 0xFF) << 24))
    @cuda.jit
    def rgba_caller(x, channels):
        x[0] = rgba(channels[0], channels[1], channels[2], channels[3])
    x = cuda.device_array(1, dtype=np.int32)
    channels = cuda.to_device(np.asarray([1.0, 2.0, 3.0, 4.0],
                                         dtype=np.float32))
    rgba_caller[1, 1](x, channels)
    self.assertEqual(0x04010203, x[0])