From 4f174fe3f9aa5b4ea22e0d60b299f9157b5cfbaa Mon Sep 17 00:00:00 2001 From: "andreas.schildbach" Date: Wed, 1 Sep 2010 09:18:41 +0000 Subject: [PATCH] fixed special case of position git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@121 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- src/de/schildbach/pte/BahnProvider.java | 6 ++++-- test/de/schildbach/pte/BahnProviderTest.java | 21 +++++++++++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/de/schildbach/pte/BahnProvider.java b/src/de/schildbach/pte/BahnProvider.java index 6f1d31db..64648d6c 100644 --- a/src/de/schildbach/pte/BahnProvider.java +++ b/src/de/schildbach/pte/BahnProvider.java @@ -442,12 +442,12 @@ public final class BahnProvider implements NetworkProvider + "Abfahrt (\\d+:\\d+)\\n?Uhr, (\\d+\\.\\d+\\.\\d+).*?" // currentTime , Pattern.DOTALL); private static final Pattern P_DEPARTURES_COARSE = Pattern.compile("
\n(.+?)
", Pattern.DOTALL); - private static final Pattern P_DEPARTURES_FINE = Pattern.compile(".*?" // + static final Pattern P_DEPARTURES_FINE = Pattern.compile(".*?" // + "(.*?).*?" // line + ">>\n\\s*(.+?)\\s*\n
\n" // destination + "(\\d{1,2}:\\d{2})" // time + "(?: ca. ([+-]?\\d+))?" // delay - + "(?:, (Gl\\. " + ParserUtils.P_PLATFORM + "))?" // position + + "(?:(?:, )?(Gl\\. " + ParserUtils.P_PLATFORM + "))?" // position , Pattern.DOTALL); private static final Pattern P_DEPARTURES_URI_STATION_ID = Pattern.compile("input=(\\d+)"); @@ -770,6 +770,8 @@ public final class BahnProvider implements NetworkProvider return "RZr" + number; if (type.equals("N")) // Frankreich, Tours, OrlĂ©ans return "RN" + number; + if (type.equals("VE")) // Lutherstadt Wittenberg + return "RVE" + number; if (type.equals("S")) return "SS" + number; diff --git a/test/de/schildbach/pte/BahnProviderTest.java b/test/de/schildbach/pte/BahnProviderTest.java index 93708db3..20f65ecb 100644 --- a/test/de/schildbach/pte/BahnProviderTest.java +++ b/test/de/schildbach/pte/BahnProviderTest.java @@ -29,7 +29,7 @@ import org.junit.Test; public class BahnProviderTest { @Test - public void uebergang() + public void connectionUebergang() { assertFineConnectionDetails("Berlin Hbf
\n" // + "Übergang\n" // @@ -37,10 +37,29 @@ public class BahnProviderTest + "Berlin-Lichtenberg
"); } + @Test + public void departureWithPlatform() + { + assertFineDepartures("\n" // + + "S 1\n" // + + "\n" // + + ">>\n" // + + "Gänserndorf\n" // + + "
\n" // + + "10:42Gl. 1"); + } + private void assertFineConnectionDetails(String s) { Matcher m = BahnProvider.P_CONNECTION_DETAILS_FINE.matcher(s); assertTrue(m.matches()); // ParserUtils.printGroups(m); } + + private void assertFineDepartures(String s) + { + Matcher m = BahnProvider.P_DEPARTURES_FINE.matcher(s); + assertTrue(m.matches()); + // ParserUtils.printGroups(m); + } }