brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 99f400f Raw
76 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// UNSUPPORTED: c++03, c++11, c++14, c++17, c++209 10// <string>11 12// constexpr bool contains(const CharT *x) const;13 14#include <string>15#include <cassert>16 17#include "test_macros.h"18 19template <class S>20constexpr void test_string() {21  const char* s = "abcde";22  S s0;23  S s1{s + 4, 1};24  S s3{s + 2, 3};25  S sNot{"xyz", 3};26 27  assert(s0.contains(""));28  assert(!s0.contains("e"));29 30  assert(s1.contains(""));31  assert(!s1.contains("d"));32  assert(s1.contains("e"));33  assert(!s1.contains("de"));34  assert(!s1.contains("cd"));35  assert(!s1.contains("cde"));36  assert(!s1.contains("bcde"));37  assert(!s1.contains("abcde"));38  assert(!s1.contains("xyz"));39 40  assert(s3.contains(""));41  assert(s3.contains("d"));42  assert(s3.contains("e"));43  assert(s3.contains("de"));44  assert(s3.contains("cd"));45  assert(!s3.contains("ce"));46  assert(s3.contains("cde"));47  assert(!s3.contains("edc"));48  assert(!s3.contains("bcde"));49  assert(!s3.contains("abcde"));50  assert(!s3.contains("xyz"));51 52  assert(sNot.contains(""));53  assert(!sNot.contains("d"));54  assert(!sNot.contains("e"));55  assert(!sNot.contains("de"));56  assert(!sNot.contains("cd"));57  assert(!sNot.contains("cde"));58  assert(!sNot.contains("bcde"));59  assert(!sNot.contains("abcde"));60  assert(sNot.contains("xyz"));61  assert(!sNot.contains("zyx"));62}63 64constexpr bool test() {65  test_string<std::string>();66 67  return true;68}69 70int main(int, char**) {71  test();72  static_assert(test());73 74  return 0;75}76