========================================
# One trackpoint
20.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
========================================
# Two trackpoints
20.020.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
41.3078680,-72.9342120,20.0,2018-08-24T13:49:46Z
========================================
# Poorly formatted
20.020.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
41.3078680,-72.9342120,20.0,2018-08-24T13:49:46Z
========================================
# Many trackpoints
20.020.020.020.020.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
41.3078680,-72.9342120,20.0,2018-08-24T13:49:46Z
41.3078680,-72.9342120,20.0,2018-08-24T13:49:47Z
41.3078700,-72.9342200,20.0,2018-08-24T13:49:48Z
41.3078810,-72.9342590,20.0,2018-08-24T13:49:49Z
========================================
# With Header
Jim GlennMorning Ride120.020.020.020.020.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
41.3078680,-72.9342120,20.0,2018-08-24T13:49:46Z
41.3078680,-72.9342120,20.0,2018-08-24T13:49:47Z
41.3078700,-72.9342200,20.0,2018-08-24T13:49:48Z
41.3078810,-72.9342590,20.0,2018-08-24T13:49:49Z
========================================
# Single quotes around attributes
20.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
========================================
# time element in header
20.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
========================================
# Other attributes for trkpt
20.020.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
41.3078680,-72.9342120,20.0,2018-08-24T13:49:46Z
========================================
# Attributes for ele
20.020.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
41.3078680,-72.9342120,20.0,2018-08-24T13:49:46Z
========================================
# Other elements in trkpt
20.0180
20.02252.25
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
41.3078680,-72.9342120,20.0,2018-08-24T13:49:46Z
========================================
# Single inside double
20.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
========================================
# In text
This has no meaning so you should still extract the ele and time element"20.0 No meaning"'Still no meaning'
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
========================================
# Upper case for element types
20.020.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
41.3078680,-72.9342120,20.0,2018-08-24T13:49:46Z
========================================
# Mixed case for element types
20.0123
456
20.0123
456
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
41.3078680,-72.9342120,20.0,2018-08-24T13:49:46Z
========================================
# Mismatched cases in start/end tags
20.0123
456
20.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
41.3078680,-72.9342120,20.0,2018-08-24T13:49:46Z
========================================
# Single space after lat, before =
20.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
========================================
# Single space after lat, after =
20.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
========================================
# Single space after other attributes, before =
20.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
========================================
# Single before end of tag
20.020.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
41.3078680,-72.9342120,20.0,2018-08-24T13:49:46Z
========================================
# Multiple after lat, before =
20.020.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
41.3078680,-72.9342120,20.0,2018-08-24T13:49:46Z
========================================
# Comma in time text
20.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45,EST
========================================
# Comma in ele text
20,0
--------------------
41.3078680,-72.9342120,20,0,2018-08-24T13:49:45Z
========================================
# Comma in trkpt attribute
20.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
========================================
# Comma in time element not in trkpt
20.0
--------------------
41.3078680,-72.9342120,20.0,2018-08-24T13:49:45Z
========================================
# Long element type
--------------------
0.0,0.0,0.0,2019-09-09T09:09:09Z
========================================
# Long attribute name
--------------------
0.0,0.0,0.0,2019-09-09T09:09:09Z
========================================
# Long attribute value
--------------------
0.0,0.0,0.0,2019-09-09T09:09:09Z
========================================
# Missing end
! check graceful
20.0
--------------------
========================================
# Whitespace after tag start
! check graceful
<
trkpt lat="41.3078680" lon="-72.9342120">
<
ele>20.0
<
time>2018-08-24T13:49:45Z
--------------------
========================================
# Whitespace after /
! check graceful
20.0
ele>
2018-08-24T13:49:45Z
time>
trkpt>
--------------------
========================================
# Missing attribute equals
! check graceful
20.02018-08-24T13:49:45Z
--------------------
========================================
# Missing attribute value
! check graceful
20.02018-08-24T13:49:45Z
--------------------
========================================
# Missing attribute quotes
! check graceful
20.02018-08-24T13:49:45Z
--------------------
========================================
# EOF in element type
! check graceful