mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
45 lines
1.4 KiB
Swift
45 lines
1.4 KiB
Swift
// RUN: %target-run-simple-swift %t
|
|
// REQUIRES: executable_test
|
|
|
|
import StdlibUnittest
|
|
|
|
var SynthesizedComparableTests = TestSuite("SynthesizedComparableTests")
|
|
|
|
SynthesizedComparableTests.test("Simple Enum sorting") {
|
|
enum Album: Comparable {
|
|
case debut, be, fearless, sn, red, roses, reputation, lover
|
|
}
|
|
|
|
let unsorted: [Album] = [.be, .debut, .lover, .reputation, .sn, .fearless, .roses, .red]
|
|
|
|
expectEqual(unsorted.sorted(), [.debut, .be, .fearless, .sn, .red, .roses, .reputation, .lover])
|
|
}
|
|
|
|
SynthesizedComparableTests.test("Simple Enum sorting with duplicates") {
|
|
enum Album: Comparable {
|
|
case debut, be, fearless, sn, red, roses, reputation, lover
|
|
}
|
|
|
|
let unsorted: [Album] = [.be, .debut, .lover, .lover, .reputation, .sn, .sn, .fearless, .roses, .red]
|
|
|
|
expectEqual(Album.fearless == Album.fearless, true)
|
|
expectEqual(Album.fearless < Album.red, true)
|
|
expectEqual(Album.fearless < Album.fearless, false)
|
|
expectEqual(unsorted.sorted(), [.debut, .be, .fearless, .sn, .sn, .red, .roses, .reputation, .lover, .lover])
|
|
}
|
|
|
|
SynthesizedComparableTests.test("Associated Values Enum sorting") {
|
|
enum Bar:Comparable
|
|
{
|
|
case a(Int, Int)
|
|
case b(Int)
|
|
case c
|
|
}
|
|
|
|
let unsorted:[Bar] = [.b(89), .a(12, 4), .c, .a(5, 4), .b(9), .a(5, 1)]
|
|
|
|
expectEqual(unsorted.sorted(), [.a(5, 1), .a(5, 4), .a(12, 4), .b(9), .b(89), .c])
|
|
}
|
|
|
|
runAllTests()
|