1 //===- unittest/Support/BranchProbabilityTest.cpp - BranchProbability tests -=// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "llvm/Support/BranchProbability.h" 11 #include "llvm/Support/raw_ostream.h" 12 #include "gtest/gtest.h" 13 14 using namespace llvm; 15 16 namespace llvm { 17 void PrintTo(const BranchProbability &P, ::std::ostream *os) { 18 *os << P.getNumerator() << "/" << P.getDenominator(); 19 } 20 } 21 namespace { 22 23 typedef BranchProbability BP; 24 TEST(BranchProbabilityTest, Accessors) { 25 EXPECT_EQ(1u, BP(1, 7).getNumerator()); 26 EXPECT_EQ(7u, BP(1, 7).getDenominator()); 27 EXPECT_EQ(0u, BP::getZero().getNumerator()); 28 EXPECT_EQ(1u, BP::getZero().getDenominator()); 29 EXPECT_EQ(1u, BP::getOne().getNumerator()); 30 EXPECT_EQ(1u, BP::getOne().getDenominator()); 31 } 32 33 TEST(BranchProbabilityTest, Operators) { 34 EXPECT_TRUE(BP(1, 7) < BP(2, 7)); 35 EXPECT_TRUE(BP(1, 7) < BP(1, 4)); 36 EXPECT_TRUE(BP(5, 7) < BP(3, 4)); 37 EXPECT_FALSE(BP(1, 7) < BP(1, 7)); 38 EXPECT_FALSE(BP(1, 7) < BP(2, 14)); 39 EXPECT_FALSE(BP(4, 7) < BP(1, 2)); 40 EXPECT_FALSE(BP(4, 7) < BP(3, 7)); 41 42 EXPECT_FALSE(BP(1, 7) > BP(2, 7)); 43 EXPECT_FALSE(BP(1, 7) > BP(1, 4)); 44 EXPECT_FALSE(BP(5, 7) > BP(3, 4)); 45 EXPECT_FALSE(BP(1, 7) > BP(1, 7)); 46 EXPECT_FALSE(BP(1, 7) > BP(2, 14)); 47 EXPECT_TRUE(BP(4, 7) > BP(1, 2)); 48 EXPECT_TRUE(BP(4, 7) > BP(3, 7)); 49 50 EXPECT_TRUE(BP(1, 7) <= BP(2, 7)); 51 EXPECT_TRUE(BP(1, 7) <= BP(1, 4)); 52 EXPECT_TRUE(BP(5, 7) <= BP(3, 4)); 53 EXPECT_TRUE(BP(1, 7) <= BP(1, 7)); 54 EXPECT_TRUE(BP(1, 7) <= BP(2, 14)); 55 EXPECT_FALSE(BP(4, 7) <= BP(1, 2)); 56 EXPECT_FALSE(BP(4, 7) <= BP(3, 7)); 57 58 EXPECT_FALSE(BP(1, 7) >= BP(2, 7)); 59 EXPECT_FALSE(BP(1, 7) >= BP(1, 4)); 60 EXPECT_FALSE(BP(5, 7) >= BP(3, 4)); 61 EXPECT_TRUE(BP(1, 7) >= BP(1, 7)); 62 EXPECT_TRUE(BP(1, 7) >= BP(2, 14)); 63 EXPECT_TRUE(BP(4, 7) >= BP(1, 2)); 64 EXPECT_TRUE(BP(4, 7) >= BP(3, 7)); 65 66 EXPECT_FALSE(BP(1, 7) == BP(2, 7)); 67 EXPECT_FALSE(BP(1, 7) == BP(1, 4)); 68 EXPECT_FALSE(BP(5, 7) == BP(3, 4)); 69 EXPECT_TRUE(BP(1, 7) == BP(1, 7)); 70 EXPECT_TRUE(BP(1, 7) == BP(2, 14)); 71 EXPECT_FALSE(BP(4, 7) == BP(1, 2)); 72 EXPECT_FALSE(BP(4, 7) == BP(3, 7)); 73 74 EXPECT_TRUE(BP(1, 7) != BP(2, 7)); 75 EXPECT_TRUE(BP(1, 7) != BP(1, 4)); 76 EXPECT_TRUE(BP(5, 7) != BP(3, 4)); 77 EXPECT_FALSE(BP(1, 7) != BP(1, 7)); 78 EXPECT_FALSE(BP(1, 7) != BP(2, 14)); 79 EXPECT_TRUE(BP(4, 7) != BP(1, 2)); 80 EXPECT_TRUE(BP(4, 7) != BP(3, 7)); 81 } 82 83 TEST(BranchProbabilityTest, getCompl) { 84 EXPECT_EQ(BP(5, 7), BP(2, 7).getCompl()); 85 EXPECT_EQ(BP(2, 7), BP(5, 7).getCompl()); 86 EXPECT_EQ(BP::getZero(), BP(7, 7).getCompl()); 87 EXPECT_EQ(BP::getOne(), BP(0, 7).getCompl()); 88 } 89 90 } 91