//===--- DictTest3.swift --------------------------------------------------===// // // This source file is part of the Swift.org open source project // // Copyright (c) 2014 - 2021 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 public let benchmarks = [ BenchmarkInfo(name: "Dictionary3", runFunction: run_Dictionary3, tags: [.validation, .api, .Dictionary]), BenchmarkInfo(name: "Dictionary3OfObjects", runFunction: run_Dictionary3OfObjects, tags: [.validation, .api, .Dictionary]), ] @inline(never) public func run_Dictionary3(_ n: Int) { let size1 = 100 let reps = 20 let ref_result = "1 99 20 1980" var hash1 = [String: Int]() var hash2 = [String: Int]() var res = "" for _ in 1...n { hash1 = [:] for i in 0.. : Hashable { var value: T init(_ v: T) { value = v } func hash(into hasher: inout Hasher) { hasher.combine(value) } static func ==(lhs: Box, rhs: Box) -> Bool { return lhs.value == rhs.value } } @inline(never) public func run_Dictionary3OfObjects(_ n: Int) { let size1 = 100 let reps = 20 let ref_result = "1 99 20 1980" var hash1 : [ Box : Box ] = [:] var hash2 : [ Box : Box ] = [:] var res = "" for _ in 1...n { hash1 = [:] for i in 0..