diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2015-12-30 11:46:15 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2015-12-30 11:46:15 +0000 |
commit | dd58ef019b700900793a1eb48b52123db01b654e (patch) | |
tree | fcfbb4df56a744f4ddc6122c50521dd3f1c5e196 /unittests/Support/BlockFrequencyTest.cpp | |
parent | 2fe5752e3a7c345cdb59e869278d36af33c13fa4 (diff) |
Notes
Diffstat (limited to 'unittests/Support/BlockFrequencyTest.cpp')
-rw-r--r-- | unittests/Support/BlockFrequencyTest.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/unittests/Support/BlockFrequencyTest.cpp b/unittests/Support/BlockFrequencyTest.cpp index 0eac8bb8811b..c1f5671815bd 100644 --- a/unittests/Support/BlockFrequencyTest.cpp +++ b/unittests/Support/BlockFrequencyTest.cpp @@ -19,7 +19,7 @@ namespace { TEST(BlockFrequencyTest, OneToZero) { BlockFrequency Freq(1); - BranchProbability Prob(UINT32_MAX - 1, UINT32_MAX); + BranchProbability Prob(UINT32_MAX / 3, UINT32_MAX); Freq *= Prob; EXPECT_EQ(Freq.getFrequency(), 0u); @@ -54,11 +54,11 @@ TEST(BlockFrequencyTest, MaxToHalfMax) { BlockFrequency Freq(UINT64_MAX); BranchProbability Prob(UINT32_MAX / 2, UINT32_MAX); Freq *= Prob; - EXPECT_EQ(Freq.getFrequency(), 9223372034707292159ULL); + EXPECT_EQ(Freq.getFrequency(), 9223372036854775807ULL); Freq = BlockFrequency(UINT64_MAX); Freq *= Prob; - EXPECT_EQ(Freq.getFrequency(), 9223372034707292159ULL); + EXPECT_EQ(Freq.getFrequency(), 9223372036854775807ULL); } TEST(BlockFrequencyTest, BigToBig) { @@ -88,6 +88,12 @@ TEST(BlockFrequencyTest, MaxToMax) { EXPECT_EQ(Freq.getFrequency(), UINT64_MAX); } +TEST(BlockFrequencyTest, Subtract) { + BlockFrequency Freq1(0), Freq2(1); + EXPECT_EQ((Freq1 - Freq2).getFrequency(), 0u); + EXPECT_EQ((Freq2 - Freq1).getFrequency(), 1u); +} + TEST(BlockFrequency, Divide) { BlockFrequency Freq(0x3333333333333333ULL); Freq /= BranchProbability(1, 2); @@ -97,18 +103,18 @@ TEST(BlockFrequency, Divide) { TEST(BlockFrequencyTest, Saturate) { BlockFrequency Freq(0x3333333333333333ULL); Freq /= BranchProbability(100, 300); - EXPECT_EQ(Freq.getFrequency(), 0x9999999999999999ULL); + EXPECT_EQ(Freq.getFrequency(), 0x9999999866666668ULL); Freq /= BranchProbability(1, 2); EXPECT_EQ(Freq.getFrequency(), UINT64_MAX); Freq = 0x1000000000000000ULL; - Freq /= BranchProbability(10000, 160000); + Freq /= BranchProbability(10000, 170000); EXPECT_EQ(Freq.getFrequency(), UINT64_MAX); // Try to cheat the multiplication overflow check. Freq = 0x00000001f0000001ull; Freq /= BranchProbability(1000, 0xf000000f); - EXPECT_EQ(33506781356485509ULL, Freq.getFrequency()); + EXPECT_EQ(33527736066704712ULL, Freq.getFrequency()); } TEST(BlockFrequencyTest, SaturatingRightShift) { |