예제 #1
0
 def test_multiple_paths(self):
     map = 'tests/3x3_two_paths.xml'
     self.assertEqual(
         PathFinder.get_shortest_paths(map)['paths'], [{
             'points': [{
                 'col': 'A',
                 'row': 1
             }, {
                 'col': 'A',
                 'row': 2
             }, {
                 'col': 'A',
                 'row': 3
             }, {
                 'col': 'B',
                 'row': 3
             }]
         }, {
             'points': [{
                 'col': 'A',
                 'row': 1
             }, {
                 'col': 'A',
                 'row': 2
             }, {
                 'col': 'B',
                 'row': 2
             }, {
                 'col': 'B',
                 'row': 3
             }]
         }])
예제 #2
0
 def test_no_paths(self):
     map = 'tests/3x3_no_paths.xml'
     self.assertEqual(
         PathFinder.get_shortest_paths(map)['paths'],
         [{
             'points': ['No paths found']
         }],
     )
예제 #3
0
def main():

    try:
        map = sys.argv[1]
    except IndexError:
        print("First argument must be the path to the .xml file!")
    else:
        data = PathFinder.get_shortest_paths(map)

        try:
            result_file = sys.argv[2]
            with open(result_file, 'w+') as res:
                res.write(str(data))
            print('Path to the results file:', os.path.abspath(result_file))
        except IndexError:
            pass
            print(data)
예제 #4
0
 def test_one_path(self):
     map = 'tests/3x3_one_path.xml'
     self.assertEqual(
         PathFinder.get_shortest_paths(map)['paths'], [{
             'points': [{
                 'row': 1,
                 'col': 'A'
             }, {
                 'row': 2,
                 'col': 'A'
             }, {
                 'row': 2,
                 'col': 'B'
             }, {
                 'row': 2,
                 'col': 'C'
             }]
         }])
예제 #5
0
 def test_invalid_xml_content(self):
     map = 'tests/3x3_invalid_xml_tag.xml'
     self.assertEqual(PathFinder.get_shortest_paths(map),
                      "Invalid content of .xml file.")
예제 #6
0
 def test_start_or_end_out_of_matrix(self):
     map = 'tests/3x3_start_out_of_matrix.xml'
     self.assertEqual(PathFinder.get_shortest_paths(map),
                      "Start/End node not in matrix.")
예제 #7
0
def return_data():
    request_data = request.data.decode("utf-8")
    with open('temp.xml', 'w+') as temp:
        temp.write(request_data)
    return jsonify(PathFinder.get_shortest_paths('temp.xml'))