public void SameStations() { StationEntity fromStation = MetroWebEntity.Instance.StationList["宜山路", "4号线"]; StationEntity toStation = MetroWebEntity.Instance.StationList["宝山路", "3号线"]; finder = new RouteFinder(); Tuple <List <StationLineEntity>, TimeSpan> result1 = finder.GetTheNearestRouteBetween(fromStation, toStation); Assert.AreEqual(10, result1.Item1.Count); Tuple <List <StationLineEntity>, TimeSpan> result2 = finder.GetTheNearestRouteBetween(toStation, fromStation); Assert.AreEqual(10, result2.Item1.Count); }
public StationInfo[] GetNearestRoute(string fromStationName, int fromLine, string toStationName, int toLine) { StationEntity fromStationEntity; try { fromStationEntity = MetroWebEntity.Instance.StationList[fromStationName, string.Format("{0}号线", fromLine)]; } catch { throw new Exception("From Station is invalid!"); } StationEntity toStationEntity; try { toStationEntity = MetroWebEntity.Instance.StationList[toStationName, string.Format("{0}号线", toLine)]; } catch { throw new Exception("To Station is invalid!"); } RouteFinder finder = new RouteFinder(); var stationLineList = finder.GetTheNearestRouteBetween(fromStationEntity, toStationEntity).Item1; List <StationInfo> stationInfoList = new List <StationInfo>(); foreach (var stationLine in stationLineList) { StationInfo stationInfo = new StationInfoAdapter(stationLine.Station).ToObject(); stationInfoList.Add(stationInfo); } return(stationInfoList.ToArray()); }
public void TwoStationNeedTransfer() { StationEntity fromStation = MetroWebEntity.Instance.StationList["杨高中路", "9号线"]; StationEntity toStation = MetroWebEntity.Instance.StationList["东昌路", "2号线"]; finder = new RouteFinder(); Tuple <List <StationLineEntity>, TimeSpan> result1 = finder.GetTheNearestRouteBetween(fromStation, toStation); Assert.AreEqual(3, result1.Item1.Count); finder = new RouteFinder(); Tuple <List <StationLineEntity>, TimeSpan> result2 = finder.GetTheNearestRouteBetween(toStation, fromStation); Assert.AreEqual(3, result2.Item1.Count); }
public void GetTwoStationsALittleFar() { StationEntity fromStation = MetroWebEntity.Instance.StationList["临港大道", "16号线"]; StationEntity toStation = MetroWebEntity.Instance.StationList["惠南东", "16号线"]; finder = new RouteFinder(); Tuple <List <StationLineEntity>, TimeSpan> result1 = finder.GetTheNearestRouteBetween(fromStation, toStation); Assert.AreEqual(3, result1.Item1.Count); finder = new RouteFinder(); Tuple <List <StationLineEntity>, TimeSpan> result2 = finder.GetTheNearestRouteBetween(toStation, fromStation); Assert.AreEqual(3, result2.Item1.Count); }
public void ComplexTransfer() { StationEntity fromStation = MetroWebEntity.Instance.StationList["东川路", "5号线"]; StationEntity toStation = MetroWebEntity.Instance.StationList["北洋泾路", "6号线"]; finder = new RouteFinder(); Tuple <List <StationLineEntity>, TimeSpan> result1 = finder.GetTheNearestRouteBetween(fromStation, toStation); Assert.AreEqual(26, result1.Item1.Count); finder = new RouteFinder(); Tuple <List <StationLineEntity>, TimeSpan> result2 = finder.GetTheNearestRouteBetween(toStation, fromStation); Assert.AreEqual(25, result2.Item1.Count); }