   BenchmarkInfo(name: "ReplaceSubrangeWithSmallLiteralString", runFunction: run_ReplaceSubrangeWithSmallLiteralString, tags: [.validation, .api]),
   BenchmarkInfo(name: "ReplaceSubrangeWithLargeLiteralString", runFunction: run_ReplaceSubrangeWithLargeLiteralString, tags: [.validation, .api]),
   BenchmarkInfo(name: "ReplaceSubrangeWithLargeManagedString", runFunction: run_ReplaceSubrangeWithLargeManagedString, tags: [.validation, .api], setUpFunction: setupLargeManagedString),
+  BenchmarkInfo(name: "ReplaceSubrangeWithSmallLiteralSubstring", runFunction: run_ReplaceSubrangeWithSmallLiteralSubstring, tags: [.validation, .api]),
+  BenchmarkInfo(name: "ReplaceSubrangeWithLargeLiteralSubstring", runFunction: run_ReplaceSubrangeWithLargeLiteralSubstring, tags: [.validation, .api]),
+  BenchmarkInfo(name: "ReplaceSubrangeWithLargeManagedSubstring", runFunction: run_ReplaceSubrangeWithLargeManagedSubstring, tags: [.validation, .api], setUpFunction: setupLargeManagedSubstring),
 ]
+
+// MARK: - Privates for String
 
 private func smallLiteralString() -> String {
     return getString("coffee")

    }
}

private func setupLargeManagedString() {
    _ = largeManagedString
}

    return str
}()

private func setupLargeManagedString() {
    _ = largeManagedString
}

// MARK: - Privates for Substring

private func smallLiteralSubstring() -> Substring {
    return getSubstring("coffee")
}

private func largeLiteralSubstring() -> Substring {
    return getSubstring("coffee\u{301}coffeecoffeecoffeecoffee")
}

private var largeManagedSubstring: Substring = {
    var substring = largeLiteralSubstring()
    substring += "z"
    return substring
}()

private func setupLargeManagedSubstring() {
    _ = largeManagedString
}

@inline(never)
public func run_ReplaceSubrangeWithSmallLiteralString(N: Int) {
