diff --git a/internal/parsers/schedule_def.go b/internal/parsers/schedule_def.go index 86f7cab..b091746 100644 --- a/internal/parsers/schedule_def.go +++ b/internal/parsers/schedule_def.go @@ -281,6 +281,54 @@ var ( 2: Register, }, }, + { + /** + * 吉祥航空 (HO) + * 124) 14NOV W/Z HO1245 B6966 ILS(8) SHA0005 0255CKG + * 125) 14NOV W/Z HO1246 B6966 ILS(8) CKG0340 0630SHA + */ + Airlines: []string{"HO"}, + MinLen: 7, + WaypointStart: 6, + Fields: map[int]string{ + 0: Index, + 1: Date, + 2: Task, + 3: FlightNumber, + 4: Register, + }, + }, + { + /** + * 河北航空 (NS) + * 05) 14NOV N/M NS3230 B3188 ILS(2) TSN2200 2240SJW + */ + Airlines: []string{"NS"}, + MinLen: 7, + WaypointStart: 6, + Fields: map[int]string{ + 0: Index, + 1: Date, + 2: Task, + 3: FlightNumber, + 4: Register, + }, + }, + { + /** + * 成都航空 (EU) + * 38)W/Z 27NOV EU2748 B6900 CAT1 (8) TSN0800 1055CTU + */ + Airlines: []string{"EU"}, + MinLen: 7, + WaypointStart: 6, + Fields: map[int]string{ + 0: Task, + 1: Date, + 2: FlightNumber, + 3: Register, + }, + }, } ) diff --git a/internal/parsers/schedule_parser_test.go b/internal/parsers/schedule_parser_test.go index d04d8cc..b16766d 100644 --- a/internal/parsers/schedule_parser_test.go +++ b/internal/parsers/schedule_parser_test.go @@ -546,4 +546,44 @@ var _ = Describe("Parse Line with PreDef", func() { }) }) + Context("HO", func() { + It("124) 14NOV W/Z HO1245 B6966 ILS(8) SHA0005 0255CKG", func() { + lineText := "124) 14NOV W/Z HO1245 B6966 ILS(8) SHA0005 0255CKG" + def := FindDef("HO") + Expect(def).NotTo(BeNil()) + schedule := ParseWithDef(lineText, def) + Expect(schedule).NotTo(BeNil()) + Expect(schedule.Index).To(Equal("124)")) + Expect(schedule.Task).To(Equal("W/Z")) + Expect(len(schedule.FlightNumber)).To(Equal(1)) + Expect(schedule.FlightNumber[0]).To(Equal("HO1245")) + Expect(schedule.AircraftReg).To(Equal("B6966")) + Expect(len(schedule.Waypoints)).To(Equal(2)) + Expect(schedule.Waypoints[0].Airport).To(Equal("SHA")) + Expect(schedule.Waypoints[0].DepartureTime).To(Equal("0005")) + Expect(schedule.Waypoints[1].Airport).To(Equal("CKG")) + Expect(schedule.Waypoints[1].ArrivalTime).To(Equal("0255")) + }) + }) + + Context("EU", func() { + It("38)W/Z 27NOV EU2748 B6900 CAT1 (8) TSN0800 1055CTU", func() { + lineText := "38)W/Z 27NOV EU2748 B6900 CAT1 (8) TSN0800 1055CTU" + def := FindDef("EU") + Expect(def).NotTo(BeNil()) + schedule := ParseWithDef(lineText, def) + Expect(schedule).NotTo(BeNil()) + // Expect(schedule.Index).To(Equal("38)")) + Expect(schedule.Task).To(Equal("W/Z")) + Expect(len(schedule.FlightNumber)).To(Equal(1)) + Expect(schedule.FlightNumber[0]).To(Equal("EU2748")) + Expect(schedule.AircraftReg).To(Equal("B6900")) + Expect(len(schedule.Waypoints)).To(Equal(2)) + Expect(schedule.Waypoints[0].Airport).To(Equal("TSN")) + Expect(schedule.Waypoints[0].DepartureTime).To(Equal("0800")) + Expect(schedule.Waypoints[1].Airport).To(Equal("CTU")) + Expect(schedule.Waypoints[1].ArrivalTime).To(Equal("1055")) + }) + }) + })