@routing @basic @testbot
Feature: Basic Routing

    Background:
        Given the profile "testbot"
        Given a grid size of 200 meters

    @smallest
    Scenario: Checking
        Given the node map
            | a | b | 1 | c | d | e |

        And the ways
            | nodes |
            | ab    |
            | bc    |
            | cd    |
            | de    |

        When I route I should get
            | from | to | route          | summary  |
            | a    | e  | ab,bc,cd,de,de | ab, bc   |
            | e    | a  | de,cd,bc,ab,ab | de, bc   |
            | a    | b  | ab,ab          | ab       |
            | b    | d  | bc,cd,cd       | bc, cd   |
            | 1    | c  | bc,bc          | bc       |

    @smallest
    Scenario: Check handling empty values
        Given the node map
            | a | b |  | c |   | d | f |
            |   |   |  |   |   | e |   |

        And the ways
            | nodes | name |
            | ab    | ab   |
            | bc    | bc   |
            | cd    |      |
            | de    | de   |
            | df    | df   |

        When I route I should get
            | from | to | route          | summary  |
            | e    | a  | de,,bc,ab,ab   | de, bc   |

    @smallest @todo
    Scenario: Summaries when routing on a simple network
        Given the node map
            | a | b |

        And the ways
            | nodes |
            | ab    |

        When I route I should get
            | from | to | route | summary |
            | a    | b  | ab,ab | ab      |
            | b    | a  | ab,ab | ab      |

    @repeated
    Scenario: Check handling empty values
        Given the node map
            | f |   |   | x |   |   |
            | b | c | d | e | 1 | g |
            | a |   |   | y |   |   |

        And the ways
            | nodes | name   | # |
            | ab    | first  |   |
            | bc    | first  |   |
            | cd    | first  |   |
            | deg   | second |   |
            | bf    | third  |   |
            | xey   | cross  |we need this because phantom node segments are not considered for the summary |

        When I route I should get
            | from | to | route                     | summary       |
            | a    | 1  | first,first,second,second | first, second |

