Index: services/media/common/test/ratio_test.cc |
diff --git a/services/media/common/test/ratio_test.cc b/services/media/common/test/ratio_test.cc |
deleted file mode 100644 |
index 8a0ce3e19da32b26f5b9bf202334ca553e1c1d2a..0000000000000000000000000000000000000000 |
--- a/services/media/common/test/ratio_test.cc |
+++ /dev/null |
@@ -1,181 +0,0 @@ |
-// Copyright 2016 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include <limits> |
- |
-#include "mojo/services/media/common/cpp/ratio.h" |
-#include "services/media/common/test/test_base.h" |
- |
-namespace mojo { |
-namespace media { |
-namespace { |
- |
-class RatioTest : public TestBase { |
- static uint32_t gcd(uint32_t a, uint32_t b) { |
- while (b != 0) { |
- uint32_t t = a; |
- a = b; |
- b = t % b; |
- } |
- return a; |
- } |
- |
- public: |
- // Verifies Ratio::Reduce and the constructor, ensuring that the ratio |
- // numerator * common_factor / denominator * common_factor is reduced to |
- // numerator / denominator. numerator and denominator need to be relatively |
- // prime for this to work. |
- void VerifyReduce(uint32_t numerator, |
- uint32_t denominator, |
- uint32_t common_factor) { |
- // Make sure numerator and denominator are relatively prime. |
- EXPECT_EQ(1u, gcd(numerator, denominator)); |
- |
- uint32_t test_numerator = numerator * common_factor; |
- uint32_t test_denominator = denominator * common_factor; |
- |
- // Make sure the constructor reduces. |
- Ratio ratio(test_numerator, test_denominator); |
- EXPECT_EQ(numerator, ratio.numerator()); |
- EXPECT_EQ(denominator, ratio.denominator()); |
- |
- // Test the static method. |
- Ratio::Reduce(&test_numerator, &test_denominator); |
- EXPECT_EQ(numerator, test_numerator); |
- EXPECT_EQ(denominator, test_denominator); |
- } |
- |
- // Verifies the Ratio::Scale methods by scaling value by numerator / |
- // denominator and verifying the result. |
- void VerifyScale(int64_t value, |
- uint32_t numerator, |
- uint32_t denominator, |
- int64_t result) { |
- // Test the instance method. |
- EXPECT_EQ(result, Ratio(numerator, denominator).Scale(value)); |
- |
- // Test the static method. |
- EXPECT_EQ(result, Ratio::Scale(value, numerator, denominator)); |
- |
- // Test the operators. |
- EXPECT_EQ(result, value * Ratio(numerator, denominator)); |
- EXPECT_EQ(result, Ratio(numerator, denominator) * value); |
- if (numerator != 0) { |
- EXPECT_EQ(result, value / Ratio(denominator, numerator)); |
- } |
- } |
- |
- // Verifies the Ratio::Product methods by multiplying the given a and b |
- // ratios and checking the result against the expected ratio. |
- void VerifyProduct(uint32_t a_numerator, |
- uint32_t a_denominator, |
- uint32_t b_numerator, |
- uint32_t b_denominator, |
- uint32_t expected_numerator, |
- uint32_t expected_denominator, |
- bool exact) { |
- // Test the first static method. |
- uint32_t actual_numerator; |
- uint32_t actual_denominator; |
- Ratio::Product(a_numerator, a_denominator, b_numerator, b_denominator, |
- &actual_numerator, &actual_denominator, exact); |
- EXPECT_EQ(expected_numerator, actual_numerator); |
- EXPECT_EQ(expected_denominator, actual_denominator); |
- |
- // Test the second static method. |
- EXPECT_EQ(Ratio(expected_numerator, expected_denominator), |
- Ratio::Product(Ratio(a_numerator, a_denominator), |
- Ratio(b_numerator, b_denominator), exact)); |
- |
- // Test the operator |
- if (exact) { |
- EXPECT_EQ(Ratio(expected_numerator, expected_denominator), |
- Ratio(a_numerator, a_denominator) * |
- Ratio(b_numerator, b_denominator)); |
- } |
- } |
- |
- // Verifies the Ration::Inverse method using the given ratio. |
- void VerifyInverse(uint32_t numerator, uint32_t denominator) { |
- Ratio ratio(numerator, denominator); |
- Ratio inverse(ratio.Inverse()); |
- EXPECT_EQ(ratio.denominator(), inverse.numerator()); |
- EXPECT_EQ(ratio.numerator(), inverse.denominator()); |
- } |
-}; |
- |
-// Tests Ratio::Reduce and that the Ratio constructor reduces. |
-TEST_F(RatioTest, Reduce) { |
- VerifyReduce(0, 1, 1); |
- VerifyReduce(1, 1, 1); |
- VerifyReduce(1234, 1, 1); |
- VerifyReduce(1, 1234, 14); |
- VerifyReduce(1, 1, 1234); |
- VerifyReduce(10, 1, 1234); |
- VerifyReduce(1, 10, 1234); |
- VerifyReduce(49, 81, 1); |
- VerifyReduce(49, 81, 10); |
- VerifyReduce(49, 81, 100); |
- VerifyReduce(1, 8, 65536); |
- VerifyReduce(8, 1, 65536); |
-} |
- |
-// Tests Ratio::Scale, static, instance and operator versions. |
-TEST_F(RatioTest, Scale) { |
- const int64_t int64_min = std::numeric_limits<int64_t>::min(); |
- VerifyScale(0, 0, 1, 0); |
- VerifyScale(1, 0, 1, 0); |
- VerifyScale(0, 1, 1, 0); |
- VerifyScale(1, 1, 1, 1); |
- VerifyScale(1, 2, 1, 2); |
- VerifyScale(1, 1, 2, 0); |
- VerifyScale(-1, 1, 2, -1); |
- VerifyScale(1000, 1, 2, 500); |
- VerifyScale(1001, 1, 2, 500); |
- VerifyScale(-1000, 1, 2, -500); |
- VerifyScale(-1001, 1, 2, -501); |
- VerifyScale(1000, 2, 1, 2000); |
- VerifyScale(1001, 2, 1, 2002); |
- VerifyScale(-1000, 2, 1, -2000); |
- VerifyScale(-1001, 2, 1, -2002); |
- VerifyScale(1ll << 32, 1, 1, 1ll << 32); |
- VerifyScale(1ll << 32, 1, 2, 1ll << 31); |
- VerifyScale(1ll << 32, 2, 1, 1ll << 33); |
- VerifyScale(1234ll << 30, 1, 1, 1234ll << 30); |
- VerifyScale(1234ll << 30, 1, 2, 1234ll << 29); |
- VerifyScale(1234ll << 30, 2, 1, 1234ll << 31); |
- VerifyScale(1234ll << 30, 1 << 31, 1, Ratio::kOverflow); |
- VerifyScale(1234ll << 30, 1ll << 31, (1ll << 31) - 2, |
- (1234ll << 30) + 1234ll); |
- VerifyScale(int64_min, 1, 1, int64_min); |
- VerifyScale(int64_min, 1, 2, int64_min / 2); |
- VerifyScale(int64_min / 2, 2, 1, int64_min); |
- VerifyScale(int64_min, 1000001, 1000000, Ratio::kOverflow); |
-} |
- |
-// Tests Ratio::Product, static and operator versions. |
-TEST_F(RatioTest, Product) { |
- VerifyProduct(0, 1, 0, 1, 0, 1, true); |
- VerifyProduct(1, 1, 1, 1, 1, 1, true); |
- VerifyProduct(10, 1, 1, 10, 1, 1, true); |
- VerifyProduct(4321, 1234, 617, 4321, 1, 2, true); |
- VerifyProduct(1234, 4321, 4321, 617, 2, 1, true); |
- VerifyProduct(1ll << 31, (1ll << 31) - 1, (1ll << 31) - 1, 1ll << 31, 1, 1, |
- true); |
- VerifyProduct(1ll << 31, (1ll << 31) - 1, (1ll << 31) - 2, 1ll << 31, |
- 0x7ffffffe, 0x7fffffff, false); |
-} |
- |
-// Tests Ratio::Inverse. |
-TEST_F(RatioTest, Inverse) { |
- VerifyInverse(1, 1); |
- VerifyInverse(2, 1); |
- VerifyInverse(1, 2); |
- VerifyInverse(1000000, 1234); |
- VerifyInverse(1234, 1000000); |
-} |
- |
-} // namespace |
-} // namespace media |
-} // namespace mojo |