//===--- IntegerParsing.swift -------------------------------------------===// // // This source file is part of the Swift.org open source project // // Copyright (c) 2014 - 2019 Apple Inc. and the Swift project authors // Licensed under Apache License v2.0 with Runtime Library Exception // // See https://swift.org/LICENSE.txt for license information // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// import TestsUtils // - Definitions public let benchmarks = [ // IntSmall BenchmarkInfo(name: "ParseInt.IntSmall.Decimal", runFunction: run_ParseIntFromIntSmallDecimal, tags: [.validation, .api], setUpFunction: { blackHole(intSmallValuesSum) blackHole(intSmallDecimalStrings) }), BenchmarkInfo(name: "ParseInt.IntSmall.Binary", runFunction: run_ParseIntFromIntSmallBinary, tags: [.validation, .api, .skip], setUpFunction: { blackHole(intSmallValuesSum) blackHole(intSmallBinaryStrings) }), BenchmarkInfo(name: "ParseInt.IntSmall.Hex", runFunction: run_ParseIntFromIntSmallHex, tags: [.validation, .api, .skip], setUpFunction: { blackHole(intSmallValuesSum) blackHole(intSmallHexStrings) }), BenchmarkInfo(name: "ParseInt.IntSmall.UncommonRadix", runFunction: run_ParseIntFromIntSmallUncommonRadix, tags: [.validation, .api], setUpFunction: { blackHole(intSmallValuesSum) blackHole(intSmallUncommonRadixStrings) }), // UIntSmall BenchmarkInfo(name: "ParseInt.UIntSmall.Decimal", runFunction: run_ParseIntFromUIntSmallDecimal, tags: [.validation, .api, .skip], setUpFunction: { blackHole(uintSmallValuesSum) blackHole(uintSmallDecimalStrings) }), BenchmarkInfo(name: "ParseInt.UIntSmall.Binary", runFunction: run_ParseIntFromUIntSmallBinary, tags: [.validation, .api], setUpFunction: { blackHole(uintSmallValuesSum) blackHole(uintSmallBinaryStrings) }), BenchmarkInfo(name: "ParseInt.UIntSmall.Hex", runFunction: run_ParseIntFromUIntSmallHex, tags: [.validation, .api, .skip], setUpFunction: { blackHole(uintSmallValuesSum) blackHole(uintSmallHexStrings) }), BenchmarkInfo(name: "ParseInt.UIntSmall.UncommonRadix", runFunction: run_ParseIntFromUIntSmallUncommonRadix, tags: [.validation, .api, .skip], setUpFunction: { blackHole(uintSmallValuesSum) blackHole(uintSmallUncommonRadixStrings) }), // Int32 BenchmarkInfo(name: "ParseInt.Int32.Decimal", runFunction: run_ParseIntFromInt32Decimal, tags: [.validation, .api, .skip], setUpFunction: { blackHole(int32ValuesSum) blackHole(int32DecimalStrings) }), BenchmarkInfo(name: "ParseInt.Int32.Binary", runFunction: run_ParseIntFromInt32Binary, tags: [.validation, .api, .skip], setUpFunction: { blackHole(int32ValuesSum) blackHole(int32BinaryStrings) }), BenchmarkInfo(name: "ParseInt.Int32.Hex", runFunction: run_ParseIntFromInt32Hex, tags: [.validation, .api, .skip], setUpFunction: { blackHole(int32ValuesSum) blackHole(int32HexStrings) }), BenchmarkInfo(name: "ParseInt.Int32.UncommonRadix", runFunction: run_ParseIntFromInt32UncommonRadix, tags: [.validation, .api, .skip], setUpFunction: { blackHole(int32ValuesSum) blackHole(int32UncommonRadixStrings) }), // Int64 BenchmarkInfo(name: "ParseInt.Int64.Decimal", runFunction: run_ParseIntFromInt64Decimal, tags: [.validation, .api, .skip], setUpFunction: { blackHole(int64ValuesSum) blackHole(int64DecimalStrings) }), BenchmarkInfo(name: "ParseInt.Int64.Binary", runFunction: run_ParseIntFromInt64Binary, tags: [.validation, .api, .skip], setUpFunction: { blackHole(int64ValuesSum) blackHole(int64BinaryStrings) }), BenchmarkInfo(name: "ParseInt.Int64.Hex", runFunction: run_ParseIntFromInt64Hex, tags: [.validation, .api, .skip], setUpFunction: { blackHole(int64ValuesSum) blackHole(int64HexStrings) }), BenchmarkInfo(name: "ParseInt.Int64.UncommonRadix", runFunction: run_ParseIntFromInt64UncommonRadix, tags: [.validation, .api, .skip], setUpFunction: { blackHole(int64ValuesSum) blackHole(int64UncommonRadixStrings) }), // UInt32 BenchmarkInfo(name: "ParseInt.UInt32.Decimal", runFunction: run_ParseIntFromUInt32Decimal, tags: [.validation, .api, .skip], setUpFunction: { blackHole(uint32ValuesSum) blackHole(uint32DecimalStrings) }), BenchmarkInfo(name: "ParseInt.UInt32.Binary", runFunction: run_ParseIntFromUInt32Binary, tags: [.validation, .api, .skip], setUpFunction: { blackHole(uint32ValuesSum) blackHole(uint32BinaryStrings) }), BenchmarkInfo(name: "ParseInt.UInt32.Hex", runFunction: run_ParseIntFromUInt32Hex, tags: [.validation, .api, .skip], setUpFunction: { blackHole(uint32ValuesSum) blackHole(uint32HexStrings) }), BenchmarkInfo(name: "ParseInt.UInt32.UncommonRadix", runFunction: run_ParseIntFromUInt32UncommonRadix, tags: [.validation, .api, .skip], setUpFunction: { blackHole(uint32ValuesSum) blackHole(uint32UncommonRadixStrings) }), // UInt64 BenchmarkInfo(name: "ParseInt.UInt64.Decimal", runFunction: run_ParseIntFromUInt64Decimal, tags: [.validation, .api], setUpFunction: { blackHole(uint64ValuesSum) blackHole(uint64DecimalStrings) }), BenchmarkInfo(name: "ParseInt.UInt64.Binary", runFunction: run_ParseIntFromUInt64Binary, tags: [.validation, .api, .skip], setUpFunction: { blackHole(uint64ValuesSum) blackHole(uint64BinaryStrings) }), BenchmarkInfo(name: "ParseInt.UInt64.Hex", runFunction: run_ParseIntFromUInt64Hex, tags: [.validation, .api], setUpFunction: { blackHole(uint64ValuesSum) blackHole(uint64HexStrings) }), BenchmarkInfo(name: "ParseInt.UInt64.UncommonRadix", runFunction: run_ParseIntFromUInt64UncommonRadix, tags: [.validation, .api, .skip], setUpFunction: { blackHole(uint64ValuesSum) blackHole(uint64UncommonRadixStrings) }), ] // - Verification Sums private let intSmallValuesSum: Int = intSmallValues.reduce(0, &+) private let uintSmallValuesSum: UInt = uintSmallValues.reduce(0, &+) private let int32ValuesSum: Int32 = int32Values.reduce(0, &+) private let int64ValuesSum: Int64 = int64Values.reduce(0, &+) private let uint32ValuesSum: UInt32 = uint32Values.reduce(0, &+) private let uint64ValuesSum: UInt64 = uint64Values.reduce(0, &+) // - Values func generateValues( in range: ClosedRange, count: Int ) -> [Integer] { var rng = SplitMix64(seed: 42) return (0..