brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 74d8227 Raw
88 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// UNSUPPORTED: c++03, c++11, c++14, c++17, c++2010 11// <string_view>12 13//   constexpr bool contains(string_view x) const noexcept;14 15#include <string_view>16#include <cassert>17 18#include "test_macros.h"19 20constexpr bool test() {21  using SV = std::string_view;22 23  const char* s = "abcde";24  SV sv0;25  SV sv1{s + 1, 1};26  SV sv2{s + 1, 2};27  SV sv3{s + 1, 3};28  SV sv4{s + 1, 4};29  SV sv5{s, 5};30  SV svNot{"xyz", 3};31  SV svNot2{"bd", 2};32  SV svNot3{"dcb", 3};33 34  ASSERT_NOEXCEPT(sv0.contains(sv0));35 36  assert(sv0.contains(sv0));37  assert(!sv0.contains(sv1));38 39  assert(sv1.contains(sv0));40  assert(sv1.contains(sv1));41  assert(!sv1.contains(sv2));42  assert(!sv1.contains(sv3));43  assert(!sv1.contains(sv4));44  assert(!sv1.contains(sv5));45  assert(!sv1.contains(svNot));46  assert(!sv1.contains(svNot2));47  assert(!sv1.contains(svNot3));48 49  assert(sv3.contains(sv0));50  assert(sv3.contains(sv1));51  assert(sv3.contains(sv2));52  assert(sv3.contains(sv3));53  assert(!sv3.contains(sv4));54  assert(!sv3.contains(sv5));55  assert(!sv3.contains(svNot));56  assert(!sv3.contains(svNot2));57  assert(!sv3.contains(svNot3));58 59  assert(sv5.contains(sv0));60  assert(sv5.contains(sv1));61  assert(sv5.contains(sv2));62  assert(sv5.contains(sv3));63  assert(sv5.contains(sv4));64  assert(sv5.contains(sv5));65  assert(!sv5.contains(svNot));66  assert(!sv5.contains(svNot2));67  assert(!sv5.contains(svNot3));68 69  assert(svNot.contains(sv0));70  assert(!svNot.contains(sv1));71  assert(!svNot.contains(sv2));72  assert(!svNot.contains(sv3));73  assert(!svNot.contains(sv4));74  assert(!svNot.contains(sv5));75  assert(svNot.contains(svNot));76  assert(!svNot.contains(svNot2));77  assert(!svNot.contains(svNot3));78 79  return true;80}81 82int main(int, char**) {83  test();84  static_assert(test());85 86  return 0;87}88