Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Do not merge yet] Swift Package Manager support #9

Closed
wants to merge 6 commits into from
Closed

Conversation

ole
Copy link
Owner

@ole ole commented Jan 23, 2017

Requires Swift 3.1 so we shouldn't merge this yet.

@ole
Copy link
Owner Author

ole commented Jan 23, 2017

The library builds on macOS 10.12 with this command, using a recent Swift snapshot (I used DEVELOPMENT-SNAPSHOT-2017-01-20-a for testing):

swift build -Xswiftc "-target" -Xswiftc "x86_64-apple-macosx10.12"

When I compile the tests with:

swift test -Xswiftc "-target" -Xswiftc "x86_64-apple-macosx10.12"

I get these build errors:

Compile Swift Module 'AmpereTests' (14 sources)
/Users/elo/code/Writing/2016-07 Ampere/Tests/AmpereTests/UnitAreaTests.swift:17:27: error: binary operator '/' cannot be applied to operands of type 'Measurement<UnitArea>' and 'Measurement<UnitLength>'
        let height = area / width
                     ~~~~ ^ ~~~~~
/Users/elo/code/Writing/2016-07 Ampere/Tests/AmpereTests/UnitAreaTests.swift:17:27: note: expected an argument list of type '(Measurement<UnitType>, Measurement<UnitType>)'
        let height = area / width
                          ^
/Users/elo/code/Writing/2016-07 Ampere/Tests/AmpereTests/UnitAreaTests.swift:33:27: error: binary operator '/' cannot be applied to operands of type 'Measurement<UnitArea>' and 'Measurement<UnitLength>'
        let height = area / width
                     ~~~~ ^ ~~~~~
/Users/elo/code/Writing/2016-07 Ampere/Tests/AmpereTests/UnitAreaTests.swift:33:27: note: expected an argument list of type '(Measurement<UnitType>, Measurement<UnitType>)'
        let height = area / width
                          ^
<unknown>:0: error: build had 1 command failures
error: exit(1): /Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2017-01-20-a.xctoolchain/usr/bin/swift-build-tool -f /Users/elo/code/Writing/2016-07\ Ampere/.build/debug.yaml test

