def get_expected_last_state(self): if self._direction == Direction.south_east(): return self.south_east_state elif self._direction == Direction.south_west(): return self.south_west_state elif self._direction == Direction.north_east(): return self.north_east_state elif self._direction == Direction.north_west(): return self.north_west_state
def get_expected_result(self): if self._direction == Direction.south_east(): return self.south_east_output elif self._direction == Direction.south_west(): return self.south_west_output elif self._direction == Direction.north_east(): return self.north_east_output elif self._direction == Direction.north_west(): return self.north_west_output
def test_returns_list_of_correct_length(self): rnn_setup = Rnn2dTestSetup(direction=Direction.south_east()) rnn = rnn_setup.make_rnn() rnn = MultiDirectional(rnn) x = rnn_setup.make_input() actual = rnn.call(x) # 1 element for output of RNN and 4 elements for states, 1 state per each direction self.assertEqual(5, len(actual))
def test_results(self): rnn_setup = Rnn2dTestSetup(direction=Direction.south_east()) rnn = rnn_setup.make_rnn() rnn = MultiDirectional(rnn) x = rnn_setup.make_input() expected = rnn_setup.get_expected_result_for_multi_directional_rnn() actual = rnn.call(x) num_elements = 5 for i in range(num_elements): actual_output = actual[i] expected_output = expected[i] np.testing.assert_almost_equal(expected_output, actual_output.numpy(), 6)