/* * Copyright (c) 2025, Jelle Raaijmakers * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include namespace TestWeb { struct FuzzyRange { u64 minimum_value; u64 maximum_value; bool contains(u64 value) const { return value >= minimum_value && value <= maximum_value; } }; struct FuzzyMatch { Optional reference; FuzzyRange color_value_error; FuzzyRange pixel_error_count; }; bool fuzzy_screenshot_match(URL::URL const& reference, Gfx::Bitmap const&, Gfx::Bitmap const&, Vector const&); ErrorOr parse_fuzzy_match(Optional reference, String const&); ErrorOr parse_fuzzy_range(String const&); } namespace AK { template<> struct Formatter : Formatter { ErrorOr format(FormatBuilder& builder, TestWeb::FuzzyRange const& value) { return Formatter::format(builder, "FuzzyRange [{}-{}]"sv, value.minimum_value, value.maximum_value); } }; }