code: def test_in_allow_downcast_vector_floatX(self):
      a = theano.tensor.fvector("a")
      b = theano.tensor.fvector("b")
      c = theano.tensor.fvector("c")
  
      f = theano.function(
          [
              In(a, allow_downcast=True),
              In(b, allow_downcast=False),
              In(c, allow_downcast=None),
          ],
          (a + b + c),
      )
  
      # If the values can be accurately represented, everything is OK
      z = [0]
      assert np.all(f(z, z, z) == 0)
  
      # If allow_downcast is True, idem
      assert np.allclose(f([0.1], z, z), 0.1)
  
      # If allow_downcast is False, nope
      self.assertRaises(TypeError, f, z, [0.1], z)
  
      # If allow_downcast is None, like False
      self.assertRaises(TypeError, f, z, z, [0.1])
  
imports: from __future__ import absolute_import, print_function, division
  import six.moves.cPickle
  import os
  import shutil
  import tempfile
  import unittest
  import numpy
  import theano
  from theano.compile.io import In
label_desc: Use image node_id 10 for calling the TestFunctionIn obj's underlying member method code with example usage: obj.test_in_allow_downcast_vector_floatX() without return types