/*
 * Copyright 2013 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */
#include "src/pathops/SkPathOpsTypes.h"
#include "tests/Test.h"

#include <array>
#include <cstddef>

static constexpr auto roughlyTests = std::to_array<std::array<const double, 2>>({
    {5.0402503619650929e-005, 4.3178054475078825e-005}
});

static const size_t roughlyTestsCount = std::size(roughlyTests);

DEF_TEST(PathOpsRoughly, reporter) {
    for (size_t index = 0; index < roughlyTestsCount; ++index) {
        bool equal = RoughlyEqualUlps(roughlyTests[index][0], roughlyTests[index][1]);
        REPORTER_ASSERT(reporter, equal);
    }
}