I have no idea why. The same tests compile and run fine in Xcode (in an iOS target, but I think that shouldn't make a difference).

@ole ole mentioned this pull request Jan 23, 2017
3 tasks
Required to make them compile on Linux
@ole
Copy link
Owner Author

ole commented Jan 23, 2017

The tests now compile on Linux but I'm seeing some test failures. Not sure why. I'm using the Docker Swift image (https://hub.docker.com/_/swift/).

$ swift --version
Swift version 3.0.2 (swift-3.0.2-RELEASE)
Target: x86_64-unknown-linux-gnu
$ swift test
Compile Swift Module 'AmpereTests' (14 sources)
Linking ./.build/debug/AmperePackageTests.xctest
Test Suite 'All tests' started at 18:57:59.466
Test Suite 'debug.xctest' started at 18:57:59.467
Test Suite 'DivisionByItselfTests' started at 18:57:59.467
Test Case 'DivisionByItselfTests.testDivisionByItselfWithTheSameUnit' started at 18:57:59.468
Test Case 'DivisionByItselfTests.testDivisionByItselfWithTheSameUnit' passed (0.0 seconds).
Test Case 'DivisionByItselfTests.testDivisionByItselfWithDifferentUnits' started at 18:57:59.468
Test Case 'DivisionByItselfTests.testDivisionByItselfWithDifferentUnits' passed (0.0 seconds).
Test Suite 'DivisionByItselfTests' passed at 18:57:59.468
	 Executed 2 tests, with 0 failures (0 unexpected) in 0.0 (0.0) seconds
Test Suite 'UnitAreaTests' started at 18:57:59.468
Test Case 'UnitAreaTests.testMultiplicationWithDefaultUnits' started at 18:57:59.468
/tmp/Ampere/Tests/AmpereTests/UnitAreaTests.swift:12: error: UnitAreaTests.testMultiplicationWithDefaultUnits : XCTAssertTrue failed - "m²" is not the same unit as "m²"
Test Case 'UnitAreaTests.testMultiplicationWithDefaultUnits' failed (0.0 seconds).
Test Case 'UnitAreaTests.testDivisionWithDefaultUnits' started at 18:57:59.469
/tmp/Ampere/Tests/AmpereTests/UnitAreaTests.swift:20: error: UnitAreaTests.testDivisionWithDefaultUnits : XCTAssertTrue failed - "m" is not the same unit as "m"
Test Case 'UnitAreaTests.testDivisionWithDefaultUnits' failed (0.0 seconds).
Test Case 'UnitAreaTests.testMultiplicationWithNonDefaultUnits' started at 18:57:59.469
/tmp/Ampere/Tests/AmpereTests/UnitAreaTests.swift:28: error: UnitAreaTests.testMultiplicationWithNonDefaultUnits : XCTAssertTrue failed - "m²" is not the same unit as "m²"
Test Case 'UnitAreaTests.testMultiplicationWithNonDefaultUnits' failed (0.0 seconds).
Test Case 'UnitAreaTests.testDivisionWithNonDefaultUnits' started at 18:57:59.469
Test Case 'UnitAreaTests.testDivisionWithNonDefaultUnits' passed (0.0 seconds).
Test Suite 'UnitAreaTests' failed at 18:57:59.470
	 Executed 4 tests, with 3 failures (0 unexpected) in 0.001 (0.001) seconds
Test Suite 'UnitElectricChargeTests' started at 18:57:59.470
Test Case 'UnitElectricChargeTests.testWithBaseUnits' started at 18:57:59.470
Test Case 'UnitElectricChargeTests.testWithBaseUnits' passed (0.0 seconds).
Test Case 'UnitElectricChargeTests.testWithNonBaseUnits' started at 18:57:59.470
Test Case 'UnitElectricChargeTests.testWithNonBaseUnits' passed (0.0 seconds).
Test Suite 'UnitElectricChargeTests' passed at 18:57:59.470
	 Executed 2 tests, with 0 failures (0 unexpected) in 0.0 (0.0) seconds
Test Suite 'UnitElectricPotentialDifferenceTests' started at 18:57:59.471
Test Case 'UnitElectricPotentialDifferenceTests.testWithBaseUnits' started at 18:57:59.471
Test Case 'UnitElectricPotentialDifferenceTests.testWithBaseUnits' passed (0.0 seconds).
Test Case 'UnitElectricPotentialDifferenceTests.testWithNonBaseUnits' started at 18:57:59.471
Test Case 'UnitElectricPotentialDifferenceTests.testWithNonBaseUnits' passed (0.0 seconds).
Test Suite 'UnitElectricPotentialDifferenceTests' passed at 18:57:59.471
	 Executed 2 tests, with 0 failures (0 unexpected) in 0.0 (0.0) seconds
Test Suite 'UnitEnergyTests' started at 18:57:59.471
Test Case 'UnitEnergyTests.testWithBaseUnits' started at 18:57:59.472
Test Case 'UnitEnergyTests.testWithBaseUnits' passed (0.0 seconds).
Test Case 'UnitEnergyTests.testWithNonBaseUnits' started at 18:57:59.472
Test Case 'UnitEnergyTests.testWithNonBaseUnits' passed (0.0 seconds).
Test Suite 'UnitEnergyTests' passed at 18:57:59.472
	 Executed 2 tests, with 0 failures (0 unexpected) in 0.001 (0.001) seconds
Test Suite 'UnitForceTests' started at 18:57:59.473
Test Case 'UnitForceTests.testBaseUnitIsNewtons' started at 18:57:59.473
Test Case 'UnitForceTests.testBaseUnitIsNewtons' passed (0.0 seconds).
Test Case 'UnitForceTests.testUnitsWithSameSymbolAndConverterAreEqual' started at 18:57:59.473
/tmp/Ampere/Tests/AmpereTests/UnitForceTests.swift:15: error: UnitForceTests.testUnitsWithSameSymbolAndConverterAreEqual : XCTAssertEqual failed: ("<UnitForce: 0x0000000000faf140>") is not equal to ("<UnitForce: 0x0000000000fac750>") -
Test Case 'UnitForceTests.testUnitsWithSameSymbolAndConverterAreEqual' failed (0.0 seconds).
Test Case 'UnitForceTests.testKiloNewtons' started at 18:57:59.473
/tmp/Ampere/Tests/AmpereTests/UnitForceTests.swift:21: error: UnitForceTests.testKiloNewtons : XCTAssertEqual failed: ("10.0 kN") is not equal to ("10000.0 N") -
Test Case 'UnitForceTests.testKiloNewtons' failed (0.0 seconds).
Test Case 'UnitForceTests.testKiloponds' started at 18:57:59.474
/tmp/Ampere/Tests/AmpereTests/UnitForceTests.swift:27: error: UnitForceTests.testKiloponds : XCTAssertEqual failed: ("1000.0 kp") is not equal to ("9806.65 N") -
Test Case 'UnitForceTests.testKiloponds' failed (0.0 seconds).
Test Case 'UnitForceTests.testWithBaseUnits' started at 18:57:59.474
Test Case 'UnitForceTests.testWithBaseUnits' passed (0.0 seconds).
Test Case 'UnitForceTests.testWithNonBaseUnits' started at 18:57:59.474
Test Case 'UnitForceTests.testWithNonBaseUnits' passed (0.0 seconds).
Test Suite 'UnitForceTests' failed at 18:57:59.474
	 Executed 6 tests, with 3 failures (0 unexpected) in 0.001 (0.001) seconds
Test Suite 'UnitLengthTests' started at 18:57:59.474
Test Case 'UnitLengthTests.testMultiplicationInMetersPerSecond' started at 18:57:59.474
Test Case 'UnitLengthTests.testMultiplicationInMetersPerSecond' passed (0.0 seconds).
Test Case 'UnitLengthTests.testMultiplicationInKilometersPerHour' started at 18:57:59.474
/tmp/Ampere/Tests/AmpereTests/UnitLengthTests.swift:20: error: UnitLengthTests.testMultiplicationInKilometersPerHour : XCTAssertEqualWithAccuracy failed: ("99000.0792") is not equal to ("99000.0") +/- ("0.001") - "99000.0792 m" is not equal to "99.0 km"
Test Case 'UnitLengthTests.testMultiplicationInKilometersPerHour' failed (0.0 seconds).
Test Case 'UnitLengthTests.testMultiplicationInMilesPerHour' started at 18:57:59.475
/tmp/Ampere/Tests/AmpereTests/UnitLengthTests.swift:28: error: UnitLengthTests.testMultiplicationInMilesPerHour : XCTAssertEqualWithAccuracy failed: ("563270.4") is not equal to ("563269.0") +/- ("0.001") - "563270.4 m" is not equal to "350.0 mi"
Test Case 'UnitLengthTests.testMultiplicationInMilesPerHour' failed (0.0 seconds).
Test Case 'UnitLengthTests.testMultiplicationInKnots' started at 18:57:59.475
/tmp/Ampere/Tests/AmpereTests/UnitLengthTests.swift:36: error: UnitLengthTests.testMultiplicationInKnots : XCTAssertEqualWithAccuracy failed: ("85191.9264") is not equal to ("85192.0") +/- ("0.001") - "85191.9264 m" is not equal to "46.0 NM"
Test Case 'UnitLengthTests.testMultiplicationInKnots' failed (0.0 seconds).
Test Case 'UnitLengthTests.testDivisionByDurationInMetersPerSecond' started at 18:57:59.475
Test Case 'UnitLengthTests.testDivisionByDurationInMetersPerSecond' passed (0.0 seconds).
Test Case 'UnitLengthTests.testDivisionByDurationInKilometersPerHour' started at 18:57:59.476
Test Case 'UnitLengthTests.testDivisionByDurationInKilometersPerHour' passed (0.0 seconds).
Test Case 'UnitLengthTests.testDivisionBySpeedInMetersPerSecond' started at 18:57:59.476
Test Case 'UnitLengthTests.testDivisionBySpeedInMetersPerSecond' passed (0.0 seconds).
Test Suite 'UnitLengthTests' failed at 18:57:59.476
	 Executed 7 tests, with 3 failures (0 unexpected) in 0.002 (0.002) seconds
Test Suite 'UnitMassTests' started at 18:57:59.476
Test Case 'UnitMassTests.testWithBaseUnits' started at 18:57:59.477
Test Case 'UnitMassTests.testWithBaseUnits' passed (0.0 seconds).
Test Case 'UnitMassTests.testWithNonBaseUnits' started at 18:57:59.477
Test Case 'UnitMassTests.testWithNonBaseUnits' passed (0.0 seconds).
Test Suite 'UnitMassTests' passed at 18:57:59.477
	 Executed 2 tests, with 0 failures (0 unexpected) in 0.0 (0.0) seconds
Test Suite 'UnitProductTests' started at 18:57:59.477
Test Case 'UnitProductTests.testMultiplicationWithDefaultUnitMapping' started at 18:57:59.477
Test Case 'UnitProductTests.testMultiplicationWithDefaultUnitMapping' passed (0.0 seconds).
Test Case 'UnitProductTests.testMultiplicationIsCommutative' started at 18:57:59.478
Test Case 'UnitProductTests.testMultiplicationIsCommutative' passed (0.0 seconds).
Test Case 'UnitProductTests.testMultiplicationUsesPreferredUnitMapping' started at 18:57:59.478
Test Case 'UnitProductTests.testMultiplicationUsesPreferredUnitMapping' passed (0.0 seconds).
Test Case 'UnitProductTests.testMultiplicationFallsBackToDefaultUnitMapping' started at 18:57:59.478
Test Case 'UnitProductTests.testMultiplicationFallsBackToDefaultUnitMapping' passed (0.0 seconds).
Test Case 'UnitProductTests.testDivisionByFirstFactor' started at 18:57:59.478
Test Case 'UnitProductTests.testDivisionByFirstFactor' passed (0.0 seconds).
Test Case 'UnitProductTests.testDivisionBySecondFactor' started at 18:57:59.478
Test Case 'UnitProductTests.testDivisionBySecondFactor' passed (0.0 seconds).
Test Case 'UnitProductTests.testDivisionByFirstFactorUsesPreferredUnitMapping' started at 18:57:59.479
Test Case 'UnitProductTests.testDivisionByFirstFactorUsesPreferredUnitMapping' passed (0.0 seconds).
Test Case 'UnitProductTests.testDivisionBySecondFactorUsesPreferredUnitMapping' started at 18:57:59.479
Test Case 'UnitProductTests.testDivisionBySecondFactorUsesPreferredUnitMapping' passed (0.0 seconds).
Test Case 'UnitProductTests.testMultiplicationWithNonProportionalUnits' started at 18:57:59.479
Test Case 'UnitProductTests.testMultiplicationWithNonProportionalUnits' passed (0.0 seconds).
Test Case 'UnitProductTests.testDivisionByFirstFactorWithNonProportionalUnits' started at 18:57:59.479
Test Case 'UnitProductTests.testDivisionByFirstFactorWithNonProportionalUnits' passed (0.0 seconds).
Test Case 'UnitProductTests.testDivisionBySecondFactorWithNonProportionalUnits' started at 18:57:59.479
Test Case 'UnitProductTests.testDivisionBySecondFactorWithNonProportionalUnits' passed (0.0 seconds).
Test Suite 'UnitProductTests' passed at 18:57:59.480
	 Executed 11 tests, with 0 failures (0 unexpected) in 0.002 (0.002) seconds
Test Suite 'UnitSpeedTests' started at 18:57:59.480
Test Case 'UnitSpeedTests.testWithBaseUnits' started at 18:57:59.480
Test Case 'UnitSpeedTests.testWithBaseUnits' passed (0.0 seconds).
Test Case 'UnitSpeedTests.testWithNonBaseUnits' started at 18:57:59.480
Test Case 'UnitSpeedTests.testWithNonBaseUnits' passed (0.0 seconds).
Test Suite 'UnitSpeedTests' passed at 18:57:59.480
	 Executed 2 tests, with 0 failures (0 unexpected) in 0.0 (0.0) seconds
Test Suite 'UnitVolumeTests' started at 18:57:59.480
Test Case 'UnitVolumeTests.testWithBaseUnits' started at 18:57:59.480
Test Case 'UnitVolumeTests.testWithBaseUnits' passed (0.0 seconds).
Test Case 'UnitVolumeTests.testWithNonBaseUnits' started at 18:57:59.480
/tmp/Ampere/Tests/AmpereTests/UnitVolumeTests.swift:20: error: UnitVolumeTests.testWithNonBaseUnits : XCTAssertEqual failed: ("0.0001 m³") is not equal to ("0.001 m³") - "0.0001 m³" is not equal to "100.0 cm³"
Test Case 'UnitVolumeTests.testWithNonBaseUnits' failed (0.0 seconds).
Test Suite 'UnitVolumeTests' failed at 18:57:59.480
	 Executed 2 tests, with 1 failure (0 unexpected) in 0.0 (0.0) seconds
Test Suite 'debug.xctest' failed at 18:57:59.481
	 Executed 42 tests, with 10 failures (0 unexpected) in 0.008 (0.008) seconds
Test Suite 'All tests' failed at 18:57:59.481
	 Executed 42 tests, with 10 failures (0 unexpected) in 0.008 (0.008) seconds

@ole
Copy link
Owner Author

ole commented Oct 28, 2019

Closing in favor of #22.

@ole ole closed this Oct 28, 2019
@ole ole deleted the swiftpm branch May 3, 2021 10:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant