LibWeb: Implement interpolation of repeatable lists

This commit is contained in:
Tim Ledbetter 2025-04-11 06:00:03 +01:00 committed by Tim Ledbetter
parent 0beb22f19e
commit 04d7228c51
Notes: github-actions[bot] 2025-04-23 08:39:34 +00:00
8 changed files with 366 additions and 117 deletions

View file

@ -8,6 +8,7 @@
*/
#include "Interpolation.h"
#include <AK/IntegralMath.h>
#include <LibWeb/CSS/PropertyID.h>
#include <LibWeb/CSS/StyleComputer.h>
#include <LibWeb/CSS/StyleValues/AngleStyleValue.h>
@ -72,6 +73,8 @@ ValueComparingRefPtr<CSSStyleValue const> interpolate_property(DOM::Element& ele
return interpolate_value(element, calculation_context, from, to, delta);
case AnimationType::None:
return to;
case AnimationType::RepeatableList:
return interpolate_repeatable_list(element, calculation_context, from, to, delta);
case AnimationType::Custom: {
if (property_id == PropertyID::Transform) {
if (auto interpolated_transform = interpolate_transform(element, from, to, delta))
@ -89,8 +92,6 @@ ValueComparingRefPtr<CSSStyleValue const> interpolate_property(DOM::Element& ele
// FIXME: Handle all custom animatable properties
[[fallthrough]];
}
// FIXME: Handle repeatable-list animatable properties
case AnimationType::RepeatableList:
case AnimationType::Discrete:
default:
return delta >= 0.5f ? to : from;
@ -500,7 +501,12 @@ NonnullRefPtr<CSSStyleValue const> interpolate_box_shadow(DOM::Element& element,
return StyleValueList::create(move(result_shadows), StyleValueList::Separator::Comma);
}
NonnullRefPtr<CSSStyleValue const> interpolate_value(DOM::Element& element, CalculationContext const& calculation_context, CSSStyleValue const& from, CSSStyleValue const& to, float delta)
enum class AllowDiscrete {
Yes,
No,
};
static RefPtr<CSSStyleValue const> interpolate_value_impl(DOM::Element& element, CalculationContext const& calculation_context, CSSStyleValue const& from, CSSStyleValue const& to, float delta, AllowDiscrete allow_discrete)
{
if (from.type() != to.type()) {
// Handle mixed percentage and dimension types
@ -685,8 +691,60 @@ NonnullRefPtr<CSSStyleValue const> interpolate_value(DOM::Element& element, Calc
return StyleValueList::create(move(interpolated_values), from_list.separator());
}
default:
if (allow_discrete == AllowDiscrete::No)
return {};
return delta >= 0.5f ? to : from;
}
}
NonnullRefPtr<CSSStyleValue const> interpolate_value(DOM::Element& element, CalculationContext const& calculation_context, CSSStyleValue const& from, CSSStyleValue const& to, float delta)
{
return *interpolate_value_impl(element, calculation_context, from, to, delta, AllowDiscrete::Yes);
}
NonnullRefPtr<CSSStyleValue const> interpolate_repeatable_list(DOM::Element& element, CalculationContext const& calculation_context, CSSStyleValue const& from, CSSStyleValue const& to, float delta)
{
// https://www.w3.org/TR/web-animations/#repeatable-list
// Same as by computed value except that if the two lists have differing numbers of items, they are first repeated to the least common multiple number of items.
// Each item is then combined by computed value.
// If a pair of values cannot be combined or if any component value uses discrete animation, then the property values combine as discrete.
auto make_repeatable_list = [&](auto const& from_list, auto const& to_list, Function<void(NonnullRefPtr<CSSStyleValue const>)> append_callback) -> bool {
// If the number of components or the types of corresponding components do not match,
// or if any component value uses discrete animation and the two corresponding values do not match,
// then the property values combine as discrete
auto list_size = AK::lcm(from_list.size(), to_list.size());
for (size_t i = 0; i < list_size; ++i) {
auto value = interpolate_value_impl(element, calculation_context, from_list.value_at(i, true), to_list.value_at(i, true), delta, AllowDiscrete::No);
if (!value)
return false;
append_callback(*value);
}
return true;
};
auto make_single_value_list = [&](auto const& value, size_t size, auto separator) {
StyleValueVector values;
values.ensure_capacity(size);
for (size_t i = 0; i < size; ++i)
values.append(value);
return StyleValueList::create(move(values), separator);
};
NonnullRefPtr from_list = from;
NonnullRefPtr to_list = to;
if (!from.is_value_list() && to.is_value_list())
from_list = make_single_value_list(from, to.as_value_list().size(), to.as_value_list().separator());
else if (!to.is_value_list() && from.is_value_list())
to_list = make_single_value_list(to, from.as_value_list().size(), to.as_value_list().separator());
else if (!from.is_value_list() && !to.is_value_list())
return interpolate_value(element, calculation_context, from, to, delta);
StyleValueVector interpolated_values;
if (!make_repeatable_list(from_list->as_value_list(), to_list->as_value_list(), [&](auto const& value) { interpolated_values.append(value); }))
return delta >= 0.5f ? to : from;
return StyleValueList::create(move(interpolated_values), from_list->as_value_list().separator());
}
}

View file

@ -19,6 +19,7 @@ ValueComparingRefPtr<CSSStyleValue const> interpolate_property(DOM::Element&, Pr
bool property_values_are_transitionable(PropertyID, CSSStyleValue const& old_value, CSSStyleValue const& new_value);
NonnullRefPtr<CSSStyleValue const> interpolate_value(DOM::Element&, CalculationContext const&, CSSStyleValue const& from, CSSStyleValue const& to, float delta);
NonnullRefPtr<CSSStyleValue const> interpolate_repeatable_list(DOM::Element&, CalculationContext const&, CSSStyleValue const& from, CSSStyleValue const& to, float delta);
NonnullRefPtr<CSSStyleValue const> interpolate_box_shadow(DOM::Element&, CalculationContext const&, CSSStyleValue const& from, CSSStyleValue const& to, float delta);
RefPtr<CSSStyleValue const> interpolate_transform(DOM::Element&, CSSStyleValue const& from, CSSStyleValue const& to, float delta);

View file

@ -2,8 +2,8 @@ Harness status: OK
Found 196 tests
14 Pass
182 Fail
40 Pass
156 Fail
Fail CSS Transitions: property <background-position> from neutral to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (-0.25) should be [30px 30px, 30px 30px, 30px 30px, 30px 30px]
Fail CSS Transitions: property <background-position> from neutral to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0) should be [40px 40px, 40px 40px, 40px 40px, 40px 40px]
Fail CSS Transitions: property <background-position> from neutral to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.25) should be [50px 50px, 50px 50px, 50px 50px, 50px 50px]
@ -47,14 +47,14 @@ Fail CSS Transitions with transition: all: property <background-position> from [
Fail CSS Transitions with transition: all: property <background-position> from [initial] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1) should be [calc(0% + 80px) calc(0% + 80px), calc(0% + 80px) calc(0% + 80px), calc(0% + 80px) calc(0% + 80px), calc(0% + 80px) calc(0% + 80px)]
Fail CSS Transitions with transition: all: property <background-position> from [initial] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1.25) should be [calc(0% + 100px) calc(0% + 100px), calc(0% + 100px) calc(0% + 100px), calc(0% + 100px) calc(0% + 100px), calc(0% + 100px) calc(0% + 100px)]
Fail CSS Animations: property <background-position> from [initial] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (-0.25) should be [calc(0% - 20px) calc(0% - 20px), calc(0% - 20px) calc(0% - 20px), calc(0% - 20px) calc(0% - 20px), calc(0% - 20px) calc(0% - 20px)]
Fail CSS Animations: property <background-position> from [initial] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0) should be [0% 0%, 0% 0%, 0% 0%, 0% 0%]
Pass CSS Animations: property <background-position> from [initial] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0) should be [0% 0%, 0% 0%, 0% 0%, 0% 0%]
Fail CSS Animations: property <background-position> from [initial] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.25) should be [calc(0% + 20px) calc(0% + 20px), calc(0% + 20px) calc(0% + 20px), calc(0% + 20px) calc(0% + 20px), calc(0% + 20px) calc(0% + 20px)]
Fail CSS Animations: property <background-position> from [initial] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.5) should be [calc(0% + 40px) calc(0% + 40px), calc(0% + 40px) calc(0% + 40px), calc(0% + 40px) calc(0% + 40px), calc(0% + 40px) calc(0% + 40px)]
Fail CSS Animations: property <background-position> from [initial] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.75) should be [calc(0% + 60px) calc(0% + 60px), calc(0% + 60px) calc(0% + 60px), calc(0% + 60px) calc(0% + 60px), calc(0% + 60px) calc(0% + 60px)]
Fail CSS Animations: property <background-position> from [initial] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1) should be [calc(0% + 80px) calc(0% + 80px), calc(0% + 80px) calc(0% + 80px), calc(0% + 80px) calc(0% + 80px), calc(0% + 80px) calc(0% + 80px)]
Fail CSS Animations: property <background-position> from [initial] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1.25) should be [calc(0% + 100px) calc(0% + 100px), calc(0% + 100px) calc(0% + 100px), calc(0% + 100px) calc(0% + 100px), calc(0% + 100px) calc(0% + 100px)]
Fail Web Animations: property <background-position> from [initial] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (-0.25) should be [calc(0% - 20px) calc(0% - 20px), calc(0% - 20px) calc(0% - 20px), calc(0% - 20px) calc(0% - 20px), calc(0% - 20px) calc(0% - 20px)]
Fail Web Animations: property <background-position> from [initial] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0) should be [0% 0%, 0% 0%, 0% 0%, 0% 0%]
Pass Web Animations: property <background-position> from [initial] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0) should be [0% 0%, 0% 0%, 0% 0%, 0% 0%]
Fail Web Animations: property <background-position> from [initial] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.25) should be [calc(0% + 20px) calc(0% + 20px), calc(0% + 20px) calc(0% + 20px), calc(0% + 20px) calc(0% + 20px), calc(0% + 20px) calc(0% + 20px)]
Fail Web Animations: property <background-position> from [initial] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.5) should be [calc(0% + 40px) calc(0% + 40px), calc(0% + 40px) calc(0% + 40px), calc(0% + 40px) calc(0% + 40px), calc(0% + 40px) calc(0% + 40px)]
Fail Web Animations: property <background-position> from [initial] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.75) should be [calc(0% + 60px) calc(0% + 60px), calc(0% + 60px) calc(0% + 60px), calc(0% + 60px) calc(0% + 60px), calc(0% + 60px) calc(0% + 60px)]
@ -74,20 +74,20 @@ Fail CSS Transitions with transition: all: property <background-position> from [
Fail CSS Transitions with transition: all: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.75) should be [75px 75px, 75px 75px, 75px 75px, 75px 75px]
Pass CSS Transitions with transition: all: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1) should be [80px 80px, 80px 80px, 80px 80px, 80px 80px]
Fail CSS Transitions with transition: all: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1.25) should be [85px 85px, 85px 85px, 85px 85px, 85px 85px]
Fail CSS Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (-0.25) should be [55px 55px, 55px 55px, 55px 55px, 55px 55px]
Fail CSS Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0) should be [60px 60px, 60px 60px, 60px 60px, 60px 60px]
Fail CSS Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.25) should be [65px 65px, 65px 65px, 65px 65px, 65px 65px]
Fail CSS Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.5) should be [70px 70px, 70px 70px, 70px 70px, 70px 70px]
Fail CSS Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.75) should be [75px 75px, 75px 75px, 75px 75px, 75px 75px]
Pass CSS Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (-0.25) should be [55px 55px, 55px 55px, 55px 55px, 55px 55px]
Pass CSS Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0) should be [60px 60px, 60px 60px, 60px 60px, 60px 60px]
Pass CSS Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.25) should be [65px 65px, 65px 65px, 65px 65px, 65px 65px]
Pass CSS Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.5) should be [70px 70px, 70px 70px, 70px 70px, 70px 70px]
Pass CSS Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.75) should be [75px 75px, 75px 75px, 75px 75px, 75px 75px]
Pass CSS Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1) should be [80px 80px, 80px 80px, 80px 80px, 80px 80px]
Fail CSS Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1.25) should be [85px 85px, 85px 85px, 85px 85px, 85px 85px]
Fail Web Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (-0.25) should be [55px 55px, 55px 55px, 55px 55px, 55px 55px]
Fail Web Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0) should be [60px 60px, 60px 60px, 60px 60px, 60px 60px]
Fail Web Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.25) should be [65px 65px, 65px 65px, 65px 65px, 65px 65px]
Fail Web Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.5) should be [70px 70px, 70px 70px, 70px 70px, 70px 70px]
Fail Web Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.75) should be [75px 75px, 75px 75px, 75px 75px, 75px 75px]
Pass CSS Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1.25) should be [85px 85px, 85px 85px, 85px 85px, 85px 85px]
Pass Web Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (-0.25) should be [55px 55px, 55px 55px, 55px 55px, 55px 55px]
Pass Web Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0) should be [60px 60px, 60px 60px, 60px 60px, 60px 60px]
Pass Web Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.25) should be [65px 65px, 65px 65px, 65px 65px, 65px 65px]
Pass Web Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.5) should be [70px 70px, 70px 70px, 70px 70px, 70px 70px]
Pass Web Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.75) should be [75px 75px, 75px 75px, 75px 75px, 75px 75px]
Pass Web Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1) should be [80px 80px, 80px 80px, 80px 80px, 80px 80px]
Fail Web Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1.25) should be [85px 85px, 85px 85px, 85px 85px, 85px 85px]
Pass Web Animations: property <background-position> from [inherit] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1.25) should be [85px 85px, 85px 85px, 85px 85px, 85px 85px]
Fail CSS Transitions: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (-0.25) should be [calc(0% - 20px) calc(0% - 20px), calc(0% - 20px) calc(0% - 20px), calc(0% - 20px) calc(0% - 20px), calc(0% - 20px) calc(0% - 20px)]
Fail CSS Transitions: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0) should be [0% 0%, 0% 0%, 0% 0%, 0% 0%]
Fail CSS Transitions: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.25) should be [calc(0% + 20px) calc(0% + 20px), calc(0% + 20px) calc(0% + 20px), calc(0% + 20px) calc(0% + 20px), calc(0% + 20px) calc(0% + 20px)]
@ -103,14 +103,14 @@ Fail CSS Transitions with transition: all: property <background-position> from [
Fail CSS Transitions with transition: all: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1) should be [calc(0% + 80px) calc(0% + 80px), calc(0% + 80px) calc(0% + 80px), calc(0% + 80px) calc(0% + 80px), calc(0% + 80px) calc(0% + 80px)]
Fail CSS Transitions with transition: all: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1.25) should be [calc(0% + 100px) calc(0% + 100px), calc(0% + 100px) calc(0% + 100px), calc(0% + 100px) calc(0% + 100px), calc(0% + 100px) calc(0% + 100px)]
Fail CSS Animations: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (-0.25) should be [calc(0% - 20px) calc(0% - 20px), calc(0% - 20px) calc(0% - 20px), calc(0% - 20px) calc(0% - 20px), calc(0% - 20px) calc(0% - 20px)]
Fail CSS Animations: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0) should be [0% 0%, 0% 0%, 0% 0%, 0% 0%]
Pass CSS Animations: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0) should be [0% 0%, 0% 0%, 0% 0%, 0% 0%]
Fail CSS Animations: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.25) should be [calc(0% + 20px) calc(0% + 20px), calc(0% + 20px) calc(0% + 20px), calc(0% + 20px) calc(0% + 20px), calc(0% + 20px) calc(0% + 20px)]
Fail CSS Animations: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.5) should be [calc(0% + 40px) calc(0% + 40px), calc(0% + 40px) calc(0% + 40px), calc(0% + 40px) calc(0% + 40px), calc(0% + 40px) calc(0% + 40px)]
Fail CSS Animations: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.75) should be [calc(0% + 60px) calc(0% + 60px), calc(0% + 60px) calc(0% + 60px), calc(0% + 60px) calc(0% + 60px), calc(0% + 60px) calc(0% + 60px)]
Fail CSS Animations: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1) should be [calc(0% + 80px) calc(0% + 80px), calc(0% + 80px) calc(0% + 80px), calc(0% + 80px) calc(0% + 80px), calc(0% + 80px) calc(0% + 80px)]
Fail CSS Animations: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1.25) should be [calc(0% + 100px) calc(0% + 100px), calc(0% + 100px) calc(0% + 100px), calc(0% + 100px) calc(0% + 100px), calc(0% + 100px) calc(0% + 100px)]
Fail Web Animations: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (-0.25) should be [calc(0% - 20px) calc(0% - 20px), calc(0% - 20px) calc(0% - 20px), calc(0% - 20px) calc(0% - 20px), calc(0% - 20px) calc(0% - 20px)]
Fail Web Animations: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0) should be [0% 0%, 0% 0%, 0% 0%, 0% 0%]
Pass Web Animations: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0) should be [0% 0%, 0% 0%, 0% 0%, 0% 0%]
Fail Web Animations: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.25) should be [calc(0% + 20px) calc(0% + 20px), calc(0% + 20px) calc(0% + 20px), calc(0% + 20px) calc(0% + 20px), calc(0% + 20px) calc(0% + 20px)]
Fail Web Animations: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.5) should be [calc(0% + 40px) calc(0% + 40px), calc(0% + 40px) calc(0% + 40px), calc(0% + 40px) calc(0% + 40px), calc(0% + 40px) calc(0% + 40px)]
Fail Web Animations: property <background-position> from [unset] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.75) should be [calc(0% + 60px) calc(0% + 60px), calc(0% + 60px) calc(0% + 60px), calc(0% + 60px) calc(0% + 60px), calc(0% + 60px) calc(0% + 60px)]
@ -130,20 +130,20 @@ Fail CSS Transitions with transition: all: property <background-position> from [
Fail CSS Transitions with transition: all: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.75) should be [ 60px 60px, 60px 60px, 60px 60px, 60px 60px]
Pass CSS Transitions with transition: all: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1) should be [ 80px 80px, 80px 80px, 80px 80px, 80px 80px]
Fail CSS Transitions with transition: all: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1.25) should be [100px 100px, 100px 100px, 100px 100px, 100px 100px]
Fail CSS Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (-0.25) should be [-20px -20px, -20px -20px, -20px -20px, -20px -20px]
Pass CSS Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (-0.25) should be [-20px -20px, -20px -20px, -20px -20px, -20px -20px]
Pass CSS Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0) should be [ 0px 0px, 0px 0px, 0px 0px, 0px 0px]
Fail CSS Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.25) should be [ 20px 20px, 20px 20px, 20px 20px, 20px 20px]
Fail CSS Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.5) should be [ 40px 40px, 40px 40px, 40px 40px, 40px 40px]
Fail CSS Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.75) should be [ 60px 60px, 60px 60px, 60px 60px, 60px 60px]
Pass CSS Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.25) should be [ 20px 20px, 20px 20px, 20px 20px, 20px 20px]
Pass CSS Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.5) should be [ 40px 40px, 40px 40px, 40px 40px, 40px 40px]
Pass CSS Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.75) should be [ 60px 60px, 60px 60px, 60px 60px, 60px 60px]
Pass CSS Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1) should be [ 80px 80px, 80px 80px, 80px 80px, 80px 80px]
Fail CSS Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1.25) should be [100px 100px, 100px 100px, 100px 100px, 100px 100px]
Fail Web Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (-0.25) should be [-20px -20px, -20px -20px, -20px -20px, -20px -20px]
Pass CSS Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1.25) should be [100px 100px, 100px 100px, 100px 100px, 100px 100px]
Pass Web Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (-0.25) should be [-20px -20px, -20px -20px, -20px -20px, -20px -20px]
Pass Web Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0) should be [ 0px 0px, 0px 0px, 0px 0px, 0px 0px]
Fail Web Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.25) should be [ 20px 20px, 20px 20px, 20px 20px, 20px 20px]
Fail Web Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.5) should be [ 40px 40px, 40px 40px, 40px 40px, 40px 40px]
Fail Web Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.75) should be [ 60px 60px, 60px 60px, 60px 60px, 60px 60px]
Pass Web Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.25) should be [ 20px 20px, 20px 20px, 20px 20px, 20px 20px]
Pass Web Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.5) should be [ 40px 40px, 40px 40px, 40px 40px, 40px 40px]
Pass Web Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (0.75) should be [ 60px 60px, 60px 60px, 60px 60px, 60px 60px]
Pass Web Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1) should be [ 80px 80px, 80px 80px, 80px 80px, 80px 80px]
Fail Web Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1.25) should be [100px 100px, 100px 100px, 100px 100px, 100px 100px]
Pass Web Animations: property <background-position> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [80px 80px, 80px 80px, 80px 80px, 80px 80px] at (1.25) should be [100px 100px, 100px 100px, 100px 100px, 100px 100px]
Fail CSS Transitions: property <background-position> from [top 0px left 0px] to [left 80px top 80px] at (-0.25) should be [-20px -20px, -20px -20px, -20px -20px, -20px -20px]
Fail CSS Transitions: property <background-position> from [top 0px left 0px] to [left 80px top 80px] at (0) should be [ 0px 0px, 0px 0px, 0px 0px, 0px 0px]
Fail CSS Transitions: property <background-position> from [top 0px left 0px] to [left 80px top 80px] at (0.25) should be [ 20px 20px, 20px 20px, 20px 20px, 20px 20px]

View file

@ -2,8 +2,8 @@ Harness status: OK
Found 280 tests
68 Pass
212 Fail
80 Pass
200 Fail
Fail CSS Transitions: property <background-position> from neutral to [left 20px top 20px] at (0) should be [10px 10px]
Fail CSS Transitions: property <background-position> from neutral to [left 20px top 20px] at (0.25) should be [12.5px 12.5px]
Fail CSS Transitions: property <background-position> from neutral to [left 20px top 20px] at (0.5) should be [15px 15px]
@ -55,14 +55,14 @@ Fail CSS Transitions with transition: all: property <background-position> from [
Fail CSS Transitions with transition: all: property <background-position> from [inherit] to [left 20px top 20px] at (0.75) should be [35px 35px]
Pass CSS Transitions with transition: all: property <background-position> from [inherit] to [left 20px top 20px] at (1) should be [20px 20px]
Pass CSS Animations: property <background-position> from [inherit] to [left 20px top 20px] at (0) should be [80px 80px]
Fail CSS Animations: property <background-position> from [inherit] to [left 20px top 20px] at (0.25) should be [65px 65px]
Fail CSS Animations: property <background-position> from [inherit] to [left 20px top 20px] at (0.5) should be [50px 50px]
Fail CSS Animations: property <background-position> from [inherit] to [left 20px top 20px] at (0.75) should be [35px 35px]
Pass CSS Animations: property <background-position> from [inherit] to [left 20px top 20px] at (0.25) should be [65px 65px]
Pass CSS Animations: property <background-position> from [inherit] to [left 20px top 20px] at (0.5) should be [50px 50px]
Pass CSS Animations: property <background-position> from [inherit] to [left 20px top 20px] at (0.75) should be [35px 35px]
Pass CSS Animations: property <background-position> from [inherit] to [left 20px top 20px] at (1) should be [20px 20px]
Pass Web Animations: property <background-position> from [inherit] to [left 20px top 20px] at (0) should be [80px 80px]
Fail Web Animations: property <background-position> from [inherit] to [left 20px top 20px] at (0.25) should be [65px 65px]
Fail Web Animations: property <background-position> from [inherit] to [left 20px top 20px] at (0.5) should be [50px 50px]
Fail Web Animations: property <background-position> from [inherit] to [left 20px top 20px] at (0.75) should be [35px 35px]
Pass Web Animations: property <background-position> from [inherit] to [left 20px top 20px] at (0.25) should be [65px 65px]
Pass Web Animations: property <background-position> from [inherit] to [left 20px top 20px] at (0.5) should be [50px 50px]
Pass Web Animations: property <background-position> from [inherit] to [left 20px top 20px] at (0.75) should be [35px 35px]
Pass Web Animations: property <background-position> from [inherit] to [left 20px top 20px] at (1) should be [20px 20px]
Fail CSS Transitions: property <background-position> from [unset] to [left 20px top 20px] at (0) should be [0% 0%]
Fail CSS Transitions: property <background-position> from [unset] to [left 20px top 20px] at (0.25) should be [calc(0% + 5px) calc(0% + 5px)]
@ -275,12 +275,12 @@ Fail CSS Transitions with transition: all: property <background-position> from [
Fail CSS Transitions with transition: all: property <background-position> from [center] to [bottom] at (0.75) should be [50% 87.5%]
Pass CSS Transitions with transition: all: property <background-position> from [center] to [bottom] at (1) should be [50% 100%]
Pass CSS Animations: property <background-position> from [center] to [bottom] at (0) should be [50% 50%]
Fail CSS Animations: property <background-position> from [center] to [bottom] at (0.25) should be [50% 62.5%]
Fail CSS Animations: property <background-position> from [center] to [bottom] at (0.5) should be [50% 75%]
Fail CSS Animations: property <background-position> from [center] to [bottom] at (0.75) should be [50% 87.5%]
Pass CSS Animations: property <background-position> from [center] to [bottom] at (0.25) should be [50% 62.5%]
Pass CSS Animations: property <background-position> from [center] to [bottom] at (0.5) should be [50% 75%]
Pass CSS Animations: property <background-position> from [center] to [bottom] at (0.75) should be [50% 87.5%]
Pass CSS Animations: property <background-position> from [center] to [bottom] at (1) should be [50% 100%]
Pass Web Animations: property <background-position> from [center] to [bottom] at (0) should be [50% 50%]
Fail Web Animations: property <background-position> from [center] to [bottom] at (0.25) should be [50% 62.5%]
Fail Web Animations: property <background-position> from [center] to [bottom] at (0.5) should be [50% 75%]
Fail Web Animations: property <background-position> from [center] to [bottom] at (0.75) should be [50% 87.5%]
Pass Web Animations: property <background-position> from [center] to [bottom] at (0.25) should be [50% 62.5%]
Pass Web Animations: property <background-position> from [center] to [bottom] at (0.5) should be [50% 75%]
Pass Web Animations: property <background-position> from [center] to [bottom] at (0.75) should be [50% 87.5%]
Pass Web Animations: property <background-position> from [center] to [bottom] at (1) should be [50% 100%]

View file

@ -2,8 +2,8 @@ Harness status: OK
Found 112 tests
16 Pass
96 Fail
50 Pass
62 Fail
Fail CSS Transitions: property <background-position-x> from neutral to [80px] at (-0.25) should be [30px]
Fail CSS Transitions: property <background-position-x> from neutral to [80px] at (0) should be [40px]
Fail CSS Transitions: property <background-position-x> from neutral to [80px] at (0.25) should be [50px]
@ -46,20 +46,20 @@ Fail CSS Transitions with transition: all: property <background-position-x> from
Fail CSS Transitions with transition: all: property <background-position-x> from [initial] to [right] at (0.75) should be [75%]
Pass CSS Transitions with transition: all: property <background-position-x> from [initial] to [right] at (1) should be [100%]
Fail CSS Transitions with transition: all: property <background-position-x> from [initial] to [right] at (1.25) should be [125%]
Fail CSS Animations: property <background-position-x> from [initial] to [right] at (-0.25) should be [-25%]
Pass CSS Animations: property <background-position-x> from [initial] to [right] at (-0.25) should be [-25%]
Pass CSS Animations: property <background-position-x> from [initial] to [right] at (0) should be [0%]
Fail CSS Animations: property <background-position-x> from [initial] to [right] at (0.25) should be [25%]
Fail CSS Animations: property <background-position-x> from [initial] to [right] at (0.5) should be [50%]
Fail CSS Animations: property <background-position-x> from [initial] to [right] at (0.75) should be [75%]
Pass CSS Animations: property <background-position-x> from [initial] to [right] at (0.25) should be [25%]
Pass CSS Animations: property <background-position-x> from [initial] to [right] at (0.5) should be [50%]
Pass CSS Animations: property <background-position-x> from [initial] to [right] at (0.75) should be [75%]
Pass CSS Animations: property <background-position-x> from [initial] to [right] at (1) should be [100%]
Fail CSS Animations: property <background-position-x> from [initial] to [right] at (1.25) should be [125%]
Fail Web Animations: property <background-position-x> from [initial] to [right] at (-0.25) should be [-25%]
Pass CSS Animations: property <background-position-x> from [initial] to [right] at (1.25) should be [125%]
Pass Web Animations: property <background-position-x> from [initial] to [right] at (-0.25) should be [-25%]
Pass Web Animations: property <background-position-x> from [initial] to [right] at (0) should be [0%]
Fail Web Animations: property <background-position-x> from [initial] to [right] at (0.25) should be [25%]
Fail Web Animations: property <background-position-x> from [initial] to [right] at (0.5) should be [50%]
Fail Web Animations: property <background-position-x> from [initial] to [right] at (0.75) should be [75%]
Pass Web Animations: property <background-position-x> from [initial] to [right] at (0.25) should be [25%]
Pass Web Animations: property <background-position-x> from [initial] to [right] at (0.5) should be [50%]
Pass Web Animations: property <background-position-x> from [initial] to [right] at (0.75) should be [75%]
Pass Web Animations: property <background-position-x> from [initial] to [right] at (1) should be [100%]
Fail Web Animations: property <background-position-x> from [initial] to [right] at (1.25) should be [125%]
Pass Web Animations: property <background-position-x> from [initial] to [right] at (1.25) should be [125%]
Fail CSS Transitions: property <background-position-x> from [inherit] to [80px] at (-0.25) should be [55px]
Fail CSS Transitions: property <background-position-x> from [inherit] to [80px] at (0) should be [60px]
Fail CSS Transitions: property <background-position-x> from [inherit] to [80px] at (0.25) should be [65px]
@ -74,20 +74,20 @@ Fail CSS Transitions with transition: all: property <background-position-x> from
Fail CSS Transitions with transition: all: property <background-position-x> from [inherit] to [80px] at (0.75) should be [75px]
Pass CSS Transitions with transition: all: property <background-position-x> from [inherit] to [80px] at (1) should be [80px]
Fail CSS Transitions with transition: all: property <background-position-x> from [inherit] to [80px] at (1.25) should be [85px]
Fail CSS Animations: property <background-position-x> from [inherit] to [80px] at (-0.25) should be [55px]
Pass CSS Animations: property <background-position-x> from [inherit] to [80px] at (-0.25) should be [55px]
Pass CSS Animations: property <background-position-x> from [inherit] to [80px] at (0) should be [60px]
Fail CSS Animations: property <background-position-x> from [inherit] to [80px] at (0.25) should be [65px]
Fail CSS Animations: property <background-position-x> from [inherit] to [80px] at (0.5) should be [70px]
Fail CSS Animations: property <background-position-x> from [inherit] to [80px] at (0.75) should be [75px]
Pass CSS Animations: property <background-position-x> from [inherit] to [80px] at (0.25) should be [65px]
Pass CSS Animations: property <background-position-x> from [inherit] to [80px] at (0.5) should be [70px]
Pass CSS Animations: property <background-position-x> from [inherit] to [80px] at (0.75) should be [75px]
Pass CSS Animations: property <background-position-x> from [inherit] to [80px] at (1) should be [80px]
Fail CSS Animations: property <background-position-x> from [inherit] to [80px] at (1.25) should be [85px]
Fail Web Animations: property <background-position-x> from [inherit] to [80px] at (-0.25) should be [55px]
Pass CSS Animations: property <background-position-x> from [inherit] to [80px] at (1.25) should be [85px]
Pass Web Animations: property <background-position-x> from [inherit] to [80px] at (-0.25) should be [55px]
Pass Web Animations: property <background-position-x> from [inherit] to [80px] at (0) should be [60px]
Fail Web Animations: property <background-position-x> from [inherit] to [80px] at (0.25) should be [65px]
Fail Web Animations: property <background-position-x> from [inherit] to [80px] at (0.5) should be [70px]
Fail Web Animations: property <background-position-x> from [inherit] to [80px] at (0.75) should be [75px]
Pass Web Animations: property <background-position-x> from [inherit] to [80px] at (0.25) should be [65px]
Pass Web Animations: property <background-position-x> from [inherit] to [80px] at (0.5) should be [70px]
Pass Web Animations: property <background-position-x> from [inherit] to [80px] at (0.75) should be [75px]
Pass Web Animations: property <background-position-x> from [inherit] to [80px] at (1) should be [80px]
Fail Web Animations: property <background-position-x> from [inherit] to [80px] at (1.25) should be [85px]
Pass Web Animations: property <background-position-x> from [inherit] to [80px] at (1.25) should be [85px]
Fail CSS Transitions: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (-0.25) should be [250px, 350px, 200px, 375px, 225px, 325px]
Fail CSS Transitions: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0) should be [300px, 400px, 300px, 400px, 300px, 400px]
Fail CSS Transitions: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0.25) should be [350px, 450px, 400px, 425px, 375px, 475px]
@ -102,17 +102,17 @@ Fail CSS Transitions with transition: all: property <background-position-x> from
Fail CSS Transitions with transition: all: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0.75) should be [450px, 550px, 600px, 475px, 525px, 625px]
Fail CSS Transitions with transition: all: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (1) should be [500px, 600px, 700px, 500px, 600px, 700px]
Fail CSS Transitions with transition: all: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (1.25) should be [550px, 650px, 800px, 525px, 675px, 775px]
Fail CSS Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (-0.25) should be [250px, 350px, 200px, 375px, 225px, 325px]
Fail CSS Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0) should be [300px, 400px, 300px, 400px, 300px, 400px]
Fail CSS Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0.25) should be [350px, 450px, 400px, 425px, 375px, 475px]
Fail CSS Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0.5) should be [400px, 500px, 500px, 450px, 450px, 550px]
Fail CSS Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0.75) should be [450px, 550px, 600px, 475px, 525px, 625px]
Fail CSS Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (1) should be [500px, 600px, 700px, 500px, 600px, 700px]
Fail CSS Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (1.25) should be [550px, 650px, 800px, 525px, 675px, 775px]
Fail Web Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (-0.25) should be [250px, 350px, 200px, 375px, 225px, 325px]
Fail Web Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0) should be [300px, 400px, 300px, 400px, 300px, 400px]
Fail Web Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0.25) should be [350px, 450px, 400px, 425px, 375px, 475px]
Fail Web Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0.5) should be [400px, 500px, 500px, 450px, 450px, 550px]
Fail Web Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0.75) should be [450px, 550px, 600px, 475px, 525px, 625px]
Fail Web Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (1) should be [500px, 600px, 700px, 500px, 600px, 700px]
Fail Web Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (1.25) should be [550px, 650px, 800px, 525px, 675px, 775px]
Pass CSS Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (-0.25) should be [250px, 350px, 200px, 375px, 225px, 325px]
Pass CSS Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0) should be [300px, 400px, 300px, 400px, 300px, 400px]
Pass CSS Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0.25) should be [350px, 450px, 400px, 425px, 375px, 475px]
Pass CSS Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0.5) should be [400px, 500px, 500px, 450px, 450px, 550px]
Pass CSS Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0.75) should be [450px, 550px, 600px, 475px, 525px, 625px]
Pass CSS Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (1) should be [500px, 600px, 700px, 500px, 600px, 700px]
Pass CSS Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (1.25) should be [550px, 650px, 800px, 525px, 675px, 775px]
Pass Web Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (-0.25) should be [250px, 350px, 200px, 375px, 225px, 325px]
Pass Web Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0) should be [300px, 400px, 300px, 400px, 300px, 400px]
Pass Web Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0.25) should be [350px, 450px, 400px, 425px, 375px, 475px]
Pass Web Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0.5) should be [400px, 500px, 500px, 450px, 450px, 550px]
Pass Web Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (0.75) should be [450px, 550px, 600px, 475px, 525px, 625px]
Pass Web Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (1) should be [500px, 600px, 700px, 500px, 600px, 700px]
Pass Web Animations: property <background-position-x> from [300px, 400px] to [500px, 600px, 700px] at (1.25) should be [550px, 650px, 800px, 525px, 675px, 775px]

View file

@ -2,8 +2,8 @@ Harness status: OK
Found 112 tests
16 Pass
96 Fail
50 Pass
62 Fail
Fail CSS Transitions: property <background-position-y> from neutral to [80px] at (-0.25) should be [30px]
Fail CSS Transitions: property <background-position-y> from neutral to [80px] at (0) should be [40px]
Fail CSS Transitions: property <background-position-y> from neutral to [80px] at (0.25) should be [50px]
@ -46,20 +46,20 @@ Fail CSS Transitions with transition: all: property <background-position-y> from
Fail CSS Transitions with transition: all: property <background-position-y> from [initial] to [bottom] at (0.75) should be [75%]
Pass CSS Transitions with transition: all: property <background-position-y> from [initial] to [bottom] at (1) should be [100%]
Fail CSS Transitions with transition: all: property <background-position-y> from [initial] to [bottom] at (1.25) should be [125%]
Fail CSS Animations: property <background-position-y> from [initial] to [bottom] at (-0.25) should be [-25%]
Pass CSS Animations: property <background-position-y> from [initial] to [bottom] at (-0.25) should be [-25%]
Pass CSS Animations: property <background-position-y> from [initial] to [bottom] at (0) should be [0%]
Fail CSS Animations: property <background-position-y> from [initial] to [bottom] at (0.25) should be [25%]
Fail CSS Animations: property <background-position-y> from [initial] to [bottom] at (0.5) should be [50%]
Fail CSS Animations: property <background-position-y> from [initial] to [bottom] at (0.75) should be [75%]
Pass CSS Animations: property <background-position-y> from [initial] to [bottom] at (0.25) should be [25%]
Pass CSS Animations: property <background-position-y> from [initial] to [bottom] at (0.5) should be [50%]
Pass CSS Animations: property <background-position-y> from [initial] to [bottom] at (0.75) should be [75%]
Pass CSS Animations: property <background-position-y> from [initial] to [bottom] at (1) should be [100%]
Fail CSS Animations: property <background-position-y> from [initial] to [bottom] at (1.25) should be [125%]
Fail Web Animations: property <background-position-y> from [initial] to [bottom] at (-0.25) should be [-25%]
Pass CSS Animations: property <background-position-y> from [initial] to [bottom] at (1.25) should be [125%]
Pass Web Animations: property <background-position-y> from [initial] to [bottom] at (-0.25) should be [-25%]
Pass Web Animations: property <background-position-y> from [initial] to [bottom] at (0) should be [0%]
Fail Web Animations: property <background-position-y> from [initial] to [bottom] at (0.25) should be [25%]
Fail Web Animations: property <background-position-y> from [initial] to [bottom] at (0.5) should be [50%]
Fail Web Animations: property <background-position-y> from [initial] to [bottom] at (0.75) should be [75%]
Pass Web Animations: property <background-position-y> from [initial] to [bottom] at (0.25) should be [25%]
Pass Web Animations: property <background-position-y> from [initial] to [bottom] at (0.5) should be [50%]
Pass Web Animations: property <background-position-y> from [initial] to [bottom] at (0.75) should be [75%]
Pass Web Animations: property <background-position-y> from [initial] to [bottom] at (1) should be [100%]
Fail Web Animations: property <background-position-y> from [initial] to [bottom] at (1.25) should be [125%]
Pass Web Animations: property <background-position-y> from [initial] to [bottom] at (1.25) should be [125%]
Fail CSS Transitions: property <background-position-y> from [inherit] to [80px] at (-0.25) should be [55px]
Fail CSS Transitions: property <background-position-y> from [inherit] to [80px] at (0) should be [60px]
Fail CSS Transitions: property <background-position-y> from [inherit] to [80px] at (0.25) should be [65px]
@ -74,20 +74,20 @@ Fail CSS Transitions with transition: all: property <background-position-y> from
Fail CSS Transitions with transition: all: property <background-position-y> from [inherit] to [80px] at (0.75) should be [75px]
Pass CSS Transitions with transition: all: property <background-position-y> from [inherit] to [80px] at (1) should be [80px]
Fail CSS Transitions with transition: all: property <background-position-y> from [inherit] to [80px] at (1.25) should be [85px]
Fail CSS Animations: property <background-position-y> from [inherit] to [80px] at (-0.25) should be [55px]
Pass CSS Animations: property <background-position-y> from [inherit] to [80px] at (-0.25) should be [55px]
Pass CSS Animations: property <background-position-y> from [inherit] to [80px] at (0) should be [60px]
Fail CSS Animations: property <background-position-y> from [inherit] to [80px] at (0.25) should be [65px]
Fail CSS Animations: property <background-position-y> from [inherit] to [80px] at (0.5) should be [70px]
Fail CSS Animations: property <background-position-y> from [inherit] to [80px] at (0.75) should be [75px]
Pass CSS Animations: property <background-position-y> from [inherit] to [80px] at (0.25) should be [65px]
Pass CSS Animations: property <background-position-y> from [inherit] to [80px] at (0.5) should be [70px]
Pass CSS Animations: property <background-position-y> from [inherit] to [80px] at (0.75) should be [75px]
Pass CSS Animations: property <background-position-y> from [inherit] to [80px] at (1) should be [80px]
Fail CSS Animations: property <background-position-y> from [inherit] to [80px] at (1.25) should be [85px]
Fail Web Animations: property <background-position-y> from [inherit] to [80px] at (-0.25) should be [55px]
Pass CSS Animations: property <background-position-y> from [inherit] to [80px] at (1.25) should be [85px]
Pass Web Animations: property <background-position-y> from [inherit] to [80px] at (-0.25) should be [55px]
Pass Web Animations: property <background-position-y> from [inherit] to [80px] at (0) should be [60px]
Fail Web Animations: property <background-position-y> from [inherit] to [80px] at (0.25) should be [65px]
Fail Web Animations: property <background-position-y> from [inherit] to [80px] at (0.5) should be [70px]
Fail Web Animations: property <background-position-y> from [inherit] to [80px] at (0.75) should be [75px]
Pass Web Animations: property <background-position-y> from [inherit] to [80px] at (0.25) should be [65px]
Pass Web Animations: property <background-position-y> from [inherit] to [80px] at (0.5) should be [70px]
Pass Web Animations: property <background-position-y> from [inherit] to [80px] at (0.75) should be [75px]
Pass Web Animations: property <background-position-y> from [inherit] to [80px] at (1) should be [80px]
Fail Web Animations: property <background-position-y> from [inherit] to [80px] at (1.25) should be [85px]
Pass Web Animations: property <background-position-y> from [inherit] to [80px] at (1.25) should be [85px]
Fail CSS Transitions: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (-0.25) should be [250px, 350px, 200px, 375px, 225px, 325px]
Fail CSS Transitions: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0) should be [300px, 400px, 300px, 400px, 300px, 400px]
Fail CSS Transitions: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0.25) should be [350px, 450px, 400px, 425px, 375px, 475px]
@ -102,17 +102,17 @@ Fail CSS Transitions with transition: all: property <background-position-y> from
Fail CSS Transitions with transition: all: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0.75) should be [450px, 550px, 600px, 475px, 525px, 625px]
Fail CSS Transitions with transition: all: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (1) should be [500px, 600px, 700px, 500px, 600px, 700px]
Fail CSS Transitions with transition: all: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (1.25) should be [550px, 650px, 800px, 525px, 675px, 775px]
Fail CSS Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (-0.25) should be [250px, 350px, 200px, 375px, 225px, 325px]
Fail CSS Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0) should be [300px, 400px, 300px, 400px, 300px, 400px]
Fail CSS Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0.25) should be [350px, 450px, 400px, 425px, 375px, 475px]
Fail CSS Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0.5) should be [400px, 500px, 500px, 450px, 450px, 550px]
Fail CSS Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0.75) should be [450px, 550px, 600px, 475px, 525px, 625px]
Fail CSS Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (1) should be [500px, 600px, 700px, 500px, 600px, 700px]
Fail CSS Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (1.25) should be [550px, 650px, 800px, 525px, 675px, 775px]
Fail Web Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (-0.25) should be [250px, 350px, 200px, 375px, 225px, 325px]
Fail Web Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0) should be [300px, 400px, 300px, 400px, 300px, 400px]
Fail Web Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0.25) should be [350px, 450px, 400px, 425px, 375px, 475px]
Fail Web Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0.5) should be [400px, 500px, 500px, 450px, 450px, 550px]
Fail Web Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0.75) should be [450px, 550px, 600px, 475px, 525px, 625px]
Fail Web Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (1) should be [500px, 600px, 700px, 500px, 600px, 700px]
Fail Web Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (1.25) should be [550px, 650px, 800px, 525px, 675px, 775px]
Pass CSS Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (-0.25) should be [250px, 350px, 200px, 375px, 225px, 325px]
Pass CSS Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0) should be [300px, 400px, 300px, 400px, 300px, 400px]
Pass CSS Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0.25) should be [350px, 450px, 400px, 425px, 375px, 475px]
Pass CSS Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0.5) should be [400px, 500px, 500px, 450px, 450px, 550px]
Pass CSS Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0.75) should be [450px, 550px, 600px, 475px, 525px, 625px]
Pass CSS Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (1) should be [500px, 600px, 700px, 500px, 600px, 700px]
Pass CSS Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (1.25) should be [550px, 650px, 800px, 525px, 675px, 775px]
Pass Web Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (-0.25) should be [250px, 350px, 200px, 375px, 225px, 325px]
Pass Web Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0) should be [300px, 400px, 300px, 400px, 300px, 400px]
Pass Web Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0.25) should be [350px, 450px, 400px, 425px, 375px, 475px]
Pass Web Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0.5) should be [400px, 500px, 500px, 450px, 450px, 550px]
Pass Web Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (0.75) should be [450px, 550px, 600px, 475px, 525px, 625px]
Pass Web Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (1) should be [500px, 600px, 700px, 500px, 600px, 700px]
Pass Web Animations: property <background-position-y> from [300px, 400px] to [500px, 600px, 700px] at (1.25) should be [550px, 650px, 800px, 525px, 675px, 775px]

