LCOV - code coverage report
Current view: top level - buildbot/coverage/build/test/unit/util - cardinality_black.cpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 205 205 100.0 %
Date: 2026-03-30 10:41:07 Functions: 4 4 100.0 %
Branches: 354 712 49.7 %

           Branch data     Line data    Source code
       1                 :            : /******************************************************************************
       2                 :            :  * This file is part of the cvc5 project.
       3                 :            :  *
       4                 :            :  * Copyright (c) 2009-2026 by the authors listed in the file AUTHORS
       5                 :            :  * in the top-level source directory and their institutional affiliations.
       6                 :            :  * All rights reserved.  See the file COPYING in the top-level source
       7                 :            :  * directory for licensing information.
       8                 :            :  * ****************************************************************************
       9                 :            :  *
      10                 :            :  * Public-box testing of cvc5::Cardinality.
      11                 :            :  */
      12                 :            : 
      13                 :            : #include <sstream>
      14                 :            : #include <string>
      15                 :            : 
      16                 :            : #include "base/exception.h"
      17                 :            : #include "test.h"
      18                 :            : #include "util/cardinality.h"
      19                 :            : #include "util/integer.h"
      20                 :            : 
      21                 :            : namespace cvc5::internal {
      22                 :            : namespace test {
      23                 :            : 
      24                 :            : class TestUtilBlackCardinality : public TestInternal
      25                 :            : {
      26                 :            :  protected:
      27                 :            :   std::stringstream ss;
      28                 :            : };
      29                 :            : 
      30                 :          4 : TEST_F(TestUtilBlackCardinality, cardinalities)
      31                 :            : {
      32                 :          1 :   Cardinality zero(0);
      33                 :          1 :   Cardinality one(1);
      34                 :          1 :   Cardinality two(2);
      35                 :            : 
      36                 :          1 :   Cardinality invalid(0);
      37                 :          1 :   ASSERT_DEATH(invalid = Cardinality(-1), "card >= 0");
      38                 :          1 :   ASSERT_DEATH(invalid = Cardinality(-2), "card >= 0");
      39                 :          1 :   ASSERT_DEATH(invalid = Cardinality(Integer("-3983982192391747295721957")),
      40                 :            :                "card >= 0");
      41                 :          1 :   invalid = one;             // test assignment
      42                 :          1 :   invalid = Cardinality(5);  // test assignment to temporary
      43                 :            : 
      44                 :          1 :   Cardinality copy(one);  // test copy
      45                 :          1 :   Cardinality big(Integer("3983982192391747295721957"));
      46                 :          1 :   Cardinality r(Cardinality::REALS);
      47                 :          1 :   Cardinality i(Cardinality::INTEGERS);
      48                 :            : 
      49 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(zero.compare(one), Cardinality::LESS);
      50 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(one.compare(two), Cardinality::LESS);
      51 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(two.compare(invalid), Cardinality::LESS);
      52 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(invalid.compare(big), Cardinality::LESS);
      53 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(big.compare(i), Cardinality::LESS);
      54 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(i.compare(r), Cardinality::LESS);
      55                 :            : 
      56 [ -  + ][ +  - ]:          1 :   ASSERT_NE(zero.compare(one), Cardinality::GREATER);
      57 [ -  + ][ +  - ]:          1 :   ASSERT_NE(zero.compare(zero), Cardinality::GREATER);
      58 [ -  + ][ +  - ]:          1 :   ASSERT_NE(one.compare(two), Cardinality::GREATER);
      59 [ -  + ][ +  - ]:          1 :   ASSERT_NE(one.compare(one), Cardinality::GREATER);
      60 [ -  + ][ +  - ]:          1 :   ASSERT_NE(two.compare(invalid), Cardinality::GREATER);
      61 [ -  + ][ +  - ]:          1 :   ASSERT_NE(two.compare(two), Cardinality::GREATER);
      62 [ -  + ][ +  - ]:          1 :   ASSERT_NE(invalid.compare(big), Cardinality::GREATER);
      63 [ -  + ][ +  - ]:          1 :   ASSERT_NE(invalid.compare(invalid), Cardinality::GREATER);
      64 [ -  + ][ +  - ]:          1 :   ASSERT_NE(big.compare(i), Cardinality::GREATER);
      65 [ -  + ][ +  - ]:          1 :   ASSERT_NE(big.compare(big), Cardinality::GREATER);
      66 [ -  + ][ +  - ]:          1 :   ASSERT_NE(i.compare(r), Cardinality::GREATER);
      67 [ -  + ][ +  - ]:          1 :   ASSERT_NE(i.compare(i), Cardinality::GREATER);
      68 [ -  + ][ +  - ]:          1 :   ASSERT_NE(r.compare(r), Cardinality::GREATER);
      69                 :            : 
      70 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(zero.compare(zero), Cardinality::EQUAL);
      71 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(one.compare(one), Cardinality::EQUAL);
      72 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(two.compare(two), Cardinality::EQUAL);
      73 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(invalid.compare(invalid), Cardinality::EQUAL);
      74 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(copy.compare(copy), Cardinality::EQUAL);
      75 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(copy.compare(one), Cardinality::EQUAL);
      76 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(one.compare(copy), Cardinality::EQUAL);
      77 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(big.compare(big), Cardinality::UNKNOWN);
      78 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(i.compare(i), Cardinality::EQUAL);
      79 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(r.compare(r), Cardinality::EQUAL);
      80                 :            : 
      81 [ -  + ][ +  - ]:          1 :   ASSERT_NE(zero.compare(one), Cardinality::EQUAL);
      82 [ -  + ][ +  - ]:          1 :   ASSERT_NE(one.compare(two), Cardinality::EQUAL);
      83 [ -  + ][ +  - ]:          1 :   ASSERT_NE(two.compare(invalid), Cardinality::EQUAL);
      84 [ -  + ][ +  - ]:          1 :   ASSERT_NE(copy.compare(r), Cardinality::EQUAL);
      85 [ -  + ][ +  - ]:          1 :   ASSERT_NE(copy.compare(i), Cardinality::EQUAL);
      86 [ -  + ][ +  - ]:          1 :   ASSERT_NE(big.compare(i), Cardinality::EQUAL);
      87 [ -  + ][ +  - ]:          1 :   ASSERT_NE(i.compare(big), Cardinality::EQUAL);
      88 [ -  + ][ +  - ]:          1 :   ASSERT_NE(big.compare(zero), Cardinality::EQUAL);
      89 [ -  + ][ +  - ]:          1 :   ASSERT_NE(r.compare(i), Cardinality::EQUAL);
      90 [ -  + ][ +  - ]:          1 :   ASSERT_NE(i.compare(r), Cardinality::EQUAL);
      91                 :            : 
      92 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(r.compare(zero), Cardinality::GREATER);
      93 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(r.compare(one), Cardinality::GREATER);
      94 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(r.compare(two), Cardinality::GREATER);
      95 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(r.compare(copy), Cardinality::GREATER);
      96 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(r.compare(invalid), Cardinality::GREATER);
      97 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(r.compare(big), Cardinality::GREATER);
      98 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(r.compare(i), Cardinality::GREATER);
      99 [ -  + ][ +  - ]:          1 :   ASSERT_NE(r.compare(r), Cardinality::GREATER);
     100 [ -  + ][ +  - ]:          1 :   ASSERT_NE(r.compare(r), Cardinality::LESS);
     101                 :            : 
     102 [ -  + ][ +  - ]:          1 :   ASSERT_TRUE(zero.isFinite());
     103 [ -  + ][ +  - ]:          1 :   ASSERT_TRUE(one.isFinite());
     104 [ -  + ][ +  - ]:          1 :   ASSERT_TRUE(two.isFinite());
     105 [ -  + ][ +  - ]:          1 :   ASSERT_TRUE(copy.isFinite());
     106 [ -  + ][ +  - ]:          1 :   ASSERT_TRUE(invalid.isFinite());
     107 [ -  + ][ +  - ]:          1 :   ASSERT_TRUE(big.isFinite());
     108 [ -  + ][ +  - ]:          1 :   ASSERT_FALSE(i.isFinite());
     109 [ -  + ][ +  - ]:          1 :   ASSERT_FALSE(r.isFinite());
     110                 :            : 
     111 [ -  + ][ +  - ]:          1 :   ASSERT_FALSE(zero.isLargeFinite());
     112 [ -  + ][ +  - ]:          1 :   ASSERT_FALSE(one.isLargeFinite());
     113 [ -  + ][ +  - ]:          1 :   ASSERT_FALSE(two.isLargeFinite());
     114 [ -  + ][ +  - ]:          1 :   ASSERT_FALSE(copy.isLargeFinite());
     115 [ -  + ][ +  - ]:          1 :   ASSERT_FALSE(invalid.isLargeFinite());
     116 [ -  + ][ +  - ]:          1 :   ASSERT_TRUE(big.isLargeFinite());
     117 [ -  + ][ +  - ]:          1 :   ASSERT_FALSE(i.isLargeFinite());
     118 [ -  + ][ +  - ]:          1 :   ASSERT_FALSE(r.isLargeFinite());
     119                 :            : 
     120 [ -  + ][ +  - ]:          2 :   ASSERT_EQ(zero.getFiniteCardinality(), 0);
     121 [ -  + ][ +  - ]:          2 :   ASSERT_EQ(one.getFiniteCardinality(), 1);
     122 [ -  + ][ +  - ]:          2 :   ASSERT_EQ(two.getFiniteCardinality(), 2);
     123 [ -  + ][ +  - ]:          2 :   ASSERT_EQ(copy.getFiniteCardinality(), 1);
     124 [ -  + ][ +  - ]:          2 :   ASSERT_EQ(invalid.getFiniteCardinality(), 5);
     125                 :          1 :   ASSERT_DEATH(big.getFiniteCardinality(), "!isLargeFinite\\(\\)");
     126                 :          1 :   ASSERT_DEATH(i.getFiniteCardinality(), "getFiniteCardinality\\(\\)");
     127                 :          1 :   ASSERT_DEATH(r.getFiniteCardinality(), "isFinite\\(\\)");
     128                 :            : 
     129                 :          1 :   ASSERT_DEATH(zero.getBethNumber(), "!isFinite\\(\\) && !isUnknown\\(\\)");
     130                 :          1 :   ASSERT_DEATH(one.getBethNumber(), "!isFinite\\(\\) && !isUnknown\\(\\)");
     131                 :          1 :   ASSERT_DEATH(two.getBethNumber(), "!isFinite\\(\\) && !isUnknown\\(\\)");
     132                 :          1 :   ASSERT_DEATH(copy.getBethNumber(), "!isFinite\\(\\) && !isUnknown\\(\\)");
     133                 :          1 :   ASSERT_DEATH(invalid.getBethNumber(), "!isFinite\\(\\) && !isUnknown\\(\\)");
     134                 :          1 :   ASSERT_DEATH(big.getBethNumber(), "!isFinite\\(\\) && !isUnknown\\(\\)");
     135 [ -  + ][ +  - ]:          1 :   ASSERT_TRUE(i.getBethNumber() == 0);
     136 [ -  + ][ +  - ]:          1 :   ASSERT_TRUE(r.getBethNumber() == 1);
     137                 :            : 
     138 [ -  + ][ +  - ]:          1 :   ASSERT_NE(zero.compare(Cardinality::INTEGERS), Cardinality::EQUAL);
     139 [ -  + ][ +  - ]:          1 :   ASSERT_NE(one.compare(Cardinality::INTEGERS), Cardinality::EQUAL);
     140 [ -  + ][ +  - ]:          1 :   ASSERT_NE(two.compare(Cardinality::INTEGERS), Cardinality::EQUAL);
     141 [ -  + ][ +  - ]:          1 :   ASSERT_NE(copy.compare(Cardinality::INTEGERS), Cardinality::EQUAL);
     142 [ -  + ][ +  - ]:          1 :   ASSERT_NE(invalid.compare(Cardinality::INTEGERS), Cardinality::EQUAL);
     143 [ -  + ][ +  - ]:          1 :   ASSERT_NE(big.compare(Cardinality::INTEGERS), Cardinality::EQUAL);
     144 [ -  + ][ +  - ]:          1 :   ASSERT_NE(r.compare(Cardinality::INTEGERS), Cardinality::EQUAL);
     145 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(i.compare(Cardinality::INTEGERS), Cardinality::EQUAL);
     146                 :            : 
     147 [ -  + ][ +  - ]:          1 :   ASSERT_NE(zero.compare(Cardinality::REALS), Cardinality::EQUAL);
     148 [ -  + ][ +  - ]:          1 :   ASSERT_NE(one.compare(Cardinality::REALS), Cardinality::EQUAL);
     149 [ -  + ][ +  - ]:          1 :   ASSERT_NE(two.compare(Cardinality::REALS), Cardinality::EQUAL);
     150 [ -  + ][ +  - ]:          1 :   ASSERT_NE(copy.compare(Cardinality::REALS), Cardinality::EQUAL);
     151 [ -  + ][ +  - ]:          1 :   ASSERT_NE(invalid.compare(Cardinality::REALS), Cardinality::EQUAL);
     152 [ -  + ][ +  - ]:          1 :   ASSERT_NE(big.compare(Cardinality::REALS), Cardinality::EQUAL);
     153 [ -  + ][ +  - ]:          1 :   ASSERT_NE(i.compare(Cardinality::REALS), Cardinality::EQUAL);
     154 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(r.compare(Cardinality::REALS), Cardinality::EQUAL);
     155                 :            : 
     156                 :            :   // should work the other way too
     157                 :            : 
     158 [ -  + ][ +  - ]:          1 :   ASSERT_NE(Cardinality::INTEGERS.compare(zero), Cardinality::EQUAL);
     159 [ -  + ][ +  - ]:          1 :   ASSERT_NE(Cardinality::INTEGERS.compare(one), Cardinality::EQUAL);
     160 [ -  + ][ +  - ]:          1 :   ASSERT_NE(Cardinality::INTEGERS.compare(two), Cardinality::EQUAL);
     161 [ -  + ][ +  - ]:          1 :   ASSERT_NE(Cardinality::INTEGERS.compare(copy), Cardinality::EQUAL);
     162 [ -  + ][ +  - ]:          1 :   ASSERT_NE(Cardinality::INTEGERS.compare(invalid), Cardinality::EQUAL);
     163 [ -  + ][ +  - ]:          1 :   ASSERT_NE(Cardinality::INTEGERS.compare(big), Cardinality::EQUAL);
     164 [ -  + ][ +  - ]:          1 :   ASSERT_NE(Cardinality::INTEGERS.compare(r), Cardinality::EQUAL);
     165 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(Cardinality::INTEGERS.compare(i), Cardinality::EQUAL);
     166                 :            : 
     167 [ -  + ][ +  - ]:          1 :   ASSERT_NE(Cardinality::REALS.compare(zero), Cardinality::EQUAL);
     168 [ -  + ][ +  - ]:          1 :   ASSERT_NE(Cardinality::REALS.compare(one), Cardinality::EQUAL);
     169 [ -  + ][ +  - ]:          1 :   ASSERT_NE(Cardinality::REALS.compare(two), Cardinality::EQUAL);
     170 [ -  + ][ +  - ]:          1 :   ASSERT_NE(Cardinality::REALS.compare(copy), Cardinality::EQUAL);
     171 [ -  + ][ +  - ]:          1 :   ASSERT_NE(Cardinality::REALS.compare(invalid), Cardinality::EQUAL);
     172 [ -  + ][ +  - ]:          1 :   ASSERT_NE(Cardinality::REALS.compare(big), Cardinality::EQUAL);
     173 [ -  + ][ +  - ]:          1 :   ASSERT_NE(Cardinality::REALS.compare(i), Cardinality::EQUAL);
     174 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(Cardinality::REALS.compare(r), Cardinality::EQUAL);
     175                 :            : 
     176                 :            :   // finite cardinal arithmetic
     177                 :            : 
     178 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((zero + zero).compare(zero), Cardinality::EQUAL);
     179 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((zero * zero).compare(zero), Cardinality::EQUAL);
     180 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((zero ^ zero).compare(one), Cardinality::EQUAL);
     181 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((zero + one).compare(one), Cardinality::EQUAL);
     182 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((zero * one).compare(zero), Cardinality::EQUAL);
     183 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((zero ^ one).compare(zero), Cardinality::EQUAL);
     184 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((one + zero).compare(one), Cardinality::EQUAL);
     185 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((one * zero).compare(zero), Cardinality::EQUAL);
     186 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((one ^ zero).compare(one), Cardinality::EQUAL);
     187 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((two + two).compare(4), Cardinality::EQUAL);
     188 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((two ^ two).compare(4), Cardinality::EQUAL);
     189 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((two * two).compare(4), Cardinality::EQUAL);
     190 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((two += two).compare(4), Cardinality::EQUAL);
     191 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(two.compare(4), Cardinality::EQUAL);
     192 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((two = 2).compare(2), Cardinality::EQUAL);
     193 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(two.compare(2), Cardinality::EQUAL);
     194 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((two *= 2).compare(4), Cardinality::EQUAL);
     195 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(two.compare(4), Cardinality::EQUAL);
     196 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(((two = 2) ^= 2).compare(4), Cardinality::EQUAL);
     197 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(two.compare(4), Cardinality::EQUAL);
     198 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((two = 2).compare(2), Cardinality::EQUAL);
     199                 :            : 
     200                 :            :   // infinite cardinal arithmetic
     201                 :            : 
     202                 :          2 :   Cardinality x = i, y = Cardinality(2) ^ x, z = Cardinality(2) ^ y;
     203                 :            : 
     204 [ +  - ][ +  - ]:          1 :   ASSERT_TRUE(x.compare(i) == Cardinality::EQUAL
                 [ -  + ]
     205         [ +  - ]:          1 :               && y.compare(r) == Cardinality::EQUAL);
     206 [ +  - ][ +  - ]:          1 :   ASSERT_TRUE(x.compare(r) != Cardinality::EQUAL
                 [ -  + ]
     207         [ +  - ]:          1 :               && y.compare(i) != Cardinality::EQUAL);
     208 [ +  - ][ +  - ]:          1 :   ASSERT_TRUE(x.compare(z) != Cardinality::EQUAL
                 [ -  + ]
     209         [ +  - ]:          1 :               && y.compare(z) != Cardinality::EQUAL);
     210 [ +  - ][ +  - ]:          1 :   ASSERT_TRUE(x.isCountable() && !x.isFinite());
         [ -  + ][ +  - ]
     211 [ -  + ][ -  - ]:          1 :   ASSERT_FALSE(y.isCountable() && !y.isFinite());
         [ -  + ][ +  - ]
     212 [ -  + ][ -  - ]:          1 :   ASSERT_FALSE(z.isCountable() && !z.isFinite());
         [ -  + ][ +  - ]
     213                 :            : 
     214 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(big.compare(x), Cardinality::LESS);
     215 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(x.compare(y), Cardinality::LESS);
     216 [ -  + ][ +  - ]:          1 :   ASSERT_EQ(y.compare(z), Cardinality::LESS);
     217                 :            : 
     218                 :          1 :   ASSERT_DEATH(big.getBethNumber(), "!isFinite\\(\\) && !isUnknown\\(\\)");
     219 [ -  + ][ +  - ]:          2 :   ASSERT_EQ(x.getBethNumber(), 0);
     220 [ -  + ][ +  - ]:          2 :   ASSERT_EQ(y.getBethNumber(), 1);
     221 [ -  + ][ +  - ]:          2 :   ASSERT_EQ(z.getBethNumber(), 2);
     222                 :            : 
     223 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((zero ^ x).compare(zero), Cardinality::EQUAL);
     224 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((one ^ x).compare(one), Cardinality::EQUAL);
     225                 :          3 :   ASSERT_TRUE((two ^ x).compare(y) == Cardinality::EQUAL
     226         [ +  - ]:          1 :               && (two ^ x).compare(x) != Cardinality::EQUAL);
     227                 :          3 :   ASSERT_TRUE((big ^ x).compare(y) == Cardinality::EQUAL
     228         [ +  - ]:          1 :               && (big ^ x).compare(x) != Cardinality::EQUAL);
     229 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((two ^ x).compare(big ^ x), Cardinality::EQUAL);
     230                 :            : 
     231 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((x ^ zero).compare(one), Cardinality::EQUAL);
     232 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((x ^ one).compare(x), Cardinality::EQUAL);
     233 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((x ^ two).compare(x), Cardinality::EQUAL);
     234 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((x ^ big).compare(x), Cardinality::EQUAL);
     235 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((x ^ big).compare(x ^ two), Cardinality::EQUAL);
     236                 :            : 
     237 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((zero ^ y).compare(zero), Cardinality::EQUAL);
     238 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((one ^ y).compare(one), Cardinality::EQUAL);
     239                 :          3 :   ASSERT_TRUE((two ^ y).compare(x) != Cardinality::EQUAL
     240         [ +  - ]:          1 :               && (two ^ y).compare(y) != Cardinality::EQUAL);
     241                 :          3 :   ASSERT_TRUE((big ^ y).compare(y) != Cardinality::EQUAL
     242         [ +  - ]:          1 :               && (big ^ y).compare(y) != Cardinality::EQUAL);
     243 [ -  + ][ +  - ]:          2 :   ASSERT_EQ((big ^ y).getBethNumber(), 2);
     244 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((two ^ y).compare(big ^ y), Cardinality::EQUAL);
     245                 :            : 
     246 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((y ^ zero).compare(one), Cardinality::EQUAL);
     247 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((y ^ one).compare(y), Cardinality::EQUAL);
     248 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((y ^ two).compare(y), Cardinality::EQUAL);
     249 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((y ^ big).compare(y), Cardinality::EQUAL);
     250 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((y ^ big).compare(y ^ two), Cardinality::EQUAL);
     251                 :            : 
     252 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((x ^ x).compare(y), Cardinality::EQUAL);
     253 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((y ^ x).compare(y), Cardinality::EQUAL);
     254 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((x ^ y).compare(z), Cardinality::EQUAL);
     255 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((y ^ y).compare(z), Cardinality::EQUAL);
     256 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((z ^ x).compare(z), Cardinality::EQUAL);
     257 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((z ^ y).compare(z), Cardinality::EQUAL);
     258 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((zero ^ z).compare(0), Cardinality::EQUAL);
     259 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((z ^ zero).compare(1), Cardinality::EQUAL);
     260 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((z ^ 0).compare(1), Cardinality::EQUAL);
     261 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((two ^ z).compare(z), Cardinality::GREATER);
     262 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((big ^ z).compare(two ^ z), Cardinality::EQUAL);
     263 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((x ^ z).compare(two ^ z), Cardinality::EQUAL);
     264 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((y ^ z).compare(x ^ z), Cardinality::EQUAL);
     265 [ -  + ][ +  - ]:          1 :   ASSERT_EQ((z ^ z).compare(x ^ z), Cardinality::EQUAL);
     266 [ -  + ][ +  - ]:          2 :   ASSERT_EQ((z ^ z).getBethNumber(), 3);
     267 [ +  - ][ +  - ]:          1 : }
         [ +  - ][ +  - ]
     268                 :            : }  // namespace test
     269                 :            : }  // namespace cvc5::internal

Generated by: LCOV version 1.14