1*d7ac595fSKonstantin Boyarinov //===----------------------------------------------------------------------===// 2*d7ac595fSKonstantin Boyarinov // 3*d7ac595fSKonstantin Boyarinov // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*d7ac595fSKonstantin Boyarinov // See https://llvm.org/LICENSE.txt for license information. 5*d7ac595fSKonstantin Boyarinov // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*d7ac595fSKonstantin Boyarinov // 7*d7ac595fSKonstantin Boyarinov //===----------------------------------------------------------------------===// 8*d7ac595fSKonstantin Boyarinov 9*d7ac595fSKonstantin Boyarinov // <vector> 10*d7ac595fSKonstantin Boyarinov 11*d7ac595fSKonstantin Boyarinov // bool operator==( const vector& lhs, const vector& rhs ); 12*d7ac595fSKonstantin Boyarinov // bool operator!=( const vector& lhs, const vector& rhs ); 13*d7ac595fSKonstantin Boyarinov // bool operator< ( const vector& lhs, const vector& rhs ); 14*d7ac595fSKonstantin Boyarinov // bool operator<=( const vector& lhs, const vector& rhs ); 15*d7ac595fSKonstantin Boyarinov // bool operator> ( const vector& lhs, const vector& rhs ); 16*d7ac595fSKonstantin Boyarinov // bool operator>=( const vector& lhs, const vector& rhs ); 17*d7ac595fSKonstantin Boyarinov 18*d7ac595fSKonstantin Boyarinov #include <vector> 19*d7ac595fSKonstantin Boyarinov #include <cassert> 20*d7ac595fSKonstantin Boyarinov 21*d7ac595fSKonstantin Boyarinov #include "test_comparisons.h" 22*d7ac595fSKonstantin Boyarinov 23*d7ac595fSKonstantin Boyarinov int main(int, char**) { 24*d7ac595fSKonstantin Boyarinov typedef std::vector<bool> VB; 25*d7ac595fSKonstantin Boyarinov { 26*d7ac595fSKonstantin Boyarinov const VB v1, v2; 27*d7ac595fSKonstantin Boyarinov assert(testComparisons6(v1, v2, true, false)); 28*d7ac595fSKonstantin Boyarinov } 29*d7ac595fSKonstantin Boyarinov { 30*d7ac595fSKonstantin Boyarinov const VB v1(1, true); 31*d7ac595fSKonstantin Boyarinov const VB v2(1, true); 32*d7ac595fSKonstantin Boyarinov assert(testComparisons6(v1, v2, true, false)); 33*d7ac595fSKonstantin Boyarinov } 34*d7ac595fSKonstantin Boyarinov { 35*d7ac595fSKonstantin Boyarinov const VB v1(1, false); 36*d7ac595fSKonstantin Boyarinov const VB v2(1, true); 37*d7ac595fSKonstantin Boyarinov assert(testComparisons6(v1, v2, false, true)); 38*d7ac595fSKonstantin Boyarinov } 39*d7ac595fSKonstantin Boyarinov { 40*d7ac595fSKonstantin Boyarinov const VB v1, v2(1, true); 41*d7ac595fSKonstantin Boyarinov assert(testComparisons6(v1, v2, false, true)); 42*d7ac595fSKonstantin Boyarinov } 43*d7ac595fSKonstantin Boyarinov { 44*d7ac595fSKonstantin Boyarinov bool items1[3] = {false, true, false}; 45*d7ac595fSKonstantin Boyarinov bool items2[3] = {false, true, true}; 46*d7ac595fSKonstantin Boyarinov const VB v1(items1, items1 + 3); 47*d7ac595fSKonstantin Boyarinov const VB v2(items2, items2 + 3); 48*d7ac595fSKonstantin Boyarinov assert(testComparisons6(v1, v2, false, true)); 49*d7ac595fSKonstantin Boyarinov } 50*d7ac595fSKonstantin Boyarinov { 51*d7ac595fSKonstantin Boyarinov bool items1[3] = {false, false, false}; 52*d7ac595fSKonstantin Boyarinov bool items2[3] = {false, true, false}; 53*d7ac595fSKonstantin Boyarinov const VB v1(items1, items1 + 3); 54*d7ac595fSKonstantin Boyarinov const VB v2(items2, items2 + 3); 55*d7ac595fSKonstantin Boyarinov assert(testComparisons6(v1, v2, false, true)); 56*d7ac595fSKonstantin Boyarinov } 57*d7ac595fSKonstantin Boyarinov { 58*d7ac595fSKonstantin Boyarinov bool items1[2] = {false, true}; 59*d7ac595fSKonstantin Boyarinov bool items2[3] = {false, true, false}; 60*d7ac595fSKonstantin Boyarinov const VB v1(items1, items1 + 2); 61*d7ac595fSKonstantin Boyarinov const VB v2(items2, items2 + 3); 62*d7ac595fSKonstantin Boyarinov assert(testComparisons6(v1, v2, false, true)); 63*d7ac595fSKonstantin Boyarinov } 64*d7ac595fSKonstantin Boyarinov { 65*d7ac595fSKonstantin Boyarinov bool items[3] = {false, true, false}; 66*d7ac595fSKonstantin Boyarinov const VB v1(items, items + 3); 67*d7ac595fSKonstantin Boyarinov const VB v2(1, true); 68*d7ac595fSKonstantin Boyarinov assert(testComparisons6(v1, v2, false, true)); 69*d7ac595fSKonstantin Boyarinov } 70*d7ac595fSKonstantin Boyarinov { 71*d7ac595fSKonstantin Boyarinov assert( (std::vector<bool>() == std::vector<bool>())); 72*d7ac595fSKonstantin Boyarinov assert(!(std::vector<bool>() != std::vector<bool>())); 73*d7ac595fSKonstantin Boyarinov assert(!(std::vector<bool>() < std::vector<bool>())); 74*d7ac595fSKonstantin Boyarinov assert( (std::vector<bool>() <= std::vector<bool>())); 75*d7ac595fSKonstantin Boyarinov assert(!(std::vector<bool>() > std::vector<bool>())); 76*d7ac595fSKonstantin Boyarinov assert( (std::vector<bool>() >= std::vector<bool>())); 77*d7ac595fSKonstantin Boyarinov } 78*d7ac595fSKonstantin Boyarinov 79*d7ac595fSKonstantin Boyarinov return 0; 80*d7ac595fSKonstantin Boyarinov } 81