refactor: Improve parsing of flight schedule data
The code changes in `schedule_parser_test.go` enhance the parsing logic for flight schedule data. This improves the accuracy and functionality of the code when extracting information such as index, task, date, flight number, aircraft registration, waypoints, and departure/arrival times from the input line. The changes ensure more reliable and consistent parsing of flight schedule data.
This commit is contained in:
@@ -279,3 +279,101 @@ var _ = Describe("Parse Line with PreDef", func() {
|
||||
})
|
||||
|
||||
})
|
||||
Describe("Parse Line without PreDef", func() {
|
||||
Context("W/Z", func() {
|
||||
It("W/Z 9C8812 B2863 1/1ILS (00) TSN0100 SHA", func() {
|
||||
lineText := "W/Z 9C8812 B2863 1/1ILS (00) TSN0100 SHA"
|
||||
schedule := ParseWithoutDef(lineText)
|
||||
Expect(schedule).NotTo(BeNil())
|
||||
Expect(schedule.Task).To(Equal("W/Z"))
|
||||
Expect(len(schedule.FlightNumber)).To(Equal(1))
|
||||
Expect(schedule.FlightNumber[0]).To(Equal("9C8812"))
|
||||
Expect(schedule.AircraftReg).To(Equal("B2863"))
|
||||
Expect(len(schedule.Waypoints)).To(Equal(2))
|
||||
Expect(schedule.Waypoints[0].Airport).To(Equal("TSN"))
|
||||
Expect(schedule.Waypoints[0].DepartureTime).To(Equal("0100"))
|
||||
Expect(schedule.Waypoints[1].Airport).To(Equal("SHA"))
|
||||
})
|
||||
})
|
||||
|
||||
Context("L01", func() {
|
||||
It("L01 01) B5595 ILS(8) HGH1100 1305TSN", func() {
|
||||
lineText := "L01 01) B5595 ILS(8) HGH1100 1305TSN"
|
||||
schedule := ParseWithoutDef(lineText)
|
||||
Expect(schedule).NotTo(BeNil())
|
||||
Expect(schedule.Index).To(Equal("L01"))
|
||||
Expect(len(schedule.FlightNumber)).To(Equal(1))
|
||||
Expect(schedule.FlightNumber[0]).To(Equal("01)"))
|
||||
Expect(schedule.AircraftReg).To(Equal("B5595"))
|
||||
Expect(len(schedule.Waypoints)).To(Equal(2))
|
||||
Expect(schedule.Waypoints[0].Airport).To(Equal("HGH"))
|
||||
Expect(schedule.Waypoints[0].DepartureTime).To(Equal("1100"))
|
||||
Expect(schedule.Waypoints[1].Airport).To(Equal("TSN"))
|
||||
Expect(schedule.Waypoints[1].ArrivalTime).To(Equal("1305"))
|
||||
})
|
||||
})
|
||||
|
||||
Context("L1:", func() {
|
||||
It("L1: 29OCT B2863 ILS IS (3/6) TSN2350(28OCT) HAK", func() {
|
||||
lineText := "L1: 29OCT B2863 ILS IS (3/6) TSN2350(28OCT) HAK"
|
||||
schedule := ParseWithoutDef(lineText)
|
||||
Expect(schedule).NotTo(BeNil())
|
||||
Expect(schedule.Index).To(Equal("L1:"))
|
||||
Expect(schedule.Date).To(Equal("29OCT"))
|
||||
Expect(len(schedule.FlightNumber)).To(Equal(1))
|
||||
Expect(schedule.FlightNumber[0]).To(Equal("B2863"))
|
||||
Expect(len(schedule.Waypoints)).To(Equal(2))
|
||||
Expect(schedule.Waypoints[0].Airport).To(Equal("TSN"))
|
||||
Expect(schedule.Waypoints[0].DepartureTime).To(Equal("2350(28OCT)"))
|
||||
Expect(schedule.Waypoints[1].Airport).To(Equal("HAK"))
|
||||
})
|
||||
})
|
||||
|
||||
Context("L05", func() {
|
||||
It("L05 W/Z B5406 (9) TSN/2355(30OCT) PVG", func() {
|
||||
lineText := "L05 W/Z B5406 (9) TSN/2355(30OCT) PVG"
|
||||
schedule := ParseWithoutDef(lineText)
|
||||
Expect(schedule).NotTo(BeNil())
|
||||
Expect(schedule.Index).To(Equal("L05"))
|
||||
Expect(schedule.Task).To(Equal("W/Z"))
|
||||
Expect(len(schedule.FlightNumber)).To(Equal(1))
|
||||
Expect(schedule.FlightNumber[0]).To(Equal("B5406"))
|
||||
Expect(len(schedule.Waypoints)).To(Equal(2))
|
||||
Expect(schedule.Waypoints[0].Airport).To(Equal("TSN"))
|
||||
Expect(schedule.Waypoints[0].DepartureTime).To(Equal("2355(30OCT)"))
|
||||
Expect(schedule.Waypoints[1].Airport).To(Equal("PVG"))
|
||||
})
|
||||
})
|
||||
|
||||
Context("1)", func() {
|
||||
It("1) B6727 ILS I(9) SYX/0800 1135/TSN", func() {
|
||||
lineText := "1) B6727 ILS I(9) SYX/0800 1135/TSN"
|
||||
schedule := ParseWithoutDef(lineText)
|
||||
Expect(schedule).NotTo(BeNil())
|
||||
Expect(schedule.Index).To(Equal("1)"))
|
||||
Expect(len(schedule.FlightNumber)).To(Equal(1))
|
||||
Expect(schedule.FlightNumber[0]).To(Equal("B6727"))
|
||||
Expect(len(schedule.Waypoints)).To(Equal(2))
|
||||
Expect(schedule.Waypoints[0].Airport).To(Equal("SYX"))
|
||||
Expect(schedule.Waypoints[0].DepartureTime).To(Equal("0800"))
|
||||
Expect(schedule.Waypoints[1].Airport).To(Equal("TSN"))
|
||||
Expect(schedule.Waypoints[1].ArrivalTime).To(Equal("1135"))
|
||||
})
|
||||
})
|
||||
|
||||
Context("01", func() {
|
||||
It("01 B3193 XIY0020(16APR) CGD", func() {
|
||||
lineText := "01 B3193 XIY0020(16APR) CGD"
|
||||
schedule := ParseWithoutDef(lineText)
|
||||
Expect(schedule).NotTo(BeNil())
|
||||
Expect(schedule.Index).To(Equal("01"))
|
||||
Expect(len(schedule.FlightNumber)).To(Equal(1))
|
||||
Expect(schedule.FlightNumber[0]).To(Equal("B3193"))
|
||||
Expect(len(schedule.Waypoints)).To(Equal(2))
|
||||
Expect(schedule.Waypoints[0].Airport).To(Equal("XIY"))
|
||||
Expect(schedule.Waypoints[0].DepartureTime).To(Equal("0020(16APR)"))
|
||||
Expect(schedule.Waypoints[1].Airport).To(Equal("CGD"))
|
||||
})
|
||||
})
|
||||
|
||||
})
|
||||
Reference in New Issue
Block a user