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