def testVectorizeRoundRobin(self):
     env = _MultiAgentEnvToBaseEnv(lambda v: RoundRobinMultiAgent(2), [], 2)
     obs, rew, dones, _, _ = env.poll()
     self.assertEqual(obs, {0: {0: 0}, 1: {0: 0}})
     self.assertEqual(rew, {0: {0: None}, 1: {0: None}})
     env.send_actions({0: {0: 0}, 1: {0: 0}})
     obs, rew, dones, _, _ = env.poll()
     self.assertEqual(obs, {0: {1: 0}, 1: {1: 0}})
     env.send_actions({0: {1: 0}, 1: {1: 0}})
     obs, rew, dones, _, _ = env.poll()
     self.assertEqual(obs, {0: {0: 0}, 1: {0: 0}})
Esempio n. 2
0
 def testVectorizeRoundRobin(self):
     env = _MultiAgentEnvToBaseEnv(lambda v: RoundRobinMultiAgent(2), [], 2)
     obs, rew, dones, _, _ = env.poll()
     self.assertEqual(obs, {0: {0: 0}, 1: {0: 0}})
     self.assertEqual(rew, {0: {0: None}, 1: {0: None}})
     env.send_actions({0: {0: 0}, 1: {0: 0}})
     obs, rew, dones, _, _ = env.poll()
     self.assertEqual(obs, {0: {1: 0}, 1: {1: 0}})
     env.send_actions({0: {1: 0}, 1: {1: 0}})
     obs, rew, dones, _, _ = env.poll()
     self.assertEqual(obs, {0: {0: 0}, 1: {0: 0}})
Esempio n. 3
0
    def testVectorizeBasic(self):
        env = _MultiAgentEnvToBaseEnv(lambda v: BasicMultiAgent(2), [], 2)
        obs, rew, dones, _, _ = env.poll()
        self.assertEqual(obs, {0: {0: 0, 1: 0}, 1: {0: 0, 1: 0}})
        self.assertEqual(rew, {0: {0: None, 1: None}, 1: {0: None, 1: None}})
        self.assertEqual(
            dones, {
                0: {
                    0: False,
                    1: False,
                    "__all__": False
                },
                1: {
                    0: False,
                    1: False,
                    "__all__": False
                }
            })
        for _ in range(24):
            env.send_actions({0: {0: 0, 1: 0}, 1: {0: 0, 1: 0}})
            obs, rew, dones, _, _ = env.poll()
            self.assertEqual(obs, {0: {0: 0, 1: 0}, 1: {0: 0, 1: 0}})
            self.assertEqual(rew, {0: {0: 1, 1: 1}, 1: {0: 1, 1: 1}})
            self.assertEqual(
                dones, {
                    0: {
                        0: False,
                        1: False,
                        "__all__": False
                    },
                    1: {
                        0: False,
                        1: False,
                        "__all__": False
                    }
                })
        env.send_actions({0: {0: 0, 1: 0}, 1: {0: 0, 1: 0}})
        obs, rew, dones, _, _ = env.poll()
        self.assertEqual(
            dones, {
                0: {
                    0: True,
                    1: True,
                    "__all__": True
                },
                1: {
                    0: True,
                    1: True,
                    "__all__": True
                }
            })

        # Reset processing
        self.assertRaises(
            ValueError, lambda: env.send_actions({
                0: {
                    0: 0,
                    1: 0
                },
                1: {
                    0: 0,
                    1: 0
                }
            }))
        self.assertEqual(env.try_reset(0), {0: 0, 1: 0})
        self.assertEqual(env.try_reset(1), {0: 0, 1: 0})
        env.send_actions({0: {0: 0, 1: 0}, 1: {0: 0, 1: 0}})
        obs, rew, dones, _, _ = env.poll()
        self.assertEqual(obs, {0: {0: 0, 1: 0}, 1: {0: 0, 1: 0}})
        self.assertEqual(rew, {0: {0: 1, 1: 1}, 1: {0: 1, 1: 1}})
        self.assertEqual(
            dones, {
                0: {
                    0: False,
                    1: False,
                    "__all__": False
                },
                1: {
                    0: False,
                    1: False,
                    "__all__": False
                }
            })
Esempio n. 4
0
 def testNoResetUntilPoll(self):
     env = _MultiAgentEnvToBaseEnv(lambda v: BasicMultiAgent(2), [], 1)
     self.assertFalse(env.get_unwrapped()[0].resetted)
     env.poll()
     self.assertTrue(env.get_unwrapped()[0].resetted)
    def testVectorizeBasic(self):
        env = _MultiAgentEnvToBaseEnv(lambda v: BasicMultiAgent(2), [], 2)
        obs, rew, dones, _, _ = env.poll()
        self.assertEqual(obs, {0: {0: 0, 1: 0}, 1: {0: 0, 1: 0}})
        self.assertEqual(rew, {0: {0: None, 1: None}, 1: {0: None, 1: None}})
        self.assertEqual(
            dones, {
                0: {
                    0: False,
                    1: False,
                    "__all__": False
                },
                1: {
                    0: False,
                    1: False,
                    "__all__": False
                }
            })
        for _ in range(24):
            env.send_actions({0: {0: 0, 1: 0}, 1: {0: 0, 1: 0}})
            obs, rew, dones, _, _ = env.poll()
            self.assertEqual(obs, {0: {0: 0, 1: 0}, 1: {0: 0, 1: 0}})
            self.assertEqual(rew, {0: {0: 1, 1: 1}, 1: {0: 1, 1: 1}})
            self.assertEqual(
                dones, {
                    0: {
                        0: False,
                        1: False,
                        "__all__": False
                    },
                    1: {
                        0: False,
                        1: False,
                        "__all__": False
                    }
                })
        env.send_actions({0: {0: 0, 1: 0}, 1: {0: 0, 1: 0}})
        obs, rew, dones, _, _ = env.poll()
        self.assertEqual(
            dones, {
                0: {
                    0: True,
                    1: True,
                    "__all__": True
                },
                1: {
                    0: True,
                    1: True,
                    "__all__": True
                }
            })

        # Reset processing
        self.assertRaises(
            ValueError,
            lambda: env.send_actions({0: {0: 0, 1: 0}, 1: {0: 0, 1: 0}}))
        self.assertEqual(env.try_reset(0), {0: 0, 1: 0})
        self.assertEqual(env.try_reset(1), {0: 0, 1: 0})
        env.send_actions({0: {0: 0, 1: 0}, 1: {0: 0, 1: 0}})
        obs, rew, dones, _, _ = env.poll()
        self.assertEqual(obs, {0: {0: 0, 1: 0}, 1: {0: 0, 1: 0}})
        self.assertEqual(rew, {0: {0: 1, 1: 1}, 1: {0: 1, 1: 1}})
        self.assertEqual(
            dones, {
                0: {
                    0: False,
                    1: False,
                    "__all__": False
                },
                1: {
                    0: False,
                    1: False,
                    "__all__": False
                }
            })
 def testNoResetUntilPoll(self):
     env = _MultiAgentEnvToBaseEnv(lambda v: BasicMultiAgent(2), [], 1)
     self.assertFalse(env.get_unwrapped()[0].resetted)
     env.poll()
     self.assertTrue(env.get_unwrapped()[0].resetted)
Esempio n. 7
0
 def test_no_reset_until_poll(self):
     env = _MultiAgentEnvToBaseEnv(lambda v: BasicMultiAgent(2), [], 1)
     self.assertFalse(env.get_sub_environments()[0].resetted)
     env.poll()
     self.assertTrue(env.get_sub_environments()[0].resetted)