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
37 changes: 37 additions & 0 deletions src/GeoTools-Tests/AbsoluteCoordinatesTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -305,3 +305,40 @@ AbsoluteCoordinatesTest >> testRandom [
coordinates := AbsoluteCoordinates random.
self assert: coordinates isNotEmpty
]

{ #category : #tests }
AbsoluteCoordinatesTest >> testReadLatitude [

self assert: (AbsoluteCoordinates readLatitudeString: nil) isNil.

self assert: (AbsoluteCoordinates readLatitudeString: 'N 0°0.0' ) equals: 0.0.

self assert: (AbsoluteCoordinates readLatitudeString: 'N 1°0.0' ) equals: 1.0.
self assert: (AbsoluteCoordinates readLatitudeString: 'S 1°0.0' ) equals: -1.0.

self assert: (AbsoluteCoordinates readLatitudeString: 'N 1°0''0"' ) equals: 1.0.
self assert: (AbsoluteCoordinates readLatitudeString: 'S 1°0''0"' ) equals: -1.0.
self assert: (AbsoluteCoordinates readLatitudeString: 'N1°0''0"' ) equals: 1.0.
self assert: (AbsoluteCoordinates readLatitudeString: 'S1°0''0"' ) equals: -1.0.
self assert: (AbsoluteCoordinates readLatitudeString: 'N 1° 0'' 0" ' ) equals: 1.0.
self assert: (AbsoluteCoordinates readLatitudeString: 'S 1° 0 '' 0 " ' ) equals: -1.0.
self assert: (AbsoluteCoordinates readLatitudeString: 'N 49° 36.99') equals: 49.6165.
]

{ #category : #tests }
AbsoluteCoordinatesTest >> testReadLongitude [
self assert: (AbsoluteCoordinates readLongitudeString: nil) isNil.

self assert: (AbsoluteCoordinates readLongitudeString: 'E 0°0.0' ) equals: 0.0.

self assert: (AbsoluteCoordinates readLongitudeString: 'E 1°0.0' ) equals: 1.0.
self assert: (AbsoluteCoordinates readLongitudeString: 'W 1°0.0' ) equals: -1.0.

self assert: (AbsoluteCoordinates readLongitudeString: 'E 1°0''0"' ) equals: 1.0.
self assert: (AbsoluteCoordinates readLongitudeString: 'W 1°0''0"' ) equals: -1.0.

self assert: (AbsoluteCoordinates readLongitudeString: 'E1°0''0"' ) equals: 1.0.
self assert: (AbsoluteCoordinates readLongitudeString: 'W1°0''0"' ) equals: -1.0.
self assert: (AbsoluteCoordinates readLongitudeString: 'E 1° 0'' 0" ' ) equals: 1.0.
self assert: (AbsoluteCoordinates readLongitudeString: 'W 1° 0 '' 0 " ' ) equals: -1.0.
]
6 changes: 6 additions & 0 deletions src/GeoTools/AbsoluteCoordinates.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,8 @@ AbsoluteCoordinates class >> readDMDString: aString [
_string := _string removeChar: $E.
_string := _string removeChar: $W.
_string := _string removeChar: $O.
_string := self in: _string removeChar: Character space.
_string := self in: _string removeChar: Character tab.

rs := ReadStream on: _string.
degree := (rs upTo: self charDegree) asNumber.
Expand Down Expand Up @@ -365,6 +367,10 @@ AbsoluteCoordinates class >> readDMSString: aString [
_string := _string removeChar: $W.
_string := _string removeChar: $O.

_string := self in: _string removeChar: Character space.
_string := self in: _string removeChar: Character tab.


rs := ReadStream on: _string.
degree := (rs upTo: self charDegree) ifNotEmpty: [ :e | e asNumber ] ifEmpty: [ 0 ].
minute := (rs upTo: self charMinute) ifNotEmpty: [ :e | e asNumber ] ifEmpty: [ 0 ].
Expand Down