refactor: Improve parsing of flight schedule data

This commit is contained in:
windyboy
2024-07-31 17:48:36 +08:00
parent 54dcefb08a
commit 20872710ce
+93 -92
View File
@@ -279,101 +279,102 @@ 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"))
})
})
// var _ = 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("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("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("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("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("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("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("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"))
})
})
// 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"))
// })
// })
// })