View file

@ -0,0 +1,118 @@
Harness status: OK
Found 112 tests
64 Pass
48 Fail
Fail CSS Transitions: property <object-position> from neutral to [left top] at (-0.25) should be [62.5% 62.5%]
Fail CSS Transitions: property <object-position> from neutral to [left top] at (0) should be [50% 50%]
Fail CSS Transitions: property <object-position> from neutral to [left top] at (0.25) should be [37.5% 37.5%]
Fail CSS Transitions: property <object-position> from neutral to [left top] at (0.5) should be [25% 25%]
Fail CSS Transitions: property <object-position> from neutral to [left top] at (0.75) should be [12.5% 12.5%]
Pass CSS Transitions: property <object-position> from neutral to [left top] at (1) should be [0% 0%]
Fail CSS Transitions: property <object-position> from neutral to [left top] at (1.25) should be [-12.5% -12.5%]
Fail CSS Transitions with transition: all: property <object-position> from neutral to [left top] at (-0.25) should be [62.5% 62.5%]
Fail CSS Transitions with transition: all: property <object-position> from neutral to [left top] at (0) should be [50% 50%]
Fail CSS Transitions with transition: all: property <object-position> from neutral to [left top] at (0.25) should be [37.5% 37.5%]
Fail CSS Transitions with transition: all: property <object-position> from neutral to [left top] at (0.5) should be [25% 25%]
Fail CSS Transitions with transition: all: property <object-position> from neutral to [left top] at (0.75) should be [12.5% 12.5%]
Pass CSS Transitions with transition: all: property <object-position> from neutral to [left top] at (1) should be [0% 0%]
Fail CSS Transitions with transition: all: property <object-position> from neutral to [left top] at (1.25) should be [-12.5% -12.5%]
Pass CSS Animations: property <object-position> from neutral to [left top] at (-0.25) should be [62.5% 62.5%]
Pass CSS Animations: property <object-position> from neutral to [left top] at (0) should be [50% 50%]
Pass CSS Animations: property <object-position> from neutral to [left top] at (0.25) should be [37.5% 37.5%]
Pass CSS Animations: property <object-position> from neutral to [left top] at (0.5) should be [25% 25%]
Pass CSS Animations: property <object-position> from neutral to [left top] at (0.75) should be [12.5% 12.5%]
Pass CSS Animations: property <object-position> from neutral to [left top] at (1) should be [0% 0%]
Pass CSS Animations: property <object-position> from neutral to [left top] at (1.25) should be [-12.5% -12.5%]
Pass Web Animations: property <object-position> from neutral to [left top] at (-0.25) should be [62.5% 62.5%]
Pass Web Animations: property <object-position> from neutral to [left top] at (0) should be [50% 50%]
Pass Web Animations: property <object-position> from neutral to [left top] at (0.25) should be [37.5% 37.5%]
Pass Web Animations: property <object-position> from neutral to [left top] at (0.5) should be [25% 25%]
Pass Web Animations: property <object-position> from neutral to [left top] at (0.75) should be [12.5% 12.5%]
Pass Web Animations: property <object-position> from neutral to [left top] at (1) should be [0% 0%]
Pass Web Animations: property <object-position> from neutral to [left top] at (1.25) should be [-12.5% -12.5%]
Fail CSS Transitions: property <object-position> from [initial] to [center top] at (-0.25) should be [50% 62.5%]
Fail CSS Transitions: property <object-position> from [initial] to [center top] at (0) should be [50% 50%]
Fail CSS Transitions: property <object-position> from [initial] to [center top] at (0.25) should be [50% 37.5%]
Fail CSS Transitions: property <object-position> from [initial] to [center top] at (0.5) should be [50% 25%]
Fail CSS Transitions: property <object-position> from [initial] to [center top] at (0.75) should be [50% 12.5%]
Pass CSS Transitions: property <object-position> from [initial] to [center top] at (1) should be [50% 0%]
Fail CSS Transitions: property <object-position> from [initial] to [center top] at (1.25) should be [50% -12.5%]
Fail CSS Transitions with transition: all: property <object-position> from [initial] to [center top] at (-0.25) should be [50% 62.5%]
Fail CSS Transitions with transition: all: property <object-position> from [initial] to [center top] at (0) should be [50% 50%]
Fail CSS Transitions with transition: all: property <object-position> from [initial] to [center top] at (0.25) should be [50% 37.5%]
Fail CSS Transitions with transition: all: property <object-position> from [initial] to [center top] at (0.5) should be [50% 25%]
Fail CSS Transitions with transition: all: property <object-position> from [initial] to [center top] at (0.75) should be [50% 12.5%]
Pass CSS Transitions with transition: all: property <object-position> from [initial] to [center top] at (1) should be [50% 0%]
Fail CSS Transitions with transition: all: property <object-position> from [initial] to [center top] at (1.25) should be [50% -12.5%]
Pass CSS Animations: property <object-position> from [initial] to [center top] at (-0.25) should be [50% 62.5%]
Pass CSS Animations: property <object-position> from [initial] to [center top] at (0) should be [50% 50%]
Pass CSS Animations: property <object-position> from [initial] to [center top] at (0.25) should be [50% 37.5%]
Pass CSS Animations: property <object-position> from [initial] to [center top] at (0.5) should be [50% 25%]
Pass CSS Animations: property <object-position> from [initial] to [center top] at (0.75) should be [50% 12.5%]
Pass CSS Animations: property <object-position> from [initial] to [center top] at (1) should be [50% 0%]
Pass CSS Animations: property <object-position> from [initial] to [center top] at (1.25) should be [50% -12.5%]
Pass Web Animations: property <object-position> from [initial] to [center top] at (-0.25) should be [50% 62.5%]
Pass Web Animations: property <object-position> from [initial] to [center top] at (0) should be [50% 50%]
Pass Web Animations: property <object-position> from [initial] to [center top] at (0.25) should be [50% 37.5%]
Pass Web Animations: property <object-position> from [initial] to [center top] at (0.5) should be [50% 25%]
Pass Web Animations: property <object-position> from [initial] to [center top] at (0.75) should be [50% 12.5%]
Pass Web Animations: property <object-position> from [initial] to [center top] at (1) should be [50% 0%]
Pass Web Animations: property <object-position> from [initial] to [center top] at (1.25) should be [50% -12.5%]
Fail CSS Transitions: property <object-position> from [initial] to [left center] at (-0.25) should be [62.5% 50%]
Fail CSS Transitions: property <object-position> from [initial] to [left center] at (0) should be [50% 50%]
Fail CSS Transitions: property <object-position> from [initial] to [left center] at (0.25) should be [37.5% 50%]
Fail CSS Transitions: property <object-position> from [initial] to [left center] at (0.5) should be [25% 50%]
Fail CSS Transitions: property <object-position> from [initial] to [left center] at (0.75) should be [12.5% 50%]
Pass CSS Transitions: property <object-position> from [initial] to [left center] at (1) should be [0% 50%]
Fail CSS Transitions: property <object-position> from [initial] to [left center] at (1.25) should be [-12.5% 50%]
Fail CSS Transitions with transition: all: property <object-position> from [initial] to [left center] at (-0.25) should be [62.5% 50%]
Fail CSS Transitions with transition: all: property <object-position> from [initial] to [left center] at (0) should be [50% 50%]
Fail CSS Transitions with transition: all: property <object-position> from [initial] to [left center] at (0.25) should be [37.5% 50%]
Fail CSS Transitions with transition: all: property <object-position> from [initial] to [left center] at (0.5) should be [25% 50%]
Fail CSS Transitions with transition: all: property <object-position> from [initial] to [left center] at (0.75) should be [12.5% 50%]
Pass CSS Transitions with transition: all: property <object-position> from [initial] to [left center] at (1) should be [0% 50%]
Fail CSS Transitions with transition: all: property <object-position> from [initial] to [left center] at (1.25) should be [-12.5% 50%]
Pass CSS Animations: property <object-position> from [initial] to [left center] at (-0.25) should be [62.5% 50%]
Pass CSS Animations: property <object-position> from [initial] to [left center] at (0) should be [50% 50%]
Pass CSS Animations: property <object-position> from [initial] to [left center] at (0.25) should be [37.5% 50%]
Pass CSS Animations: property <object-position> from [initial] to [left center] at (0.5) should be [25% 50%]
Pass CSS Animations: property <object-position> from [initial] to [left center] at (0.75) should be [12.5% 50%]
Pass CSS Animations: property <object-position> from [initial] to [left center] at (1) should be [0% 50%]
Pass CSS Animations: property <object-position> from [initial] to [left center] at (1.25) should be [-12.5% 50%]
Pass Web Animations: property <object-position> from [initial] to [left center] at (-0.25) should be [62.5% 50%]
Pass Web Animations: property <object-position> from [initial] to [left center] at (0) should be [50% 50%]
Pass Web Animations: property <object-position> from [initial] to [left center] at (0.25) should be [37.5% 50%]
Pass Web Animations: property <object-position> from [initial] to [left center] at (0.5) should be [25% 50%]
Pass Web Animations: property <object-position> from [initial] to [left center] at (0.75) should be [12.5% 50%]
Pass Web Animations: property <object-position> from [initial] to [left center] at (1) should be [0% 50%]
Pass Web Animations: property <object-position> from [initial] to [left center] at (1.25) should be [-12.5% 50%]
Fail CSS Transitions: property <object-position> from [20px 20px] to [100px 100px] at (-0.25) should be [0px 0px]
Fail CSS Transitions: property <object-position> from [20px 20px] to [100px 100px] at (0) should be [20px 20px]
Fail CSS Transitions: property <object-position> from [20px 20px] to [100px 100px] at (0.25) should be [40px 40px]
Fail CSS Transitions: property <object-position> from [20px 20px] to [100px 100px] at (0.5) should be [60px 60px]
Fail CSS Transitions: property <object-position> from [20px 20px] to [100px 100px] at (0.75) should be [80px 80px]
Pass CSS Transitions: property <object-position> from [20px 20px] to [100px 100px] at (1) should be [100px 100px]
Fail CSS Transitions: property <object-position> from [20px 20px] to [100px 100px] at (1.25) should be [120px 120px]
Fail CSS Transitions with transition: all: property <object-position> from [20px 20px] to [100px 100px] at (-0.25) should be [0px 0px]
Fail CSS Transitions with transition: all: property <object-position> from [20px 20px] to [100px 100px] at (0) should be [20px 20px]
Fail CSS Transitions with transition: all: property <object-position> from [20px 20px] to [100px 100px] at (0.25) should be [40px 40px]
Fail CSS Transitions with transition: all: property <object-position> from [20px 20px] to [100px 100px] at (0.5) should be [60px 60px]
Fail CSS Transitions with transition: all: property <object-position> from [20px 20px] to [100px 100px] at (0.75) should be [80px 80px]
Pass CSS Transitions with transition: all: property <object-position> from [20px 20px] to [100px 100px] at (1) should be [100px 100px]
Fail CSS Transitions with transition: all: property <object-position> from [20px 20px] to [100px 100px] at (1.25) should be [120px 120px]
Pass CSS Animations: property <object-position> from [20px 20px] to [100px 100px] at (-0.25) should be [0px 0px]
Pass CSS Animations: property <object-position> from [20px 20px] to [100px 100px] at (0) should be [20px 20px]
Pass CSS Animations: property <object-position> from [20px 20px] to [100px 100px] at (0.25) should be [40px 40px]
Pass CSS Animations: property <object-position> from [20px 20px] to [100px 100px] at (0.5) should be [60px 60px]
Pass CSS Animations: property <object-position> from [20px 20px] to [100px 100px] at (0.75) should be [80px 80px]
Pass CSS Animations: property <object-position> from [20px 20px] to [100px 100px] at (1) should be [100px 100px]
Pass CSS Animations: property <object-position> from [20px 20px] to [100px 100px] at (1.25) should be [120px 120px]
Pass Web Animations: property <object-position> from [20px 20px] to [100px 100px] at (-0.25) should be [0px 0px]
Pass Web Animations: property <object-position> from [20px 20px] to [100px 100px] at (0) should be [20px 20px]
Pass Web Animations: property <object-position> from [20px 20px] to [100px 100px] at (0.25) should be [40px 40px]
Pass Web Animations: property <object-position> from [20px 20px] to [100px 100px] at (0.5) should be [60px 60px]
Pass Web Animations: property <object-position> from [20px 20px] to [100px 100px] at (0.75) should be [80px 80px]
Pass Web Animations: property <object-position> from [20px 20px] to [100px 100px] at (1) should be [100px 100px]
Pass Web Animations: property <object-position> from [20px 20px] to [100px 100px] at (1.25) should be [120px 120px]

