Chromium Code Reviews| Index: remoting/base/decoder_vp8_unittest.cc |
| diff --git a/remoting/base/decoder_vp8_unittest.cc b/remoting/base/decoder_vp8_unittest.cc |
| index e75071477555e934a7fc7ce0dc1655dee4ae07e2..bcff12fdc284be88d3d50833c04252d7f9c086ac 100644 |
| --- a/remoting/base/decoder_vp8_unittest.cc |
| +++ b/remoting/base/decoder_vp8_unittest.cc |
| @@ -10,19 +10,65 @@ |
| namespace remoting { |
| -TEST(DecoderVp8Test, EncodeAndDecode) { |
| - EncoderVp8 encoder; |
| - DecoderVp8 decoder; |
| - TestEncoderDecoder(&encoder, &decoder, false); |
| +class DecoderVp8Test : public testing::Test { |
| + protected: |
| + EncoderVp8 encoder_; |
| + DecoderVp8 decoder_; |
| + |
| + void TestGradient(int screen_width, int screen_height, |
| + int view_width, int view_height, |
| + double max_error_limit, double mean_error_limit) { |
| + TestEncoderDecoderGradient(&encoder_, &decoder_, |
| + SkISize::Make(screen_width, screen_height), |
| + SkISize::Make(view_width, view_height), |
| + max_error_limit, mean_error_limit); |
| + } |
| +}; |
| + |
| +TEST_F(DecoderVp8Test, EncodeAndDecode) { |
| + TestEncoderDecoder(&encoder_, &decoder_, false); |
| } |
| // Check that encoding and decoding a particular frame doesn't change the |
| // frame too much. The frame used is a gradient, which does not contain sharp |
| // transitions, so encoding lossiness should not be too high. |
| -TEST(DecoderVp8Test, Gradient) { |
| - EncoderVp8 encoder; |
| - DecoderVp8 decoder; |
| - TestEncoderDecoderGradient(&encoder, &decoder, 0.03, 0.01); |
| +TEST_F(DecoderVp8Test, Gradient) { |
| + TestGradient(320, 240, 320, 240, 0.03, 0.01); |
| +} |
| + |
| +TEST_F(DecoderVp8Test, GradientScaleUpEvenToEven) { |
| + TestGradient(320, 240, 640, 480, 0.04, 0.02); |
| +} |
| + |
| +TEST_F(DecoderVp8Test, GradientScaleUpEvenToOdd) { |
| + TestGradient(320, 240, 641, 481, 0.04, 0.02); |
| +} |
| + |
| +TEST_F(DecoderVp8Test, GradientScaleUpOddToEven) { |
| + TestGradient(321, 241, 640, 480, 0.04, 0.02); |
| +} |
| + |
| +TEST_F(DecoderVp8Test, GradientScaleUpOddToOdd) { |
| + TestGradient(321, 241, 641, 481, 0.04, 0.02); |
| +} |
| + |
| +TEST_F(DecoderVp8Test, GradientScaleDownEvenToEven) { |
| + TestGradient(320, 240, 160, 120, 0.04, 0.02); |
| +} |
| + |
| +TEST_F(DecoderVp8Test, GradientScaleDownEvenToOdd) { |
| + // TODO(simonmorris): The maximum errors are much too high in the following |
| + // tests: find out why. Note also that the error values after Invalidate are |
| + // different from the error values after DecodePacket, which is unexpected. |
|
Sergey Ulanov
2012/07/27 22:29:37
Open a bug?
simonmorris
2012/07/27 23:14:12
Done.
|
| + TestGradient(320, 240, 161, 121, 0.3, 0.02); |
| +} |
| + |
| +TEST_F(DecoderVp8Test, GradientScaleDownOddToEven) { |
| + TestGradient(321, 241, 160, 120, 0.04, 0.02); |
| +} |
| + |
| +TEST_F(DecoderVp8Test, GradientScaleDownOddToOdd) { |
| + TestGradient(321, 241, 161, 121, 0.04, 0.02); |
| } |
| } // namespace remoting |