Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions siteupdate/cplusplus/classes/Route/read_wpt.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,6 +80,7 @@ void Route::read_wpt
w->label_invalid_ends(datacheckerrors);
w->bus_with_i(datacheckerrors);
w->label_looks_hidden(datacheckerrors);
w->lacks_generic(datacheckerrors);
}
}
delete[] wptdata;
Expand Down
15 changes: 13 additions & 2 deletions siteupdate/cplusplus/classes/Waypoint/Waypoint.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -346,6 +346,16 @@ inline bool Waypoint::label_too_long(DatacheckEntryList *datacheckerrors)
return 0;
}

inline void Waypoint::lacks_generic(DatacheckEntryList *datacheckerrors)
{ // label lacks generic highway type
const char* c = label[0] == '*' ? label.data()+1 : label.data();
if ( (*c == 'O' || *c == 'o')
&& (*(c+1) == 'l' || *(c+1) == 'L')
&& (*(c+2) == 'd' || *(c+2) == 'D')
&& *(c+3) >= '0' && *(c+3) <= '9')
datacheckerrors->add(route, label, "", "", "LACKS_GENERIC", "");
}

inline void Waypoint::out_of_bounds(DatacheckEntryList *datacheckerrors, char *fstr)
{ // out-of-bounds coords
if (lat > 90 || lat < -90 || lng > 180 || lng < -180)
Expand DownExpand Up@@ -379,8 +389,9 @@ inline void Waypoint::visible_distance(DatacheckEntryList *datacheckerrors, char

inline void Waypoint::bus_with_i(DatacheckEntryList *datacheckerrors)
{ // look for I-xx with Bus instead of BL or BS
if (label[0] != 'I' || label[1] != '-' || route->region->country->first != "USA") return;
const char *c = label.data()+2;
const char *c = label.data();
if (*c == '*') c++;
if (*c++ != 'I' || *c++ != '-' || route->region->country->first != "USA") return;
if (*c < '0' || *c > '9') return;
while (*c >= '0' && *c <= '9') c++;
if ( *c == 'E' || *c == 'W' || *c == 'C' || *c == 'N' || *c == 'S'
Expand Down
1 change: 1 addition & 0 deletions siteupdate/cplusplus/classes/Waypoint/Waypoint.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -52,5 +52,6 @@ class Waypoint
inline void label_slashes(DatacheckEntryList *, const char *);
inline void label_selfref(DatacheckEntryList *, const char *);
inline bool label_too_long(DatacheckEntryList *);
inline void lacks_generic(DatacheckEntryList *);
inline void underscore_datachecks(DatacheckEntryList *, const char *);
};
10 changes: 7 additions & 3 deletions siteupdate/python-teresco/siteupdate.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -2922,10 +2922,10 @@ def run(self):
# create label->index hashes and check if AltLabels duplicated
if w.alt_labels[a] in r.pri_label_hash:
datacheckerrors.append(DatacheckEntry(r, [w.alt_labels[a]], "DUPLICATE_LABEL"))
r.duplicate_labels.add(a)
r.duplicate_labels.add(w.alt_labels[a])
elif w.alt_labels[a] in r.alt_label_hash:
datacheckerrors.append(DatacheckEntry(r, [w.alt_labels[a]], "DUPLICATE_LABEL"))
r.duplicate_labels.add(a)
r.duplicate_labels.add(w.alt_labels[a])
else:
r.alt_label_hash[w.alt_labels[a]] = index
index += 1
Expand DownExpand Up@@ -3949,14 +3949,18 @@ def run(self):
datacheckerrors.append(DatacheckEntry(r,[w.label],'NONTERMINAL_UNDERSCORE'))

# look for I-xx with Bus instead of BL or BS
if re.fullmatch('I\-[0-9]+[EeWwCcNnSs]?[Bb][Uu][Ss].*', w.label) and all_regions[w.route.region][2] == "USA":
if re.fullmatch('\*?I\-[0-9]+[EeWwCcNnSs]?[Bb][Uu][Ss].*', w.label) and all_regions[w.route.region][2] == "USA":
datacheckerrors.append(DatacheckEntry(r,[w.label],'BUS_WITH_I'))

# look for labels that look like hidden waypoints but
# which aren't hidden
if re.fullmatch('X[0-9][0-9][0-9][0-9][0-9][0-9]', w.label):
datacheckerrors.append(DatacheckEntry(r,[w.label],'LABEL_LOOKS_HIDDEN'))

# lacks generic highway type
if re.fullmatch('^\*?[Oo][lL][dD][0-9].*', w.label):
datacheckerrors.append(DatacheckEntry(r,[w.label],'LACKS_GENERIC'))

# look for USxxxA but not USxxxAlt, B/Bus (others?)
##if re.fullmatch('US[0-9]+A.*', w.label) and not re.fullmatch('US[0-9]+Alt.*', w.label) or \
## re.fullmatch('US[0-9]+B.*', w.label) and \
Expand Down