@@ -7,7 +7,7 @@ class DistanceFormatterTests: XCTestCase {
77 let sut = DistanceFormatter ( )
88 sut. locale = Locale ( identifier: " EN_CA " )
99
10- let formattedString = sut. string ( fromDistance: 1 )
10+ let formattedString = sut. string ( fromDistance: 1 , units : . metric )
1111
1212 XCTAssert ( sut. locale. usesMetricSystem, " Selected locale does not use Metric system " )
1313 XCTAssertEqual ( formattedString, " 1 m " , " Meters distance is not formatted correctly! " )
@@ -17,7 +17,7 @@ class DistanceFormatterTests: XCTestCase {
1717 let sut = DistanceFormatter ( )
1818 sut. locale = Locale ( identifier: " EN_CA " )
1919
20- let formattedString = sut. string ( fromDistance: 1337 )
20+ let formattedString = sut. string ( fromDistance: 1337 , units : . metric )
2121
2222 XCTAssert ( sut. locale. usesMetricSystem, " Selected locale does not use Metric system " )
2323 XCTAssertEqual ( formattedString, " 1.25 km " , " Kilometers distance is not formatted correctly! " )
@@ -27,7 +27,7 @@ class DistanceFormatterTests: XCTestCase {
2727 let sut = DistanceFormatter ( )
2828 sut. locale = Locale ( identifier: " EN_US " )
2929
30- let formattedString = sut. string ( fromDistance: 1 )
30+ let formattedString = sut. string ( fromDistance: 1 , units : . imperial )
3131
3232 XCTAssert ( !sut. locale. usesMetricSystem, " Selected locale does not use Imperial system " )
3333 XCTAssertEqual ( formattedString, " 3.25 ft " , " Feet distance is not formatted correctly! " )
@@ -37,7 +37,7 @@ class DistanceFormatterTests: XCTestCase {
3737 let sut = DistanceFormatter ( )
3838 sut. locale = Locale ( identifier: " EN_US " )
3939
40- let formattedString = sut. string ( fromDistance: 1337 )
40+ let formattedString = sut. string ( fromDistance: 1337 , units : . imperial )
4141
4242 XCTAssert ( !sut. locale. usesMetricSystem, " Selected locale does not use Imperial system " )
4343 XCTAssertEqual ( formattedString, " 0.75 mi " , " Miles distance is not formatted correctly! " )
@@ -47,7 +47,7 @@ class DistanceFormatterTests: XCTestCase {
4747 let sut = DistanceFormatter ( )
4848 sut. locale = Locale ( identifier: " EN_US " )
4949
50- let formattedString = sut. string ( fromDistance: 1337 , useMetricSystem : true )
50+ let formattedString = sut. string ( fromDistance: 1337 , units : . metric )
5151
5252 XCTAssertFalse ( sut. locale. usesMetricSystem, " Selected locale does not use Metric system " )
5353 XCTAssertEqual ( formattedString, " 1.25 km " , " Kilometers distance is not formatted correctly! " )
@@ -57,12 +57,43 @@ class DistanceFormatterTests: XCTestCase {
5757 let sut = DistanceFormatter ( )
5858 sut. locale = Locale ( identifier: " EN_CA " )
5959
60- let formattedString = sut. string ( fromDistance: 1337 , useMetricSystem : false )
60+ let formattedString = sut. string ( fromDistance: 1337 , units : . imperial )
6161
6262 XCTAssert ( sut. locale. usesMetricSystem, " Selected locale does not use Metric system " )
6363 XCTAssertEqual (
6464 formattedString. trimmingCharacters ( in: CharacterSet ( charactersIn: " . " ) ) ,
6565 " 0.75 mi " ,
6666 " Miles distance is not formatted correctly! " )
6767 }
68+
69+ func testFathomsFormat( ) {
70+ let sut = DistanceFormatter ( )
71+ sut. locale = Locale ( identifier: " EN_US " )
72+
73+ let formattedString = sut. string ( fromDistance: 18.288 , units: . nautical) // ~10 fathoms
74+
75+ XCTAssertEqual ( formattedString, " 10 fth " , " Small nautical distance should be formatted in fathoms " )
76+ }
77+
78+ func testNauticalMilesFormat( ) {
79+ let sut = DistanceFormatter ( )
80+ sut. locale = Locale ( identifier: " EN_US " )
81+
82+ let formattedString = sut. string ( fromDistance: 1852 , units: . nautical) // 1 nautical mile
83+
84+ XCTAssertEqual ( formattedString, " 1 nmi " , " Large nautical distance should be formatted in nautical miles " )
85+ }
86+
87+ func testNauticalUnitsFormatting( ) {
88+ let sut = DistanceFormatter ( )
89+ sut. locale = Locale ( identifier: " EN_US " )
90+
91+ // Test small distance (should use fathoms)
92+ let smallDistance = sut. string ( fromDistance: 103 , units: . nautical) // ~54 fathoms
93+ XCTAssertEqual ( smallDistance, " 56.25 fth " , " Distance under 0.2 nautical miles should use fathoms " )
94+
95+ // Test large distance (should use nautical miles)
96+ let largeDistance = sut. string ( fromDistance: 5556 , units: . nautical) // ~3 nautical miles
97+ XCTAssertEqual ( largeDistance, " 3 nmi " , " Distance over 0.2 nautical miles should use nautical miles " )
98+ }
6899}
0 commit comments