View file

@ -0,0 +1,72 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<link rel="help" href="https://drafts.csswg.org/css-images-3/#the-object-position">
<meta name="test" content="object-position supports animation">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../css/support/interpolation-testcommon.js"></script>
<body></body>
<script>
// Default object-position value is 50% 50%
test_interpolation({
property: 'object-position',
from: neutralKeyframe,
to: 'left top',
}, [
{ at: -0.25, expect: '62.5% 62.5%' },
{ at: 0, expect: '50% 50%' },
{ at: 0.25, expect: '37.5% 37.5%' },
{ at: 0.5, expect: '25% 25%' },
{ at: 0.75, expect: '12.5% 12.5%' },
{ at: 1, expect: '0% 0%' },
{ at: 1.25, expect: '-12.5% -12.5%' },
]);
// Animate x axis
test_interpolation({
property: 'object-position',
from: 'initial',
to: 'center top',
}, [
{ at: -0.25, expect: '50% 62.5%' },
{ at: 0, expect: '50% 50%' },
{ at: 0.25, expect: '50% 37.5%' },
{ at: 0.5, expect: '50% 25%' },
{ at: 0.75, expect: '50% 12.5%' },
{ at: 1, expect: '50% 0%' },
{ at: 1.25, expect: '50% -12.5%' },
]);
// Animate y axis
test_interpolation({
property: 'object-position',
from: 'initial',
to: 'left center',
}, [
{ at: -0.25, expect: '62.5% 50%' },
{ at: 0, expect: '50% 50%' },
{ at: 0.25, expect: '37.5% 50%' },
{ at: 0.5, expect: '25% 50%' },
{ at: 0.75, expect: '12.5% 50%' },
{ at: 1, expect: '0% 50%' },
{ at: 1.25, expect: '-12.5% 50%' },
]);
// Pixel values
test_interpolation({
property: 'object-position',
from: '20px 20px',
to: '100px 100px',
}, [
{ at: -0.25, expect: '0px 0px' },
{ at: 0, expect: '20px 20px' },
{ at: 0.25, expect: '40px 40px' },
{ at: 0.5, expect: '60px 60px' },
{ at: 0.75, expect: '80px 80px' },
{ at: 1, expect: '100px 100px' },
{ at: 1.25, expect: '120px 120px' },
]);
</script>