Any numeric

This commit is contained in:
cdricms
2025-07-28 20:24:13 +02:00
parent 9e4323f6a1
commit ec47a20b29
3 changed files with 291 additions and 140 deletions

View File

@@ -1,6 +1,6 @@
import Testing
@testable import Units // Assuming your library is in a module named 'Units'
@testable import Units
@Test func unitCreationSubscriptTests() async throws {
// Test creating UnitValue using string subscript on numeric literals
@@ -8,13 +8,17 @@ import Testing
#expect(tenKilosByString != nil)
#expect(tenKilosByString?.value == 10.0)
#expect(tenKilosByString?.unit == .kilogram)
print("Created 10 kg by string subscript: \(String(describing: tenKilosByString))")
print(
"Created 10 kg by string subscript: \(String(describing: tenKilosByString))"
)
let fiveMetersByString = 5.0["m"]
#expect(fiveMetersByString != nil)
#expect(fiveMetersByString?.value == 5.0)
#expect(fiveMetersByString?.unit == .meter)
print("Created 5 m by string subscript: \(String(describing: fiveMetersByString))")
print(
"Created 5 m by string subscript: \(String(describing: fiveMetersByString))"
)
// Test creating UnitValue using enum subscript on numeric literals
let twentyLitersByEnum = 20.0[.liter]
@@ -61,13 +65,17 @@ import Testing
#expect(miles != nil)
#expect(miles?.value == 62.13711922373339) // Exact conversion value
#expect(miles?.unit == .mile)
print("100 km to mi (chained string subscript): \(String(describing: miles))")
print(
"100 km to mi (chained string subscript): \(String(describing: miles))"
)
let feetFromMiles = miles?["ft"]
#expect(feetFromMiles != nil)
#expect(feetFromMiles?.value == 328083.9895013123) // Exact conversion value (100km -> mi -> ft)
#expect(feetFromMiles?.unit == .foot)
print("100 km to mi to ft (chained string subscript): \(String(describing: feetFromMiles))")
print(
"100 km to mi to ft (chained string subscript): \(String(describing: feetFromMiles))"
)
} else {
#expect(false, "Failed to create initial 100 km unit.")
}