Fully implemented Bidirectional search with unit tests