refactor: Improve parsing of CK Airlines (CK) flight schedule data
This commit is contained in:
@@ -20,10 +20,11 @@ const (
|
||||
Date = "date"
|
||||
Task = "task"
|
||||
// Index = "idx"
|
||||
AllDigitsPattern = `^(?P<dep_time>\d+)$`
|
||||
IndexPattern = `^(?P<idx>\(?L?[0-9]+\)?:?\.?)$`
|
||||
DatePattern = `^(?P<date>\d{2}\w{3})$`
|
||||
TaskPattern = `^(?P<task>[A-Z]\/[A-Z])$`
|
||||
AllDigitsPattern = `^(?P<dep_time>\d+)$`
|
||||
IndexPattern = `^(?P<idx>\(?L?[0-9]+\)?:?\.?)$`
|
||||
DatePattern = `^(?P<date>\d{2}\w{3})$`
|
||||
// CK task: 01)H/Z
|
||||
TaskPattern = `(?P<task>[A-Z]\/[A-Z])$`
|
||||
WaypointPattern = `^(SI:)?(?P<arr_time>\d{4}(\(\d{2}[A-Z]{3}\))?)?\/?(?P<airport>[A-Z]{3})\/?(?P<dep_time>\d{4}(\(\d{2}[A-Z]{3}\))?)?$`
|
||||
FlightNumberPattern = `^(?P<number>[0-9A-Z][0-9A-Z]\d{3,5})$`
|
||||
RegisterPattern = `^(?P<reg>B\d{4})$`
|
||||
@@ -172,6 +173,20 @@ var (
|
||||
3: Register,
|
||||
},
|
||||
},
|
||||
{
|
||||
/**
|
||||
* 中国货运 (CK)
|
||||
*01)H/Z CK261 B2076 PVG1535(30OCT) 1705TPE
|
||||
*/
|
||||
Airlines: []string{"CK"},
|
||||
MinLen: 4,
|
||||
WaypointStart: 3,
|
||||
Fields: map[int]string{
|
||||
0: Task,
|
||||
1: FlightNumber,
|
||||
2: Register,
|
||||
},
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -206,9 +206,9 @@ var _ = Describe("Parser Definition", func() {
|
||||
})
|
||||
})
|
||||
|
||||
Context("CK", func() {
|
||||
Context("XX", func() {
|
||||
It("nil", func() {
|
||||
def := FindDef("CK")
|
||||
def := FindDef("XX")
|
||||
Expect(def).To(BeNil())
|
||||
})
|
||||
})
|
||||
@@ -365,4 +365,23 @@ var _ = Describe("Parse Line with PreDef", func() {
|
||||
})
|
||||
})
|
||||
|
||||
Context("CK", func() {
|
||||
It("01)H/Z CK261 B2076 PVG1535(30OCT) 1705TPE", func() {
|
||||
lineText := "01)H/Z CK261 B2076 PVG1535(30OCT) 1705TPE"
|
||||
def := FindDef("CK")
|
||||
Expect(def).NotTo(BeNil())
|
||||
schedule := ParseWithDef(lineText, def)
|
||||
Expect(schedule).NotTo(BeNil())
|
||||
Expect(schedule.Task).To(Equal("H/Z"))
|
||||
Expect(len(schedule.FlightNumber)).To(Equal(1))
|
||||
Expect(schedule.FlightNumber[0]).To(Equal("CK261"))
|
||||
Expect(schedule.AircraftReg).To(Equal("B2076"))
|
||||
Expect(len(schedule.Waypoints)).To(Equal(2))
|
||||
Expect(schedule.Waypoints[0].Airport).To(Equal("PVG"))
|
||||
Expect(schedule.Waypoints[0].DepartureTime).To(Equal("1535(30OCT)"))
|
||||
Expect(schedule.Waypoints[1].Airport).To(Equal("TPE"))
|
||||
Expect(schedule.Waypoints[1].ArrivalTime).To(Equal("1705"))
|
||||
})
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user