Beispiel #1
0
def test_initialize_trainers(mock_communicator, mock_launcher):
    open_name = 'unitytrainers.trainer_controller' + '.open'
    with mock.patch('yaml.load') as mock_load:
        with mock.patch(open_name, create=True) as _:
            mock_communicator.return_value = MockCommunicator(
                discrete_action=True, visual_inputs=1)
            tc = TrainerController(' ', ' ', 1, None, True, True, False, 1, 1,
                                   1, 1, '', "tests/test_unitytrainers.py",
                                   False)

            # Test for PPO trainer
            mock_load.return_value = dummy_config
            config = tc._load_config()
            tf.reset_default_graph()
            with tf.Session() as sess:
                tc._initialize_trainers(config, sess)
                assert (len(tc.trainers) == 1)
                assert (isinstance(tc.trainers['RealFakeBrain'], PPOTrainer))

            # Test for Behavior Cloning Trainer
            mock_load.return_value = dummy_bc_config
            config = tc._load_config()
            tf.reset_default_graph()
            with tf.Session() as sess:
                tc._initialize_trainers(config, sess)
                assert (isinstance(tc.trainers['RealFakeBrain'],
                                   BehavioralCloningTrainer))

            # Test for proper exception when trainer name is incorrect
            mock_load.return_value = dummy_bad_config
            config = tc._load_config()
            tf.reset_default_graph()
            with tf.Session() as sess:
                with pytest.raises(UnityEnvironmentException):
                    tc._initialize_trainers(config, sess)
def test_initialize_trainers(mock_communicator, mock_launcher):
    open_name = 'unitytrainers.trainer_controller' + '.open'
    with mock.patch('yaml.load') as mock_load:
        with mock.patch(open_name, create=True) as _:
            mock_communicator.return_value = MockCommunicator(
                discrete_action=True, visual_inputs=1)
            tc = TrainerController(' ', ' ', 1, None, True, True, False, 1,
                                   1, 1, 1, '', "tests/test_unitytrainers.py", False)

            # Test for PPO trainer
            mock_load.return_value = dummy_config
            config = tc._load_config()
            tf.reset_default_graph()
            with tf.Session() as sess:
                tc._initialize_trainers(config, sess)
                assert(len(tc.trainers) == 1)
                assert(isinstance(tc.trainers['RealFakeBrain'], PPOTrainer))

            # Test for Behavior Cloning Trainer
            mock_load.return_value = dummy_bc_config
            config = tc._load_config()
            tf.reset_default_graph()
            with tf.Session() as sess:
                tc._initialize_trainers(config, sess)
                assert(isinstance(tc.trainers['RealFakeBrain'], BehavioralCloningTrainer))

            # Test for proper exception when trainer name is incorrect
            mock_load.return_value = dummy_bad_config
            config = tc._load_config()
            tf.reset_default_graph()
            with tf.Session() as sess:
                with pytest.raises(UnityEnvironmentException):
                    tc._initialize_trainers(config, sess)
def test_initialize_trainers():
    open_name = 'unitytrainers.trainer_controller' + '.open'
    with mock.patch('yaml.load') as mock_load:
        with mock.patch(open_name, create=True) as _:
            with mock.patch('subprocess.Popen'):
                with mock.patch('socket.socket') as mock_socket:
                    with mock.patch('glob.glob') as mock_glob:
                        mock_glob.return_value = ['FakeLaunchPath']
                        mock_socket.return_value.accept.return_value = (mock_socket, 0)
                        mock_socket.recv.return_value.decode.return_value = dummy_start
                        tc = TrainerController(' ', ' ', 1, None, True, True, False, 1,
                                               1, 1, 1, '', "tests/test_unitytrainers.py")

                        # Test for PPO trainer
                        mock_load.return_value = dummy_config
                        config = tc._load_config()
                        tf.reset_default_graph()
                        with tf.Session() as sess:
                            tc._initialize_trainers(config, sess)
                            assert(len(tc.trainers) == 1)
                            assert(isinstance(tc.trainers['RealFakeBrain'], PPOTrainer))

                        # Test for Behavior Cloning Trainer
                        mock_load.return_value = dummy_bc_config
                        config = tc._load_config()
                        tf.reset_default_graph()
                        with tf.Session() as sess:
                            tc._initialize_trainers(config, sess)
                            assert(isinstance(tc.trainers['RealFakeBrain'], BehavioralCloningTrainer))

                        # Test for proper exception when trainer name is incorrect
                        mock_load.return_value = dummy_bad_config
                        config = tc._load_config()
                        tf.reset_default_graph()
                        with tf.Session() as sess:
                            with pytest.raises(UnityEnvironmentException):
                                tc._initialize_trainers(config, sess)
def test_initialize_trainers():
    open_name = 'unitytrainers.trainer_controller' + '.open'
    with mock.patch('yaml.load') as mock_load:
        with mock.patch(open_name, create=True) as _:
            with mock.patch('subprocess.Popen'):
                with mock.patch('socket.socket') as mock_socket:
                    with mock.patch('glob.glob') as mock_glob:
                        mock_glob.return_value = ['FakeLaunchPath']
                        mock_socket.return_value.accept.return_value = (mock_socket, 0)
                        mock_socket.recv.return_value.decode.return_value = dummy_start
                        tc = TrainerController(' ', ' ', 1, None, True, True, False, 1,
                                               1, 1, 1, '', "tests/test_unitytrainers.py")

                        # Test for PPO trainer
                        mock_load.return_value = dummy_config
                        config = tc._load_config()
                        tf.reset_default_graph()
                        with tf.Session() as sess:
                            tc._initialize_trainers(config, sess)
                            assert(len(tc.trainers) == 1)
                            assert(isinstance(tc.trainers['RealFakeBrain'], PPOTrainer))

                        # Test for Behavior Cloning Trainer
                        mock_load.return_value = dummy_bc_config
                        config = tc._load_config()
                        tf.reset_default_graph()
                        with tf.Session() as sess:
                            tc._initialize_trainers(config, sess)
                            assert(isinstance(tc.trainers['RealFakeBrain'], BehavioralCloningTrainer))

                        # Test for proper exception when trainer name is incorrect
                        mock_load.return_value = dummy_bad_config
                        config = tc._load_config()
                        tf.reset_default_graph()
                        with tf.Session() as sess:
                            with pytest.raises(UnityEnvironmentException):
                                tc._initialize_trainers(config, sess)