brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · 5300447 Raw
90 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// <vector>10 11// bool operator==( const vector& lhs, const vector& rhs );12// bool operator!=( const vector& lhs, const vector& rhs );13// bool operator< ( const vector& lhs, const vector& rhs );14// bool operator<=( const vector& lhs, const vector& rhs );15// bool operator> ( const vector& lhs, const vector& rhs );16// bool operator>=( const vector& lhs, const vector& rhs );17 18#include <vector>19#include <cassert>20 21#include "test_comparisons.h"22 23TEST_CONSTEXPR_CXX20 bool test() {24  typedef std::vector<bool> VB;25  {26    const VB v1, v2;27    assert(testComparisons(v1, v2, true, false));28  }29  {30    const VB v1(1, true);31    const VB v2(1, true);32    assert(testComparisons(v1, v2, true, false));33  }34  {35    const VB v1(1, false);36    const VB v2(1, true);37    assert(testComparisons(v1, v2, false, true));38  }39  {40    const VB v1, v2(1, true);41    assert(testComparisons(v1, v2, false, true));42  }43  {44    bool items1[3] = {false, true, false};45    bool items2[3] = {false, true, true};46    const VB v1(items1, items1 + 3);47    const VB v2(items2, items2 + 3);48    assert(testComparisons(v1, v2, false, true));49  }50  {51    bool items1[3] = {false, false, false};52    bool items2[3] = {false, true, false};53    const VB v1(items1, items1 + 3);54    const VB v2(items2, items2 + 3);55    assert(testComparisons(v1, v2, false, true));56  }57  {58    bool items1[2] = {false, true};59    bool items2[3] = {false, true, false};60    const VB v1(items1, items1 + 2);61    const VB v2(items2, items2 + 3);62    assert(testComparisons(v1, v2, false, true));63  }64  {65    bool items[3] = {false, true, false};66    const VB v1(items, items + 3);67    const VB v2(1, true);68    assert(testComparisons(v1, v2, false, true));69  }70  {71    assert((std::vector<bool>() == std::vector<bool>()));72    assert(!(std::vector<bool>() != std::vector<bool>()));73    assert(!(std::vector<bool>() < std::vector<bool>()));74    assert((std::vector<bool>() <= std::vector<bool>()));75    assert(!(std::vector<bool>() > std::vector<bool>()));76    assert((std::vector<bool>() >= std::vector<bool>()));77  }78 79  return true;80}81 82int main(int, char**) {83  test();84#if TEST_STD_VER > 1785  static_assert(test());86#endif87 88  return 0;89}90