// 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()