示例#1
0
    def testNotEqualOtherClass(self):
        spec_1 = array_spec.ArraySpec((1, 2, 3), np.int32)
        spec_2 = None
        self.assertNotEqual(spec_1, spec_2)
        self.assertNotEqual(spec_2, spec_1)

        spec_2 = ()
        self.assertNotEqual(spec_1, spec_2)
        self.assertNotEqual(spec_2, spec_1)
  def _compute_observation_spec(self):
    """Helper for `__init__`: compute our environment's observation spec."""
    # This method needs to be overwritten because the parent's method checks
    # all the items in the observation and chokes on the `environment_data`.

    # Start an environment, examine the values it gives to us, and reset things
    # back to default.
    timestep = self.reset()
    observation_spec = {k: specs.ArraySpec(v.shape, v.dtype, name=k)
                        for k, v in six.iteritems(timestep.observation)
                        if k != EXTRA_OBSERVATIONS}
    observation_spec[EXTRA_OBSERVATIONS] = dict()
    self._drop_last_episode()
    return observation_spec
示例#3
0
    def testNotEqualOtherClass(self):
        spec_1 = array_spec.BoundedArraySpec((1, 2),
                                             np.int32,
                                             minimum=[0.0, -0.6],
                                             maximum=[1.0, 1.0])
        spec_2 = array_spec.ArraySpec((1, 2), np.int32)
        self.assertNotEqual(spec_1, spec_2)
        self.assertNotEqual(spec_2, spec_1)

        spec_2 = None
        self.assertNotEqual(spec_1, spec_2)
        self.assertNotEqual(spec_2, spec_1)

        spec_2 = ()
        self.assertNotEqual(spec_1, spec_2)
        self.assertNotEqual(spec_2, spec_1)
  def _compute_observation_spec(self):
    """Helper for `__init__`: compute our environment's observation spec."""
    # Start an environment, examine the values it gives to us, and reset things
    # back to default.
    timestep = self.reset()
    observation_spec = {k: specs.ArraySpec(v.shape, v.dtype, name=k)
                        for k, v in six.iteritems(timestep.observation)}
    # As long as we've got environment result data, we try checking to make sure
    # that the reward types can be added together---a very weak way of measuring
    # whether they are compatible.
    if timestep.reward is not None:
      try:
        _ = timestep.reward + self._default_reward
      except TypeError:
        raise TypeError(
            'A pycolab game wrapped by an Environment adapter returned '
            'a first reward whose type is incompatible with the default reward '
            "given to the adapter's `__init__`.")

    self._drop_last_episode()
    return observation_spec
示例#5
0
 def testGenerateValue(self):
     spec = array_spec.ArraySpec((1, 2), np.int32)
     test_value = spec.generate_value()
     spec.validate(test_value)
示例#6
0
 def testValidateShape(self):
     spec = array_spec.ArraySpec((1, 2), np.int32)
     spec.validate(np.zeros((1, 2), dtype=np.int32))
     with self.assertRaises(ValueError):
         spec.validate(np.zeros((1, 2, 3), dtype=np.int32))
示例#7
0
 def testNotEqualDifferentDtype(self):
     spec_1 = array_spec.ArraySpec((1, 2, 3), np.int64)
     spec_2 = array_spec.ArraySpec((1, 2, 3), np.int32)
     self.assertNotEqual(spec_1, spec_2)
示例#8
0
 def testEqual(self):
     spec_1 = array_spec.ArraySpec((1, 2, 3), np.int32)
     spec_2 = array_spec.ArraySpec((1, 2, 3), np.int32)
     self.assertEqual(spec_1, spec_2)
示例#9
0
 def testShape(self):
     spec = array_spec.ArraySpec([1, 2, 3], np.int32)
     self.assertEqual((1, 2, 3), spec.shape)
示例#10
0
 def testDtype(self):
     spec = array_spec.ArraySpec((1, 2, 3), np.int32)
     self.assertEqual(np.int32, spec.dtype)
示例#11
0
 def testNumpyDtype(self):
     array_spec.ArraySpec((1, 2, 3), np.int32)
示例#12
0
 def testStringDtype(self):
     array_spec.ArraySpec((1, 2, 3), "int32")
示例#13
0
 def testDtypeTypeError(self):
     with self.assertRaises(TypeError):
         array_spec.ArraySpec((1, 2, 3), "32")
示例#14
0
 def testShapeTypeError(self):
     with self.assertRaises(TypeError):
         array_spec.ArraySpec(32, np.int32)