Releases: manwar/Map-Tube
Releases · manwar/Map-Tube
Release list
Release v5.1.0
This release is only possible because of help from @GWS. - A new function has been added that allows for limitations on the links of a station. The station has an attribute called "link," which now refers to a specific link limited to certain lines. For instance, link="A:x,C" reveals that the link to station A can run only on line "x" even if the stations claim to be using more than one common line. If more than one link is forbidden from operating on one particular line, the lines are separated by pipes like this link="A:x|y,C." The previous links will not change as there are no additional signs. The invalid id will trigger Map::Tube::Exception::InvalidStationLineId. - The function get_shortest_route() is updated to accept line limitations of individual links. As a result, a link becomes charged for using a link that travels on a line which is not included in its limitations. - get_next_stations() and get_linked_stations now accept an optional $line_name parameter, allowing users to inquire "what is specifically linked to this station on this line" in a way that enforces link-by-link restrictions, as opposed to simply returning all physically linked neighbors regardless of the line. - The preferred() method of Map::Tube::Route also considers link restrictions when determining the ride line(s) to display for each segment, in accordance with the cost logic of get_shortest_route() (verifiable via t/02-preferred.t on a map that employs the new syntax). - A flaw was fixed that caused an error to occur due to the reading of unset link restriction via chained hash dereferencing. Although this flaw did not affect routing results, it did lead to faulty deep object comparison in Test::Map::Tube's ok_map_routes(), which then resulted in passing spurious test failures on maps that do not even employ the new syntax (stated in t/ok_map_other_link.t and t/ok_map_common_lines.t).
Release v5.0.1
This release is only possible because of help from @GWS. - The routing algorithm is line-change-aware now: when two candidate routes have the same number of stops, the one requiring fewer line changes is preferred. Each line change incurs a small fractional penalty (0.5) on top of the normal per-hop cost of 1, so hop count always dominates but unnecessary changes are avoided. - Switched to dotted-decimal versioning (v-strings).
Release v4.10
This release prepared by @GWS. - Removed is_tainted() and untaint_path() from Map::Utils - Removed call to untaint_path() from Map::Tube::Utils - Removed dependency on Path::Tiny - Removed unit test t/ok_map_path_check.t - Documented Map::Tube::Paris
Release v4.09
- Upgraded minimum Perl v5.14 for better Unicode support. - Removed the use of Taint::Util - Added methods untaint_path() and is_tainted() to Map::Tube::Utils - Added unit test t/ok_map_path_check.t - Tidied up unit test folder - Used JSON::MaybeXS rather than JSON.
Release v4.08
- Added support for Unicode characters in station names. - Added support for Unicode characters in line names. - Added unit test for Unicode characters in station and line names.
Release v4.07
- Renamed Forked test to OtherLink test to be more explicit.
Release v4.06
- Proposed patch for this FAIL report, thanks Andreas J. Koenig. https://www.cpantesters.org/cpan/report/50dde750-1736-11f0-8297-ce01b18213f0
Release v4.05
- Updated doc about color names of line.
Release v4.04
- Fixed empty link issue, thanks @GWS.
Release v4.03
Thanks to @GWS for these changes: - Fixed over-eager testing in Test::Map::Tube. (https://github.com/manwar/Map-Tube/issues/19) - Fixed possibe infinite loop in _get_shortest_route( ). (https://github.com/manwar/Map-Tube/issues/18) - Augmented test cases. - Added documentation for available maps.