diff options
Diffstat (limited to 'chromium/ui/base/prediction/one_euro_filter_unittests.cc')
-rw-r--r-- | chromium/ui/base/prediction/one_euro_filter_unittests.cc | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/chromium/ui/base/prediction/one_euro_filter_unittests.cc b/chromium/ui/base/prediction/one_euro_filter_unittests.cc new file mode 100644 index 00000000000..3e74f032fa0 --- /dev/null +++ b/chromium/ui/base/prediction/one_euro_filter_unittests.cc @@ -0,0 +1,46 @@ +// Copyright 2019 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 "base/rand_util.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "ui/base/prediction/input_filter_unittest_helpers.h" +#include "ui/base/prediction/one_euro_filter.h" +#include "ui/base/prediction/prediction_unittest_helpers.h" + +namespace ui { +namespace test { + +class OneEuroFilterTest : public InputFilterTest { + public: + explicit OneEuroFilterTest() {} + + void SetUp() override { filter_ = std::make_unique<OneEuroFilter>(1, 1); } + + DISALLOW_COPY_AND_ASSIGN(OneEuroFilterTest); +}; + +TEST_F(OneEuroFilterTest, TestClone) { + TestCloneFilter(); +} + +TEST_F(OneEuroFilterTest, TestReset) { + TestResetFilter(); +} + +// Check if sending values between 0 and 1 keeps filtered values between 0 and 1 +TEST_F(OneEuroFilterTest, filteringValues) { + base::TimeTicks ts = PredictionUnittestHelpers::GetStaticTimeStampForTests(); + gfx::PointF point; + for (int i = 0; i < 100; i++) { + point.SetPoint(base::RandDouble(), base::RandDouble()); + EXPECT_TRUE(filter_->Filter(ts, &point)); + EXPECT_LT(point.x(), 1.0); + EXPECT_LT(point.y(), 1.0); + EXPECT_GT(point.x(), 0.0); + EXPECT_GT(point.y(), 0.0); + } +} + +} // namespace test +} // namespace ui |