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-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 // <iterator> 10 11 // istreambuf_iterator 12 13 // bool equal(istreambuf_iterator<charT,traits>& b) const; 14 15 #include <iterator> 16 #include <sstream> 17 #include <cassert> 18 19 #include "test_macros.h" 20 main(int,char **)21int main(int, char**) 22 { 23 { 24 std::istringstream inf1("abc"); 25 std::istringstream inf2("def"); 26 std::istreambuf_iterator<char> i1(inf1); 27 std::istreambuf_iterator<char> i2(inf2); 28 std::istreambuf_iterator<char> i3; 29 std::istreambuf_iterator<char> i4; 30 std::istreambuf_iterator<char> i5(nullptr); 31 32 assert( i1.equal(i1)); 33 assert( i1.equal(i2)); 34 assert(!i1.equal(i3)); 35 assert(!i1.equal(i4)); 36 assert(!i1.equal(i5)); 37 38 assert( i2.equal(i1)); 39 assert( i2.equal(i2)); 40 assert(!i2.equal(i3)); 41 assert(!i2.equal(i4)); 42 assert(!i2.equal(i5)); 43 44 assert(!i3.equal(i1)); 45 assert(!i3.equal(i2)); 46 assert( i3.equal(i3)); 47 assert( i3.equal(i4)); 48 assert( i3.equal(i5)); 49 50 assert(!i4.equal(i1)); 51 assert(!i4.equal(i2)); 52 assert( i4.equal(i3)); 53 assert( i4.equal(i4)); 54 assert( i4.equal(i5)); 55 56 assert(!i5.equal(i1)); 57 assert(!i5.equal(i2)); 58 assert( i5.equal(i3)); 59 assert( i5.equal(i4)); 60 assert( i5.equal(i5)); 61 } 62 #ifndef TEST_HAS_NO_WIDE_CHARACTERS 63 { 64 std::wistringstream inf1(L"abc"); 65 std::wistringstream inf2(L"def"); 66 std::istreambuf_iterator<wchar_t> i1(inf1); 67 std::istreambuf_iterator<wchar_t> i2(inf2); 68 std::istreambuf_iterator<wchar_t> i3; 69 std::istreambuf_iterator<wchar_t> i4; 70 std::istreambuf_iterator<wchar_t> i5(nullptr); 71 72 assert( i1.equal(i1)); 73 assert( i1.equal(i2)); 74 assert(!i1.equal(i3)); 75 assert(!i1.equal(i4)); 76 assert(!i1.equal(i5)); 77 78 assert( i2.equal(i1)); 79 assert( i2.equal(i2)); 80 assert(!i2.equal(i3)); 81 assert(!i2.equal(i4)); 82 assert(!i2.equal(i5)); 83 84 assert(!i3.equal(i1)); 85 assert(!i3.equal(i2)); 86 assert( i3.equal(i3)); 87 assert( i3.equal(i4)); 88 assert( i3.equal(i5)); 89 90 assert(!i4.equal(i1)); 91 assert(!i4.equal(i2)); 92 assert( i4.equal(i3)); 93 assert( i4.equal(i4)); 94 assert( i4.equal(i5)); 95 96 assert(!i5.equal(i1)); 97 assert(!i5.equal(i2)); 98 assert( i5.equal(i3)); 99 assert( i5.equal(i4)); 100 assert( i5.equal(i5)); 101 } 102 #endif // TEST_HAS_NO_WIDE_CHARACTERS 103 104 return 0; 105 } 106