| //===--- StringEnum.swift -------------------------------------------------===// |
| // |
| // This source file is part of the Swift.org open source project |
| // |
| // Copyright (c) 2014 - 2017 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 StringEnum = BenchmarkInfo( |
| name: "StringEnumRawValueInitialization", |
| runFunction: run_StringEnumRawValueInitialization, |
| tags: [.validation, .api, .String]) |
| |
| enum TestEnum : String { |
| case c1 = "Swift" |
| case c2 = "is" |
| case c3 = "a" |
| case c4 = "general-purpose" |
| case c5 = "programming language" |
| case c7 = "built" |
| case c8 = "using" |
| case c10 = "modern" |
| case c11 = "approach" |
| case c12 = "to" |
| case c13 = "safety," |
| case c14 = "performance," |
| case c15 = "and" |
| case c16 = "software" |
| case c17 = "design" |
| case c18 = "patterns." |
| case c19 = "" |
| case c20 = "The" |
| case c21 = "goal" |
| case c22 = "of" |
| case c23 = "the" |
| case c25 = "project" |
| case c28 = "create" |
| case c30 = "best" |
| case c31 = "available" |
| case c33 = "for" |
| case c34 = "uses" |
| case c35 = "ranging" |
| case c36 = "from" |
| case c37 = "systems" |
| case c40 = "mobile" |
| case c42 = "desktop" |
| case c43 = "apps," |
| case c44 = "scaling" |
| case c45 = "up" |
| case c47 = "cloud" |
| case c48 = "services." |
| case c49 = "Most" |
| case c50 = "importantly," |
| case c53 = "designed" |
| case c55 = "make" |
| case c56 = "writing" |
| case c58 = "maintaining" |
| case c59 = "correct" |
| case c60 = "programs" |
| case c61 = "easier" |
| case c64 = "developer." |
| case c65 = "To" |
| case c66 = "achieve" |
| case c67 = "this" |
| case c68 = "goal," |
| case c69 = "we" |
| case c70 = "believe" |
| case c71 = "that" |
| case c73 = "most" |
| case c74 = "obvious" |
| case c75 = "way" |
| case c77 = "write" |
| case c79 = "code" |
| case c80 = "must" |
| case c81 = "also" |
| case c82 = "be:" |
| case c84 = "Safe." |
| case c92 = "should" |
| case c94 = "behave" |
| case c95 = "in" |
| case c97 = "safe" |
| case c98 = "manner." |
| case c99 = "Undefined" |
| case c100 = "behavior" |
| case c103 = "enemy" |
| case c107 = "developer" |
| case c108 = "mistakes" |
| case c110 = "be" |
| case c111 = "caught" |
| case c112 = "before" |
| case c116 = "production." |
| case c117 = "Opting" |
| case c119 = "safety" |
| case c120 = "sometimes" |
| case c121 = "means" |
| case c123 = "will" |
| case c124 = "feel" |
| case c125 = "strict," |
| case c126 = "but" |
| case c130 = "clarity" |
| case c131 = "saves" |
| case c132 = "time" |
| case c135 = "long" |
| case c136 = "run." |
| case c138 = "Fast." |
| case c141 = "intended" |
| case c142 = "as" |
| case c144 = "replacement" |
| case c146 = "C-based" |
| case c147 = "languages" |
| case c148 = "(C, C++, Objective-C)." |
| case c152 = "As" |
| case c153 = "such," |
| case c157 = "comparable" |
| case c159 = "those" |
| case c162 = "performance" |
| case c165 = "tasks." |
| case c166 = "Performance" |
| case c170 = "predictable" |
| case c172 = "consistent," |
| case c173 = "not" |
| case c174 = "just" |
| case c175 = "fast" |
| case c177 = "short" |
| case c178 = "bursts" |
| case c180 = "require" |
| case c181 = "clean-up" |
| case c182 = "later." |
| case c183 = "There" |
| case c184 = "are" |
| case c185 = "lots" |
| case c188 = "with" |
| case c189 = "novel" |
| case c190 = "features" |
| case c191 = "—" |
| case c192 = "being" |
| case c195 = "rare." |
| case c197 = "Expressive." |
| case c199 = "benefits" |
| case c201 = "decades" |
| case c203 = "advancement" |
| case c205 = "computer" |
| case c206 = "science" |
| case c208 = "offer" |
| case c209 = "syntax" |
| case c213 = "joy" |
| case c215 = "use," |
| case c219 = "developers" |
| case c220 = "expect." |
| case c221 = "But" |
| case c224 = "never" |
| case c225 = "done." |
| case c226 = "We" |
| case c228 = "monitor" |
| case c230 = "advancements" |
| case c232 = "embrace" |
| case c233 = "what" |
| case c234 = "works," |
| case c235 = "continually" |
| case c236 = "evolving" |
| case c240 = "even" |
| case c241 = "better." |
| case c243 = "Tools" |
| case c246 = "critical" |
| case c247 = "part" |
| case c251 = "ecosystem." |
| case c253 = "strive" |
| case c255 = "integrate" |
| case c256 = "well" |
| case c257 = "within" |
| case c259 = "developer’s" |
| case c260 = "toolset," |
| case c262 = "build" |
| case c263 = "quickly," |
| case c265 = "present" |
| case c266 = "excellent" |
| case c267 = "diagnostics," |
| case c270 = "enable" |
| case c271 = "interactive" |
| case c272 = "development" |
| case c273 = "experiences." |
| case c275 = "can" |
| case c278 = "so" |
| case c279 = "much" |
| case c280 = "more" |
| case c281 = "powerful," |
| case c282 = "like" |
| case c283 = "Swift-based" |
| case c284 = "playgrounds" |
| case c285 = "do" |
| case c287 = "Xcode," |
| case c288 = "or" |
| case c290 = "web-based" |
| case c291 = "REPL" |
| case c293 = "when" |
| case c294 = "working" |
| case c296 = "Linux" |
| case c297 = "server-side" |
| case c298 = "code." |
| } |
| |
| @inline(never) |
| func convert(_ s: String) { |
| blackHole(TestEnum(rawValue: s)) |
| } |
| |
| @inline(never) |
| public func run_StringEnumRawValueInitialization(_ N: Int) { |
| let first = "Swift" |
| let short = "To" |
| let long = "(C, C++, Objective-C)." |
| let last = "code." |
| for _ in 1...2000*N { |
| convert(first) |
| convert(short) |
| convert(long) |
| convert(last) |
| } |
| } |
| |