Commit 663ee27a authored by Anders Hartvoll Ruud's avatar Anders Hartvoll Ruud Committed by Commit Bot

[css-properties-values-api] Support composite for custom property lists.

This CL implements CSSCustomListInterpolationType::Composite by adapting
the callback passed to ListInterpolationFunctions to the Composite
function of the inner interpolation type.

For the current set of supported syntaxes, only <length-percentage>
uses non-interpolable values. This CL adds a
NonInterpolableValuesAreCompatibleCallback which DCHECKs that we don't
have any non-interpolable values (except for <length-percentage>).
This ensures that we don't forget to update this function if we add
support for new types to css-properties-values-api in the future.

Bug: 981024
Change-Id: Iccaaa779a2de0446a7bf9823cdb3e42161b07f26
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1688832
Commit-Queue: Anders Hartvoll Ruud <andruud@chromium.org>
Reviewed-by: default avatarRobert Flack <flackr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#682700}
parent 44a597b3
...@@ -94,9 +94,43 @@ void CSSCustomListInterpolationType::Composite( ...@@ -94,9 +94,43 @@ void CSSCustomListInterpolationType::Composite(
double underlying_fraction, double underlying_fraction,
const InterpolationValue& value, const InterpolationValue& value,
double interpolation_fraction) const { double interpolation_fraction) const {
// TODO(andruud): Properly support composition once behavior is defined. // This adapts a ListInterpolationFunctions::CompositeItemCallback function
// https://github.com/w3c/css-houdini-drafts/issues/799 // such that we can use the InterpolationType::Composite function of the
underlying_value_owner.Set(*this, value); // inner interpolation type to get the answer.
//
// TODO(andruud): Make InterpolationType::Composite take an UnderlyingValue
// rather than an UnderlyingValueOwner.
auto composite_callback =
[](const CSSInterpolationType* interpolation_type,
double interpolation_fraction, UnderlyingValue& underlying_value,
double underlying_fraction,
const InterpolableValue& interpolable_value,
const NonInterpolableValue* non_interpolable_value) {
UnderlyingValueOwner owner;
owner.Set(*interpolation_type,
InterpolationValue(
underlying_value.MutableInterpolableValue().Clone(),
underlying_value.GetNonInterpolableValue()));
InterpolationValue interpolation_value(interpolable_value.Clone(),
non_interpolable_value);
interpolation_type->Composite(owner, underlying_fraction,
interpolation_value,
interpolation_fraction);
underlying_value.SetInterpolableValue(
owner.Value().Clone().interpolable_value);
underlying_value.SetNonInterpolableValue(
owner.GetNonInterpolableValue());
};
ListInterpolationFunctions::Composite(
underlying_value_owner, underlying_fraction, *this, value,
ListInterpolationFunctions::LengthMatchingStrategy::kEqual,
GetNonInterpolableValuesAreCompatibleCallback(),
WTF::BindRepeating(composite_callback,
WTF::Unretained(inner_interpolation_type_.get()),
interpolation_fraction));
} }
PairwiseInterpolationValue CSSCustomListInterpolationType::MaybeMergeSingles( PairwiseInterpolationValue CSSCustomListInterpolationType::MaybeMergeSingles(
...@@ -109,4 +143,23 @@ PairwiseInterpolationValue CSSCustomListInterpolationType::MaybeMergeSingles( ...@@ -109,4 +143,23 @@ PairwiseInterpolationValue CSSCustomListInterpolationType::MaybeMergeSingles(
WTF::Unretained(inner_interpolation_type_.get()))); WTF::Unretained(inner_interpolation_type_.get())));
} }
static bool VerifyNoNonInterpolableValues(const NonInterpolableValue* a,
const NonInterpolableValue* b) {
DCHECK(!a && !b);
return true;
}
ListInterpolationFunctions::NonInterpolableValuesAreCompatibleCallback
CSSCustomListInterpolationType::GetNonInterpolableValuesAreCompatibleCallback()
const {
if (syntax_type_ == CSSSyntaxType::kLengthPercentage) {
return WTF::BindRepeating(
LengthInterpolationFunctions::NonInterpolableValuesAreCompatible);
}
// TODO(https://crbug.com/981537): Add support for <image> here.
// TODO(https://crbug.com/981538): Add support for <transform-function> here.
// TODO(https://crbug.com/981542): Add support for <transform-list> here.
return WTF::BindRepeating(VerifyNoNonInterpolableValues);
}
} // namespace blink } // namespace blink
...@@ -18,9 +18,11 @@ class CSSCustomListInterpolationType : public CSSInterpolationType { ...@@ -18,9 +18,11 @@ class CSSCustomListInterpolationType : public CSSInterpolationType {
PropertyHandle property, PropertyHandle property,
const PropertyRegistration* registration, const PropertyRegistration* registration,
std::unique_ptr<CSSInterpolationType> inner_interpolation_type, std::unique_ptr<CSSInterpolationType> inner_interpolation_type,
CSSSyntaxType syntax_type,
CSSSyntaxRepeat syntax_repeat) CSSSyntaxRepeat syntax_repeat)
: CSSInterpolationType(property, registration), : CSSInterpolationType(property, registration),
inner_interpolation_type_(std::move(inner_interpolation_type)), inner_interpolation_type_(std::move(inner_interpolation_type)),
syntax_type_(syntax_type),
syntax_repeat_(syntax_repeat) { syntax_repeat_(syntax_repeat) {
DCHECK(property.IsCSSCustomProperty()); DCHECK(property.IsCSSCustomProperty());
} }
...@@ -66,6 +68,9 @@ class CSSCustomListInterpolationType : public CSSInterpolationType { ...@@ -66,6 +68,9 @@ class CSSCustomListInterpolationType : public CSSInterpolationType {
return nullptr; return nullptr;
} }
ListInterpolationFunctions::NonInterpolableValuesAreCompatibleCallback
GetNonInterpolableValuesAreCompatibleCallback() const;
// This InterpolationType represents the interpolation of elements inside // This InterpolationType represents the interpolation of elements inside
// the list. // the list.
// //
...@@ -77,6 +82,7 @@ class CSSCustomListInterpolationType : public CSSInterpolationType { ...@@ -77,6 +82,7 @@ class CSSCustomListInterpolationType : public CSSInterpolationType {
// InterpolationType::Apply on inner_interpolation_type_. // InterpolationType::Apply on inner_interpolation_type_.
std::unique_ptr<CSSInterpolationType> inner_interpolation_type_; std::unique_ptr<CSSInterpolationType> inner_interpolation_type_;
const CSSSyntaxType syntax_type_;
const CSSSyntaxRepeat syntax_repeat_; const CSSSyntaxRepeat syntax_repeat_;
}; };
......
...@@ -447,7 +447,7 @@ CSSInterpolationTypesMap::CreateInterpolationTypesForCSSSyntax( ...@@ -447,7 +447,7 @@ CSSInterpolationTypesMap::CreateInterpolationTypesForCSSSyntax(
if (component.IsRepeatable()) { if (component.IsRepeatable()) {
interpolation_type = std::make_unique<CSSCustomListInterpolationType>( interpolation_type = std::make_unique<CSSCustomListInterpolationType>(
property, &registration, std::move(interpolation_type), property, &registration, std::move(interpolation_type),
component.GetRepeat()); component.GetType(), component.GetRepeat());
} }
result.push_back(std::move(interpolation_type)); result.push_back(std::move(interpolation_type));
......
...@@ -87,6 +87,11 @@ class UnderlyingTextIndentAsLengthValue : public UnderlyingValue { ...@@ -87,6 +87,11 @@ class UnderlyingTextIndentAsLengthValue : public UnderlyingValue {
return inner_underlying_value_.MutableInterpolableValue(); return inner_underlying_value_.MutableInterpolableValue();
} }
void SetInterpolableValue(
std::unique_ptr<InterpolableValue> interpolable_value) final {
inner_underlying_value_.SetInterpolableValue(std::move(interpolable_value));
}
const NonInterpolableValue* GetNonInterpolableValue() const final { const NonInterpolableValue* GetNonInterpolableValue() const final {
const auto& text_indent_non_interpolable_value = const auto& text_indent_non_interpolable_value =
ToCSSTextIndentNonInterpolableValue( ToCSSTextIndentNonInterpolableValue(
......
...@@ -35,6 +35,11 @@ class UnderlyingItemValue : public UnderlyingValue { ...@@ -35,6 +35,11 @@ class UnderlyingItemValue : public UnderlyingValue {
return *ToInterpolableList(underlying_list_.MutableInterpolableValue()) return *ToInterpolableList(underlying_list_.MutableInterpolableValue())
.GetMutable(index_); .GetMutable(index_);
} }
void SetInterpolableValue(
std::unique_ptr<InterpolableValue> interpolable_value) final {
ToInterpolableList(underlying_list_.MutableInterpolableValue())
.Set(index_, std::move(interpolable_value));
}
const NonInterpolableValue* GetNonInterpolableValue() const final { const NonInterpolableValue* GetNonInterpolableValue() const final {
return ToNonInterpolableList(*underlying_list_.GetNonInterpolableValue()) return ToNonInterpolableList(*underlying_list_.GetNonInterpolableValue())
.Get(index_); .Get(index_);
......
...@@ -55,6 +55,11 @@ class TestUnderlyingValue : public UnderlyingValue { ...@@ -55,6 +55,11 @@ class TestUnderlyingValue : public UnderlyingValue {
return *interpolation_value_.interpolable_value; return *interpolation_value_.interpolable_value;
} }
void SetInterpolableValue(
std::unique_ptr<InterpolableValue> interpolable_value) final {
interpolation_value_.interpolable_value = std::move(interpolable_value);
}
const NonInterpolableValue* GetNonInterpolableValue() const final { const NonInterpolableValue* GetNonInterpolableValue() const final {
return interpolation_value_.non_interpolable_value.get(); return interpolation_value_.non_interpolable_value.get();
} }
......
...@@ -74,6 +74,11 @@ class UnderlyingSizeAsLengthValue : public UnderlyingValue { ...@@ -74,6 +74,11 @@ class UnderlyingSizeAsLengthValue : public UnderlyingValue {
return inner_underlying_value_.MutableInterpolableValue(); return inner_underlying_value_.MutableInterpolableValue();
} }
void SetInterpolableValue(
std::unique_ptr<InterpolableValue> interpolable_value) final {
inner_underlying_value_.SetInterpolableValue(std::move(interpolable_value));
}
const NonInterpolableValue* GetNonInterpolableValue() const final { const NonInterpolableValue* GetNonInterpolableValue() const final {
const auto& size_non_interpolable_value = ToCSSSizeNonInterpolableValue( const auto& size_non_interpolable_value = ToCSSSizeNonInterpolableValue(
*inner_underlying_value_.GetNonInterpolableValue()); *inner_underlying_value_.GetNonInterpolableValue());
......
...@@ -24,6 +24,8 @@ class CORE_EXPORT UnderlyingValue { ...@@ -24,6 +24,8 @@ class CORE_EXPORT UnderlyingValue {
public: public:
virtual InterpolableValue& MutableInterpolableValue() = 0; virtual InterpolableValue& MutableInterpolableValue() = 0;
virtual void SetInterpolableValue(std::unique_ptr<InterpolableValue>) = 0;
virtual const NonInterpolableValue* GetNonInterpolableValue() const = 0; virtual const NonInterpolableValue* GetNonInterpolableValue() const = 0;
// The NonInterpolableValue part of the underlying value may not be mutated, // The NonInterpolableValue part of the underlying value may not be mutated,
......
...@@ -17,6 +17,12 @@ InterpolableValue& UnderlyingValueOwner::MutableInterpolableValue() { ...@@ -17,6 +17,12 @@ InterpolableValue& UnderlyingValueOwner::MutableInterpolableValue() {
return *MutableValue().interpolable_value; return *MutableValue().interpolable_value;
} }
void UnderlyingValueOwner::SetInterpolableValue(
std::unique_ptr<InterpolableValue> interpolable_value) {
DCHECK(type_);
MutableValue().interpolable_value = std::move(interpolable_value);
}
const NonInterpolableValue* UnderlyingValueOwner::GetNonInterpolableValue() const NonInterpolableValue* UnderlyingValueOwner::GetNonInterpolableValue()
const { const {
DCHECK(value_); DCHECK(value_);
......
...@@ -33,6 +33,7 @@ class CORE_EXPORT UnderlyingValueOwner : public UnderlyingValue { ...@@ -33,6 +33,7 @@ class CORE_EXPORT UnderlyingValueOwner : public UnderlyingValue {
// UnderlyingValue // UnderlyingValue
InterpolableValue& MutableInterpolableValue() final; InterpolableValue& MutableInterpolableValue() final;
void SetInterpolableValue(std::unique_ptr<InterpolableValue>) final;
const NonInterpolableValue* GetNonInterpolableValue() const final; const NonInterpolableValue* GetNonInterpolableValue() const final;
void SetNonInterpolableValue(scoped_refptr<const NonInterpolableValue>) final; void SetNonInterpolableValue(scoped_refptr<const NonInterpolableValue>) final;
......
This is a testharness.js-based test.
PASS This test uses interpolation-test.js.
PASS CSS Transitions: property <--angle-list> from [initial] to [20deg 200deg] at (-0.3) is [46deg 460deg]
PASS CSS Transitions: property <--angle-list> from [initial] to [20deg 200deg] at (0) is [40deg 400deg]
PASS CSS Transitions: property <--angle-list> from [initial] to [20deg 200deg] at (0.5) is [30deg 300deg]
PASS CSS Transitions: property <--angle-list> from [initial] to [20deg 200deg] at (1) is [20deg 200deg]
PASS CSS Transitions: property <--angle-list> from [initial] to [20deg 200deg] at (1.5) is [10deg 100deg]
PASS CSS Transitions: property <--angle-list> from [inherit] to [20deg 200deg] at (-0.3) is [33deg 330deg]
PASS CSS Transitions: property <--angle-list> from [inherit] to [20deg 200deg] at (0) is [30deg 300deg]
PASS CSS Transitions: property <--angle-list> from [inherit] to [20deg 200deg] at (0.5) is [25deg 250deg]
PASS CSS Transitions: property <--angle-list> from [inherit] to [20deg 200deg] at (1) is [20deg 200deg]
PASS CSS Transitions: property <--angle-list> from [inherit] to [20deg 200deg] at (1.5) is [15deg 150deg]
PASS CSS Transitions: property <--angle-list> from [unset] to [20deg 200deg] at (-0.3) is [46deg 460deg]
PASS CSS Transitions: property <--angle-list> from [unset] to [20deg 200deg] at (0) is [40deg 400deg]
PASS CSS Transitions: property <--angle-list> from [unset] to [20deg 200deg] at (0.5) is [30deg 300deg]
PASS CSS Transitions: property <--angle-list> from [unset] to [20deg 200deg] at (1) is [20deg 200deg]
PASS CSS Transitions: property <--angle-list> from [unset] to [20deg 200deg] at (1.5) is [10deg 100deg]
PASS CSS Transitions: property <--angle-list> from [-10deg -100deg] to [10deg 100deg] at (-0.3) is [-16deg -160deg]
PASS CSS Transitions: property <--angle-list> from [-10deg -100deg] to [10deg 100deg] at (0) is [-10deg -100deg]
PASS CSS Transitions: property <--angle-list> from [-10deg -100deg] to [10deg 100deg] at (0.5) is [0deg 0deg]
PASS CSS Transitions: property <--angle-list> from [-10deg -100deg] to [10deg 100deg] at (1) is [10deg 100deg]
PASS CSS Transitions: property <--angle-list> from [-10deg -100deg] to [10deg 100deg] at (1.5) is [20deg 200deg]
PASS CSS Transitions: property <--angle-list> from [10deg] to [100deg] at (-0.3) is [-17deg]
PASS CSS Transitions: property <--angle-list> from [10deg] to [100deg] at (0) is [10deg]
PASS CSS Transitions: property <--angle-list> from [10deg] to [100deg] at (0.5) is [55deg]
PASS CSS Transitions: property <--angle-list> from [10deg] to [100deg] at (1) is [100deg]
PASS CSS Transitions: property <--angle-list> from [10deg] to [100deg] at (1.5) is [145deg]
PASS CSS Transitions: property <--angle-list> from [0deg 0grad] to [1turn 400grad] at (-0.3) is [-108deg -108deg]
PASS CSS Transitions: property <--angle-list> from [0deg 0grad] to [1turn 400grad] at (0) is [0deg 0deg]
PASS CSS Transitions: property <--angle-list> from [0deg 0grad] to [1turn 400grad] at (0.5) is [180deg 180deg]
PASS CSS Transitions: property <--angle-list> from [0deg 0grad] to [1turn 400grad] at (1) is [360deg 360deg]
PASS CSS Transitions: property <--angle-list> from [0deg 0grad] to [1turn 400grad] at (1.5) is [540deg 540deg]
PASS CSS Transitions: property <--angle-list> from neutral to [20deg 200deg] at (-0.3) is [7deg 70deg]
PASS CSS Transitions: property <--angle-list> from neutral to [20deg 200deg] at (0) is [10deg 100deg]
PASS CSS Transitions: property <--angle-list> from neutral to [20deg 200deg] at (0.5) is [15deg 150deg]
PASS CSS Transitions: property <--angle-list> from neutral to [20deg 200deg] at (1) is [20deg 200deg]
PASS CSS Transitions: property <--angle-list> from neutral to [20deg 200deg] at (1.5) is [25deg 250deg]
PASS CSS Animations: property <--angle-list> from [initial] to [20deg 200deg] at (-0.3) is [46deg 460deg]
PASS CSS Animations: property <--angle-list> from [initial] to [20deg 200deg] at (0) is [40deg 400deg]
PASS CSS Animations: property <--angle-list> from [initial] to [20deg 200deg] at (0.5) is [30deg 300deg]
PASS CSS Animations: property <--angle-list> from [initial] to [20deg 200deg] at (1) is [20deg 200deg]
PASS CSS Animations: property <--angle-list> from [initial] to [20deg 200deg] at (1.5) is [10deg 100deg]
PASS CSS Animations: property <--angle-list> from [inherit] to [20deg 200deg] at (-0.3) is [33deg 330deg]
PASS CSS Animations: property <--angle-list> from [inherit] to [20deg 200deg] at (0) is [30deg 300deg]
PASS CSS Animations: property <--angle-list> from [inherit] to [20deg 200deg] at (0.5) is [25deg 250deg]
PASS CSS Animations: property <--angle-list> from [inherit] to [20deg 200deg] at (1) is [20deg 200deg]
PASS CSS Animations: property <--angle-list> from [inherit] to [20deg 200deg] at (1.5) is [15deg 150deg]
PASS CSS Animations: property <--angle-list> from [unset] to [20deg 200deg] at (-0.3) is [46deg 460deg]
PASS CSS Animations: property <--angle-list> from [unset] to [20deg 200deg] at (0) is [40deg 400deg]
PASS CSS Animations: property <--angle-list> from [unset] to [20deg 200deg] at (0.5) is [30deg 300deg]
PASS CSS Animations: property <--angle-list> from [unset] to [20deg 200deg] at (1) is [20deg 200deg]
PASS CSS Animations: property <--angle-list> from [unset] to [20deg 200deg] at (1.5) is [10deg 100deg]
PASS CSS Animations: property <--angle-list> from [-10deg -100deg] to [10deg 100deg] at (-0.3) is [-16deg -160deg]
PASS CSS Animations: property <--angle-list> from [-10deg -100deg] to [10deg 100deg] at (0) is [-10deg -100deg]
PASS CSS Animations: property <--angle-list> from [-10deg -100deg] to [10deg 100deg] at (0.5) is [0deg 0deg]
PASS CSS Animations: property <--angle-list> from [-10deg -100deg] to [10deg 100deg] at (1) is [10deg 100deg]
PASS CSS Animations: property <--angle-list> from [-10deg -100deg] to [10deg 100deg] at (1.5) is [20deg 200deg]
PASS CSS Animations: property <--angle-list> from [10deg] to [100deg] at (-0.3) is [-17deg]
PASS CSS Animations: property <--angle-list> from [10deg] to [100deg] at (0) is [10deg]
PASS CSS Animations: property <--angle-list> from [10deg] to [100deg] at (0.5) is [55deg]
PASS CSS Animations: property <--angle-list> from [10deg] to [100deg] at (1) is [100deg]
PASS CSS Animations: property <--angle-list> from [10deg] to [100deg] at (1.5) is [145deg]
PASS CSS Animations: property <--angle-list> from [0deg 0grad] to [1turn 400grad] at (-0.3) is [-108deg -108deg]
PASS CSS Animations: property <--angle-list> from [0deg 0grad] to [1turn 400grad] at (0) is [0deg 0deg]
PASS CSS Animations: property <--angle-list> from [0deg 0grad] to [1turn 400grad] at (0.5) is [180deg 180deg]
PASS CSS Animations: property <--angle-list> from [0deg 0grad] to [1turn 400grad] at (1) is [360deg 360deg]
PASS CSS Animations: property <--angle-list> from [0deg 0grad] to [1turn 400grad] at (1.5) is [540deg 540deg]
FAIL CSS Animations: property <--angle-list> from neutral to [20deg 200deg] at (-0.3) is [-6deg -60deg] assert_equals: expected "7deg 70deg " but got "- 6deg - 60deg "
FAIL CSS Animations: property <--angle-list> from neutral to [20deg 200deg] at (0) is [0deg 0deg] assert_equals: expected "10deg 100deg " but got "0deg 0deg "
FAIL CSS Animations: property <--angle-list> from neutral to [20deg 200deg] at (0.5) is [10deg 100deg] assert_equals: expected "15deg 150deg " but got "10deg 100deg "
PASS CSS Animations: property <--angle-list> from neutral to [20deg 200deg] at (1) is [20deg 200deg]
FAIL CSS Animations: property <--angle-list> from neutral to [20deg 200deg] at (1.5) is [30deg 300deg] assert_equals: expected "25deg 250deg " but got "30deg 300deg "
PASS Web Animations: property <--angle-list> from [initial] to [20deg 200deg] at (-0.3) is [46deg 460deg]
PASS Web Animations: property <--angle-list> from [initial] to [20deg 200deg] at (0) is [40deg 400deg]
PASS Web Animations: property <--angle-list> from [initial] to [20deg 200deg] at (0.5) is [30deg 300deg]
PASS Web Animations: property <--angle-list> from [initial] to [20deg 200deg] at (1) is [20deg 200deg]
PASS Web Animations: property <--angle-list> from [initial] to [20deg 200deg] at (1.5) is [10deg 100deg]
PASS Web Animations: property <--angle-list> from [inherit] to [20deg 200deg] at (-0.3) is [33deg 330deg]
PASS Web Animations: property <--angle-list> from [inherit] to [20deg 200deg] at (0) is [30deg 300deg]
PASS Web Animations: property <--angle-list> from [inherit] to [20deg 200deg] at (0.5) is [25deg 250deg]
PASS Web Animations: property <--angle-list> from [inherit] to [20deg 200deg] at (1) is [20deg 200deg]
PASS Web Animations: property <--angle-list> from [inherit] to [20deg 200deg] at (1.5) is [15deg 150deg]
PASS Web Animations: property <--angle-list> from [unset] to [20deg 200deg] at (-0.3) is [46deg 460deg]
PASS Web Animations: property <--angle-list> from [unset] to [20deg 200deg] at (0) is [40deg 400deg]
PASS Web Animations: property <--angle-list> from [unset] to [20deg 200deg] at (0.5) is [30deg 300deg]
PASS Web Animations: property <--angle-list> from [unset] to [20deg 200deg] at (1) is [20deg 200deg]
PASS Web Animations: property <--angle-list> from [unset] to [20deg 200deg] at (1.5) is [10deg 100deg]
PASS Web Animations: property <--angle-list> from [-10deg -100deg] to [10deg 100deg] at (-0.3) is [-16deg -160deg]
PASS Web Animations: property <--angle-list> from [-10deg -100deg] to [10deg 100deg] at (0) is [-10deg -100deg]
PASS Web Animations: property <--angle-list> from [-10deg -100deg] to [10deg 100deg] at (0.5) is [0deg 0deg]
PASS Web Animations: property <--angle-list> from [-10deg -100deg] to [10deg 100deg] at (1) is [10deg 100deg]
PASS Web Animations: property <--angle-list> from [-10deg -100deg] to [10deg 100deg] at (1.5) is [20deg 200deg]
PASS Web Animations: property <--angle-list> from [10deg] to [100deg] at (-0.3) is [-17deg]
PASS Web Animations: property <--angle-list> from [10deg] to [100deg] at (0) is [10deg]
PASS Web Animations: property <--angle-list> from [10deg] to [100deg] at (0.5) is [55deg]
PASS Web Animations: property <--angle-list> from [10deg] to [100deg] at (1) is [100deg]
PASS Web Animations: property <--angle-list> from [10deg] to [100deg] at (1.5) is [145deg]
PASS Web Animations: property <--angle-list> from [0deg 0grad] to [1turn 400grad] at (-0.3) is [-108deg -108deg]
PASS Web Animations: property <--angle-list> from [0deg 0grad] to [1turn 400grad] at (0) is [0deg 0deg]
PASS Web Animations: property <--angle-list> from [0deg 0grad] to [1turn 400grad] at (0.5) is [180deg 180deg]
PASS Web Animations: property <--angle-list> from [0deg 0grad] to [1turn 400grad] at (1) is [360deg 360deg]
PASS Web Animations: property <--angle-list> from [0deg 0grad] to [1turn 400grad] at (1.5) is [540deg 540deg]
FAIL Web Animations: property <--angle-list> from neutral to [20deg 200deg] at (-0.3) is [-6deg -60deg] assert_equals: expected "7deg 70deg " but got "- 6deg - 60deg "
FAIL Web Animations: property <--angle-list> from neutral to [20deg 200deg] at (0) is [0deg 0deg] assert_equals: expected "10deg 100deg " but got "0deg 0deg "
FAIL Web Animations: property <--angle-list> from neutral to [20deg 200deg] at (0.5) is [10deg 100deg] assert_equals: expected "15deg 150deg " but got "10deg 100deg "
PASS Web Animations: property <--angle-list> from neutral to [20deg 200deg] at (1) is [20deg 200deg]
FAIL Web Animations: property <--angle-list> from neutral to [20deg 200deg] at (1.5) is [30deg 300deg] assert_equals: expected "25deg 250deg " but got "30deg 300deg "
FAIL Compositing: property <--angle-list> underlying [50deg 60deg] from add [10deg 140deg] to add [110deg 40deg] at (-0.3) is [-20deg 170deg] assert_equals: expected "30deg 230deg " but got "- 20deg 170deg "
FAIL Compositing: property <--angle-list> underlying [50deg 60deg] from add [10deg 140deg] to add [110deg 40deg] at (0) is [10deg 140deg] assert_equals: expected "60deg 200deg " but got "10deg 140deg "
FAIL Compositing: property <--angle-list> underlying [50deg 60deg] from add [10deg 140deg] to add [110deg 40deg] at (0.5) is [60deg 90deg] assert_equals: expected "110deg 150deg " but got "60deg 90deg "
FAIL Compositing: property <--angle-list> underlying [50deg 60deg] from add [10deg 140deg] to add [110deg 40deg] at (1) is [110deg 40deg] assert_equals: expected "160deg 100deg " but got "110deg 40deg "
FAIL Compositing: property <--angle-list> underlying [50deg 60deg] from add [10deg 140deg] to add [110deg 40deg] at (1.5) is [160deg -10deg] assert_equals: expected "210deg 50deg " but got "160deg - 10deg "
FAIL Compositing: property <--angle-list> underlying [50deg 60deg] from add [10deg 140deg] to replace [110deg 40deg] at (-0.3) is [-20deg 170deg] assert_equals: expected "45deg 248deg " but got "- 20deg 170deg "
FAIL Compositing: property <--angle-list> underlying [50deg 60deg] from add [10deg 140deg] to replace [110deg 40deg] at (0) is [10deg 140deg] assert_equals: expected "60deg 200deg " but got "10deg 140deg "
FAIL Compositing: property <--angle-list> underlying [50deg 60deg] from add [10deg 140deg] to replace [110deg 40deg] at (0.5) is [60deg 90deg] assert_equals: expected "85deg 120deg " but got "60deg 90deg "
PASS Compositing: property <--angle-list> underlying [50deg 60deg] from add [10deg 140deg] to replace [110deg 40deg] at (1) is [110deg 40deg]
FAIL Compositing: property <--angle-list> underlying [50deg 60deg] from add [10deg 140deg] to replace [110deg 40deg] at (1.5) is [160deg -10deg] assert_equals: expected "135deg - 40deg " but got "160deg - 10deg "
Harness: the test ran to completion.
...@@ -90,10 +90,6 @@ assertInterpolation({ ...@@ -90,10 +90,6 @@ assertInterpolation({
{at: 1.5, is: '540deg 540deg'} {at: 1.5, is: '540deg 540deg'}
]); ]);
// Composition and neutralKeyframe tests assume that composite:add means
// component-wise addition, which may or may not be the behavior we want.
// https://github.com/w3c/css-houdini-drafts/issues/799
assertInterpolation({ assertInterpolation({
property: '--angle-list', property: '--angle-list',
from: neutralKeyframe, from: neutralKeyframe,
......
...@@ -45,11 +45,11 @@ PASS CSS Animations: property <--color-list> from [hsl(120, 100%, 50%) coral] to ...@@ -45,11 +45,11 @@ PASS CSS Animations: property <--color-list> from [hsl(120, 100%, 50%) coral] to
PASS CSS Animations: property <--color-list> from [hsl(120, 100%, 50%) coral] to [navy hsl(240, 100%, 50%)] at (0.5) is [rgb(0, 128, 64) rgb(128, 64, 168)] PASS CSS Animations: property <--color-list> from [hsl(120, 100%, 50%) coral] to [navy hsl(240, 100%, 50%)] at (0.5) is [rgb(0, 128, 64) rgb(128, 64, 168)]
PASS CSS Animations: property <--color-list> from [hsl(120, 100%, 50%) coral] to [navy hsl(240, 100%, 50%)] at (1) is [rgb(0, 0, 128) rgb(0, 0, 255)] PASS CSS Animations: property <--color-list> from [hsl(120, 100%, 50%) coral] to [navy hsl(240, 100%, 50%)] at (1) is [rgb(0, 0, 128) rgb(0, 0, 255)]
PASS CSS Animations: property <--color-list> from [hsl(120, 100%, 50%) coral] to [navy hsl(240, 100%, 50%)] at (1.5) is [rgb(0, 0, 192) rgb(0, 0, 255)] PASS CSS Animations: property <--color-list> from [hsl(120, 100%, 50%) coral] to [navy hsl(240, 100%, 50%)] at (1.5) is [rgb(0, 0, 192) rgb(0, 0, 255)]
FAIL CSS Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (-0.3) is [rgba(0, 0, 0, 0) rgba(0, 0, 0, 0)] assert_equals: expected "rgb ( 52 , 40 , 40 ) rgb ( 104 , 104 , 104 ) " but got "rgba ( 0 , 0 , 0 , 0 ) rgba ( 0 , 0 , 0 , 0 ) " PASS CSS Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (-0.3) is [rgb(52, 40, 40) rgb(104, 104, 104)]
FAIL CSS Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (0) is [rgba(0, 0, 0, 0) rgba(0, 0, 0, 0)] assert_equals: expected "rgb ( 40 , 40 , 40 ) rgb ( 80 , 80 , 80 ) " but got "rgba ( 0 , 0 , 0 , 0 ) rgba ( 0 , 0 , 0 , 0 ) " PASS CSS Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (0) is [rgb(40, 40, 40) rgb(80, 80, 80)]
FAIL CSS Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (0.5) is [rgba(0, 40, 40, 0.5) rgba(0, 0, 0, 0.5)] assert_equals: expected "rgb ( 20 , 40 , 40 ) rgb ( 40 , 40 , 40 ) " but got "rgba ( 0 , 40 , 40 , 0.5 ) rgba ( 0 , 0 , 0 , 0.5 ) " PASS CSS Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (0.5) is [rgb(20, 40, 40) rgb(40, 40, 40)]
PASS CSS Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (1) is [rgb(0, 40, 40) rgb(0, 0, 0)] PASS CSS Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (1) is [rgb(0, 40, 40) rgb(0, 0, 0)]
FAIL CSS Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (1.5) is [rgb(0, 60, 60) rgb(0, 0, 0)] assert_equals: expected "rgb ( 0 , 40 , 40 ) rgb ( 0 , 0 , 0 ) " but got "rgb ( 0 , 60 , 60 ) rgb ( 0 , 0 , 0 ) " PASS CSS Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (1.5) is [rgb(0, 40, 40) rgb(0, 0, 0)]
PASS Web Animations: property <--color-list> from [initial] to [blue red] at (-0.3) is [rgb(255, 0, 0) rgb(0, 0, 255)] PASS Web Animations: property <--color-list> from [initial] to [blue red] at (-0.3) is [rgb(255, 0, 0) rgb(0, 0, 255)]
PASS Web Animations: property <--color-list> from [initial] to [blue red] at (0) is [rgb(255, 0, 0) rgb(0, 0, 255)] PASS Web Animations: property <--color-list> from [initial] to [blue red] at (0) is [rgb(255, 0, 0) rgb(0, 0, 255)]
PASS Web Animations: property <--color-list> from [initial] to [blue red] at (0.5) is [rgb(128, 0, 128) rgb(128, 0, 128)] PASS Web Animations: property <--color-list> from [initial] to [blue red] at (0.5) is [rgb(128, 0, 128) rgb(128, 0, 128)]
...@@ -70,20 +70,20 @@ PASS Web Animations: property <--color-list> from [hsl(120, 100%, 50%) coral] to ...@@ -70,20 +70,20 @@ PASS Web Animations: property <--color-list> from [hsl(120, 100%, 50%) coral] to
PASS Web Animations: property <--color-list> from [hsl(120, 100%, 50%) coral] to [navy hsl(240, 100%, 50%)] at (0.5) is [rgb(0, 128, 64) rgb(128, 64, 168)] PASS Web Animations: property <--color-list> from [hsl(120, 100%, 50%) coral] to [navy hsl(240, 100%, 50%)] at (0.5) is [rgb(0, 128, 64) rgb(128, 64, 168)]
PASS Web Animations: property <--color-list> from [hsl(120, 100%, 50%) coral] to [navy hsl(240, 100%, 50%)] at (1) is [rgb(0, 0, 128) rgb(0, 0, 255)] PASS Web Animations: property <--color-list> from [hsl(120, 100%, 50%) coral] to [navy hsl(240, 100%, 50%)] at (1) is [rgb(0, 0, 128) rgb(0, 0, 255)]
PASS Web Animations: property <--color-list> from [hsl(120, 100%, 50%) coral] to [navy hsl(240, 100%, 50%)] at (1.5) is [rgb(0, 0, 192) rgb(0, 0, 255)] PASS Web Animations: property <--color-list> from [hsl(120, 100%, 50%) coral] to [navy hsl(240, 100%, 50%)] at (1.5) is [rgb(0, 0, 192) rgb(0, 0, 255)]
FAIL Web Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (-0.3) is [rgba(0, 0, 0, 0) rgba(0, 0, 0, 0)] assert_equals: expected "rgb ( 52 , 40 , 40 ) rgb ( 104 , 104 , 104 ) " but got "rgba ( 0 , 0 , 0 , 0 ) rgba ( 0 , 0 , 0 , 0 ) " PASS Web Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (-0.3) is [rgb(52, 40, 40) rgb(104, 104, 104)]
FAIL Web Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (0) is [rgba(0, 0, 0, 0) rgba(0, 0, 0, 0)] assert_equals: expected "rgb ( 40 , 40 , 40 ) rgb ( 80 , 80 , 80 ) " but got "rgba ( 0 , 0 , 0 , 0 ) rgba ( 0 , 0 , 0 , 0 ) " PASS Web Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (0) is [rgb(40, 40, 40) rgb(80, 80, 80)]
FAIL Web Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (0.5) is [rgba(0, 40, 40, 0.5) rgba(0, 0, 0, 0.5)] assert_equals: expected "rgb ( 20 , 40 , 40 ) rgb ( 40 , 40 , 40 ) " but got "rgba ( 0 , 40 , 40 , 0.5 ) rgba ( 0 , 0 , 0 , 0.5 ) " PASS Web Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (0.5) is [rgb(20, 40, 40) rgb(40, 40, 40)]
PASS Web Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (1) is [rgb(0, 40, 40) rgb(0, 0, 0)] PASS Web Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (1) is [rgb(0, 40, 40) rgb(0, 0, 0)]
FAIL Web Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (1.5) is [rgb(0, 60, 60) rgb(0, 0, 0)] assert_equals: expected "rgb ( 0 , 40 , 40 ) rgb ( 0 , 0 , 0 ) " but got "rgb ( 0 , 60 , 60 ) rgb ( 0 , 0 , 0 ) " PASS Web Animations: property <--color-list> from neutral to [rgb(0, 40, 40) black] at (1.5) is [rgb(0, 40, 40) rgb(0, 0, 0)]
FAIL Compositing: property <--color-list> underlying [darkslategray rgb(10, 10, 10)] from add [rgb(10, 10, 10) navy] to add [rgb(30, 30, 30) teal] at (-0.3) is [rgb(4, 4, 4) rgb(0, 0, 128)] assert_equals: expected "rgb ( 51 , 83 , 83 ) rgb ( 10 , 0 , 138 ) " but got "rgb ( 4 , 4 , 4 ) rgb ( 0 , 0 , 128 ) " PASS Compositing: property <--color-list> underlying [darkslategray rgb(10, 10, 10)] from add [rgb(10, 10, 10) navy] to add [rgb(30, 30, 30) teal] at (-0.3) is [rgb(51, 83, 83) rgb(10, 0, 138)]
FAIL Compositing: property <--color-list> underlying [darkslategray rgb(10, 10, 10)] from add [rgb(10, 10, 10) navy] to add [rgb(30, 30, 30) teal] at (0) is [rgb(10, 10, 10) rgb(0, 0, 128)] assert_equals: expected "rgb ( 57 , 89 , 89 ) rgb ( 10 , 10 , 138 ) " but got "rgb ( 10 , 10 , 10 ) rgb ( 0 , 0 , 128 ) " PASS Compositing: property <--color-list> underlying [darkslategray rgb(10, 10, 10)] from add [rgb(10, 10, 10) navy] to add [rgb(30, 30, 30) teal] at (0) is [rgb(57, 89, 89) rgb(10, 10, 138)]
FAIL Compositing: property <--color-list> underlying [darkslategray rgb(10, 10, 10)] from add [rgb(10, 10, 10) navy] to add [rgb(30, 30, 30) teal] at (0.5) is [rgb(20, 20, 20) rgb(0, 64, 128)] assert_equals: expected "rgb ( 67 , 99 , 99 ) rgb ( 10 , 74 , 138 ) " but got "rgb ( 20 , 20 , 20 ) rgb ( 0 , 64 , 128 ) " PASS Compositing: property <--color-list> underlying [darkslategray rgb(10, 10, 10)] from add [rgb(10, 10, 10) navy] to add [rgb(30, 30, 30) teal] at (0.5) is [rgb(67, 99, 99) rgb(10, 74, 138)]
FAIL Compositing: property <--color-list> underlying [darkslategray rgb(10, 10, 10)] from add [rgb(10, 10, 10) navy] to add [rgb(30, 30, 30) teal] at (1) is [rgb(30, 30, 30) rgb(0, 128, 128)] assert_equals: expected "rgb ( 77 , 109 , 109 ) rgb ( 10 , 138 , 138 ) " but got "rgb ( 30 , 30 , 30 ) rgb ( 0 , 128 , 128 ) " PASS Compositing: property <--color-list> underlying [darkslategray rgb(10, 10, 10)] from add [rgb(10, 10, 10) navy] to add [rgb(30, 30, 30) teal] at (1) is [rgb(77, 109, 109) rgb(10, 138, 138)]
FAIL Compositing: property <--color-list> underlying [darkslategray rgb(10, 10, 10)] from add [rgb(10, 10, 10) navy] to add [rgb(30, 30, 30) teal] at (1.5) is [rgb(40, 40, 40) rgb(0, 192, 128)] assert_equals: expected "rgb ( 87 , 119 , 119 ) rgb ( 10 , 202 , 138 ) " but got "rgb ( 40 , 40 , 40 ) rgb ( 0 , 192 , 128 ) " PASS Compositing: property <--color-list> underlying [darkslategray rgb(10, 10, 10)] from add [rgb(10, 10, 10) navy] to add [rgb(30, 30, 30) teal] at (1.5) is [rgb(87, 119, 119) rgb(10, 202, 138)]
FAIL Compositing: property <--color-list> underlying [gold rgb(100, 100, 100)] from add [navy rgb(0, 0, 0)] to replace [rgb(17, 17, 17) rgb(1, 1, 1)] at (-0.3) is [rgb(0, 0, 161) rgb(0, 0, 0)] assert_equals: expected "rgb ( 255 , 255 , 161 ) rgb ( 130 , 130 , 130 ) " but got "rgb ( 0 , 0 , 161 ) rgb ( 0 , 0 , 0 ) " PASS Compositing: property <--color-list> underlying [gold rgb(100, 100, 100)] from add [navy rgb(0, 0, 0)] to replace [rgb(17, 17, 17) rgb(1, 1, 1)] at (-0.3) is [rgb(255, 255, 161) rgb(130, 130, 130)]
FAIL Compositing: property <--color-list> underlying [gold rgb(100, 100, 100)] from add [navy rgb(0, 0, 0)] to replace [rgb(17, 17, 17) rgb(1, 1, 1)] at (0) is [rgb(0, 0, 128) rgb(0, 0, 0)] assert_equals: expected "rgb ( 255 , 215 , 128 ) rgb ( 100 , 100 , 100 ) " but got "rgb ( 0 , 0 , 128 ) rgb ( 0 , 0 , 0 ) " PASS Compositing: property <--color-list> underlying [gold rgb(100, 100, 100)] from add [navy rgb(0, 0, 0)] to replace [rgb(17, 17, 17) rgb(1, 1, 1)] at (0) is [rgb(255, 215, 128) rgb(100, 100, 100)]
FAIL Compositing: property <--color-list> underlying [gold rgb(100, 100, 100)] from add [navy rgb(0, 0, 0)] to replace [rgb(17, 17, 17) rgb(1, 1, 1)] at (0.5) is [rgb(9, 9, 73) rgb(1, 1, 1)] assert_equals: expected "rgb ( 136 , 116 , 73 ) rgb ( 51 , 51 , 51 ) " but got "rgb ( 9 , 9 , 73 ) rgb ( 1 , 1 , 1 ) " PASS Compositing: property <--color-list> underlying [gold rgb(100, 100, 100)] from add [navy rgb(0, 0, 0)] to replace [rgb(17, 17, 17) rgb(1, 1, 1)] at (0.5) is [rgb(136, 116, 73) rgb(51, 51, 51)]
PASS Compositing: property <--color-list> underlying [gold rgb(100, 100, 100)] from add [navy rgb(0, 0, 0)] to replace [rgb(17, 17, 17) rgb(1, 1, 1)] at (1) is [rgb(17, 17, 17) rgb(1, 1, 1)] PASS Compositing: property <--color-list> underlying [gold rgb(100, 100, 100)] from add [navy rgb(0, 0, 0)] to replace [rgb(17, 17, 17) rgb(1, 1, 1)] at (1) is [rgb(17, 17, 17) rgb(1, 1, 1)]
FAIL Compositing: property <--color-list> underlying [gold rgb(100, 100, 100)] from add [navy rgb(0, 0, 0)] to replace [rgb(17, 17, 17) rgb(1, 1, 1)] at (1.5) is [rgb(26, 26, 0) rgb(2, 2, 2)] assert_equals: expected "rgb ( 0 , 0 , 0 ) rgb ( 0 , 0 , 0 ) " but got "rgb ( 26 , 26 , 0 ) rgb ( 2 , 2 , 2 ) " FAIL Compositing: property <--color-list> underlying [gold rgb(100, 100, 100)] from add [navy rgb(0, 0, 0)] to replace [rgb(17, 17, 17) rgb(1, 1, 1)] at (1.5) is [rgba(0, 0, 0, 0.5) rgba(0, 0, 0, 0.5)] assert_equals: expected "rgb ( 0 , 0 , 0 ) rgb ( 0 , 0 , 0 ) " but got "rgba ( 0 , 0 , 0 , 0.5 ) rgba ( 0 , 0 , 0 , 0.5 ) "
Harness: the test ran to completion. Harness: the test ran to completion.
...@@ -66,10 +66,6 @@ assertInterpolation({ ...@@ -66,10 +66,6 @@ assertInterpolation({
{at: 1.5, is: 'rgb(0, 0, 192) rgb(0, 0, 255)'} {at: 1.5, is: 'rgb(0, 0, 192) rgb(0, 0, 255)'}
]); ]);
// Composition and neutralKeyframe tests assume that composite:add means
// component-wise addition, which may or may not be the behavior we want.
// https://github.com/w3c/css-houdini-drafts/issues/799
assertInterpolation({ assertInterpolation({
property: '--color-list', property: '--color-list',
from: neutralKeyframe, from: neutralKeyframe,
......
This is a testharness.js-based test.
PASS This test uses interpolation-test.js.
PASS CSS Transitions: property <--integer-list> from [initial] to [20 200] at (-0.3) is [46 460]
PASS CSS Transitions: property <--integer-list> from [initial] to [20 200] at (0) is [40 400]
PASS CSS Transitions: property <--integer-list> from [initial] to [20 200] at (0.5) is [30 300]
PASS CSS Transitions: property <--integer-list> from [initial] to [20 200] at (1) is [20 200]
PASS CSS Transitions: property <--integer-list> from [initial] to [20 200] at (1.5) is [10 100]
PASS CSS Transitions: property <--integer-list> from [inherit] to [20 200] at (-0.3) is [33 330]
PASS CSS Transitions: property <--integer-list> from [inherit] to [20 200] at (0) is [30 300]
PASS CSS Transitions: property <--integer-list> from [inherit] to [20 200] at (0.5) is [25 250]
PASS CSS Transitions: property <--integer-list> from [inherit] to [20 200] at (1) is [20 200]
PASS CSS Transitions: property <--integer-list> from [inherit] to [20 200] at (1.5) is [15 150]
PASS CSS Transitions: property <--integer-list> from [unset] to [20 200] at (-0.3) is [46 460]
PASS CSS Transitions: property <--integer-list> from [unset] to [20 200] at (0) is [40 400]
PASS CSS Transitions: property <--integer-list> from [unset] to [20 200] at (0.5) is [30 300]
PASS CSS Transitions: property <--integer-list> from [unset] to [20 200] at (1) is [20 200]
PASS CSS Transitions: property <--integer-list> from [unset] to [20 200] at (1.5) is [10 100]
PASS CSS Transitions: property <--integer-list> from [-10 -100] to [10 100] at (-0.3) is [-16 -160]
PASS CSS Transitions: property <--integer-list> from [-10 -100] to [10 100] at (0) is [-10 -100]
PASS CSS Transitions: property <--integer-list> from [-10 -100] to [10 100] at (0.5) is [0 0]
PASS CSS Transitions: property <--integer-list> from [-10 -100] to [10 100] at (1) is [10 100]
PASS CSS Transitions: property <--integer-list> from [-10 -100] to [10 100] at (1.5) is [20 200]
PASS CSS Transitions: property <--integer-list> from [10] to [100] at (-0.3) is [-17]
PASS CSS Transitions: property <--integer-list> from [10] to [100] at (0) is [10]
PASS CSS Transitions: property <--integer-list> from [10] to [100] at (0.5) is [55]
PASS CSS Transitions: property <--integer-list> from [10] to [100] at (1) is [100]
PASS CSS Transitions: property <--integer-list> from [10] to [100] at (1.5) is [145]
PASS CSS Transitions: property <--integer-list> from [0 15] to [15 0] at (-0.3) is [-4 19]
PASS CSS Transitions: property <--integer-list> from [0 15] to [15 0] at (0) is [0 15]
PASS CSS Transitions: property <--integer-list> from [0 15] to [15 0] at (0.45) is [7 8]
PASS CSS Transitions: property <--integer-list> from [0 15] to [15 0] at (1) is [15 0]
PASS CSS Transitions: property <--integer-list> from [0 15] to [15 0] at (1.45) is [22 -7]
PASS CSS Transitions: property <--integer-list> from neutral to [20 200] at (-0.3) is [7 70]
PASS CSS Transitions: property <--integer-list> from neutral to [20 200] at (0) is [10 100]
PASS CSS Transitions: property <--integer-list> from neutral to [20 200] at (0.5) is [15 150]
PASS CSS Transitions: property <--integer-list> from neutral to [20 200] at (1) is [20 200]
PASS CSS Transitions: property <--integer-list> from neutral to [20 200] at (1.5) is [25 250]
PASS CSS Animations: property <--integer-list> from [initial] to [20 200] at (-0.3) is [46 460]
PASS CSS Animations: property <--integer-list> from [initial] to [20 200] at (0) is [40 400]
PASS CSS Animations: property <--integer-list> from [initial] to [20 200] at (0.5) is [30 300]
PASS CSS Animations: property <--integer-list> from [initial] to [20 200] at (1) is [20 200]
PASS CSS Animations: property <--integer-list> from [initial] to [20 200] at (1.5) is [10 100]
PASS CSS Animations: property <--integer-list> from [inherit] to [20 200] at (-0.3) is [33 330]
PASS CSS Animations: property <--integer-list> from [inherit] to [20 200] at (0) is [30 300]
PASS CSS Animations: property <--integer-list> from [inherit] to [20 200] at (0.5) is [25 250]
PASS CSS Animations: property <--integer-list> from [inherit] to [20 200] at (1) is [20 200]
PASS CSS Animations: property <--integer-list> from [inherit] to [20 200] at (1.5) is [15 150]
PASS CSS Animations: property <--integer-list> from [unset] to [20 200] at (-0.3) is [46 460]
PASS CSS Animations: property <--integer-list> from [unset] to [20 200] at (0) is [40 400]
PASS CSS Animations: property <--integer-list> from [unset] to [20 200] at (0.5) is [30 300]
PASS CSS Animations: property <--integer-list> from [unset] to [20 200] at (1) is [20 200]
PASS CSS Animations: property <--integer-list> from [unset] to [20 200] at (1.5) is [10 100]
PASS CSS Animations: property <--integer-list> from [-10 -100] to [10 100] at (-0.3) is [-16 -160]
PASS CSS Animations: property <--integer-list> from [-10 -100] to [10 100] at (0) is [-10 -100]
PASS CSS Animations: property <--integer-list> from [-10 -100] to [10 100] at (0.5) is [0 0]
PASS CSS Animations: property <--integer-list> from [-10 -100] to [10 100] at (1) is [10 100]
PASS CSS Animations: property <--integer-list> from [-10 -100] to [10 100] at (1.5) is [20 200]
PASS CSS Animations: property <--integer-list> from [10] to [100] at (-0.3) is [-17]
PASS CSS Animations: property <--integer-list> from [10] to [100] at (0) is [10]
PASS CSS Animations: property <--integer-list> from [10] to [100] at (0.5) is [55]
PASS CSS Animations: property <--integer-list> from [10] to [100] at (1) is [100]
PASS CSS Animations: property <--integer-list> from [10] to [100] at (1.5) is [145]
PASS CSS Animations: property <--integer-list> from [0 15] to [15 0] at (-0.3) is [-4 19]
PASS CSS Animations: property <--integer-list> from [0 15] to [15 0] at (0) is [0 15]
PASS CSS Animations: property <--integer-list> from [0 15] to [15 0] at (0.45) is [7 8]
PASS CSS Animations: property <--integer-list> from [0 15] to [15 0] at (1) is [15 0]
PASS CSS Animations: property <--integer-list> from [0 15] to [15 0] at (1.45) is [22 -7]
FAIL CSS Animations: property <--integer-list> from neutral to [20 200] at (-0.3) is [-6 -60] assert_equals: expected "7 70 " but got "- 6 - 60 "
FAIL CSS Animations: property <--integer-list> from neutral to [20 200] at (0) is [0 0] assert_equals: expected "10 100 " but got "0 0 "
FAIL CSS Animations: property <--integer-list> from neutral to [20 200] at (0.5) is [10 100] assert_equals: expected "15 150 " but got "10 100 "
PASS CSS Animations: property <--integer-list> from neutral to [20 200] at (1) is [20 200]
FAIL CSS Animations: property <--integer-list> from neutral to [20 200] at (1.5) is [30 300] assert_equals: expected "25 250 " but got "30 300 "
PASS Web Animations: property <--integer-list> from [initial] to [20 200] at (-0.3) is [46 460]
PASS Web Animations: property <--integer-list> from [initial] to [20 200] at (0) is [40 400]
PASS Web Animations: property <--integer-list> from [initial] to [20 200] at (0.5) is [30 300]
PASS Web Animations: property <--integer-list> from [initial] to [20 200] at (1) is [20 200]
PASS Web Animations: property <--integer-list> from [initial] to [20 200] at (1.5) is [10 100]
PASS Web Animations: property <--integer-list> from [inherit] to [20 200] at (-0.3) is [33 330]
PASS Web Animations: property <--integer-list> from [inherit] to [20 200] at (0) is [30 300]
PASS Web Animations: property <--integer-list> from [inherit] to [20 200] at (0.5) is [25 250]
PASS Web Animations: property <--integer-list> from [inherit] to [20 200] at (1) is [20 200]
PASS Web Animations: property <--integer-list> from [inherit] to [20 200] at (1.5) is [15 150]
PASS Web Animations: property <--integer-list> from [unset] to [20 200] at (-0.3) is [46 460]
PASS Web Animations: property <--integer-list> from [unset] to [20 200] at (0) is [40 400]
PASS Web Animations: property <--integer-list> from [unset] to [20 200] at (0.5) is [30 300]
PASS Web Animations: property <--integer-list> from [unset] to [20 200] at (1) is [20 200]
PASS Web Animations: property <--integer-list> from [unset] to [20 200] at (1.5) is [10 100]
PASS Web Animations: property <--integer-list> from [-10 -100] to [10 100] at (-0.3) is [-16 -160]
PASS Web Animations: property <--integer-list> from [-10 -100] to [10 100] at (0) is [-10 -100]
PASS Web Animations: property <--integer-list> from [-10 -100] to [10 100] at (0.5) is [0 0]
PASS Web Animations: property <--integer-list> from [-10 -100] to [10 100] at (1) is [10 100]
PASS Web Animations: property <--integer-list> from [-10 -100] to [10 100] at (1.5) is [20 200]
PASS Web Animations: property <--integer-list> from [10] to [100] at (-0.3) is [-17]
PASS Web Animations: property <--integer-list> from [10] to [100] at (0) is [10]
PASS Web Animations: property <--integer-list> from [10] to [100] at (0.5) is [55]
PASS Web Animations: property <--integer-list> from [10] to [100] at (1) is [100]
PASS Web Animations: property <--integer-list> from [10] to [100] at (1.5) is [145]
PASS Web Animations: property <--integer-list> from [0 15] to [15 0] at (-0.3) is [-4 19]
PASS Web Animations: property <--integer-list> from [0 15] to [15 0] at (0) is [0 15]
PASS Web Animations: property <--integer-list> from [0 15] to [15 0] at (0.45) is [7 8]
PASS Web Animations: property <--integer-list> from [0 15] to [15 0] at (1) is [15 0]
PASS Web Animations: property <--integer-list> from [0 15] to [15 0] at (1.45) is [22 -7]
FAIL Web Animations: property <--integer-list> from neutral to [20 200] at (-0.3) is [-6 -60] assert_equals: expected "7 70 " but got "- 6 - 60 "
FAIL Web Animations: property <--integer-list> from neutral to [20 200] at (0) is [0 0] assert_equals: expected "10 100 " but got "0 0 "
FAIL Web Animations: property <--integer-list> from neutral to [20 200] at (0.5) is [10 100] assert_equals: expected "15 150 " but got "10 100 "
PASS Web Animations: property <--integer-list> from neutral to [20 200] at (1) is [20 200]
FAIL Web Animations: property <--integer-list> from neutral to [20 200] at (1.5) is [30 300] assert_equals: expected "25 250 " but got "30 300 "
FAIL Compositing: property <--integer-list> underlying [50 60] from add [10 140] to add [110 40] at (-0.3) is [-20 170] assert_equals: expected "30 230 " but got "- 20 170 "
FAIL Compositing: property <--integer-list> underlying [50 60] from add [10 140] to add [110 40] at (0) is [10 140] assert_equals: expected "60 200 " but got "10 140 "
FAIL Compositing: property <--integer-list> underlying [50 60] from add [10 140] to add [110 40] at (0.5) is [60 90] assert_equals: expected "110 150 " but got "60 90 "
FAIL Compositing: property <--integer-list> underlying [50 60] from add [10 140] to add [110 40] at (1) is [110 40] assert_equals: expected "160 100 " but got "110 40 "
FAIL Compositing: property <--integer-list> underlying [50 60] from add [10 140] to add [110 40] at (1.5) is [160 -10] assert_equals: expected "210 50 " but got "160 - 10 "
FAIL Compositing: property <--integer-list> underlying [50 60] from add [10 140] to replace [110 40] at (-0.3) is [-20 170] assert_equals: expected "45 248 " but got "- 20 170 "
FAIL Compositing: property <--integer-list> underlying [50 60] from add [10 140] to replace [110 40] at (0) is [10 140] assert_equals: expected "60 200 " but got "10 140 "
FAIL Compositing: property <--integer-list> underlying [50 60] from add [10 140] to replace [110 40] at (0.5) is [60 90] assert_equals: expected "85 120 " but got "60 90 "
PASS Compositing: property <--integer-list> underlying [50 60] from add [10 140] to replace [110 40] at (1) is [110 40]
FAIL Compositing: property <--integer-list> underlying [50 60] from add [10 140] to replace [110 40] at (1.5) is [160 -10] assert_equals: expected "135 - 40 " but got "160 - 10 "
Harness: the test ran to completion.
...@@ -90,10 +90,6 @@ assertInterpolation({ ...@@ -90,10 +90,6 @@ assertInterpolation({
{at: 1.45, is: '22 -7'} {at: 1.45, is: '22 -7'}
]); ]);
// Composition and neutralKeyframe tests assume that composite:add means
// component-wise addition, which may or may not be the behavior we want.
// https://github.com/w3c/css-houdini-drafts/issues/799
assertInterpolation({ assertInterpolation({
property: '--integer-list', property: '--integer-list',
from: neutralKeyframe, from: neutralKeyframe,
......
This is a testharness.js-based test.
PASS This test uses interpolation-test.js.
PASS CSS Transitions: property <--length-list> from [initial] to [20px 200px] at (-0.3) is [46px 460px]
PASS CSS Transitions: property <--length-list> from [initial] to [20px 200px] at (0) is [40px 400px]
PASS CSS Transitions: property <--length-list> from [initial] to [20px 200px] at (0.5) is [30px 300px]
PASS CSS Transitions: property <--length-list> from [initial] to [20px 200px] at (1) is [20px 200px]
PASS CSS Transitions: property <--length-list> from [initial] to [20px 200px] at (1.5) is [10px 100px]
PASS CSS Transitions: property <--length-list> from [inherit] to [20px 200px] at (-0.3) is [33px 330px]
PASS CSS Transitions: property <--length-list> from [inherit] to [20px 200px] at (0) is [30px 300px]
PASS CSS Transitions: property <--length-list> from [inherit] to [20px 200px] at (0.5) is [25px 250px]
PASS CSS Transitions: property <--length-list> from [inherit] to [20px 200px] at (1) is [20px 200px]
PASS CSS Transitions: property <--length-list> from [inherit] to [20px 200px] at (1.5) is [15px 150px]
PASS CSS Transitions: property <--length-list> from [unset] to [20px 200px] at (-0.3) is [46px 460px]
PASS CSS Transitions: property <--length-list> from [unset] to [20px 200px] at (0) is [40px 400px]
PASS CSS Transitions: property <--length-list> from [unset] to [20px 200px] at (0.5) is [30px 300px]
PASS CSS Transitions: property <--length-list> from [unset] to [20px 200px] at (1) is [20px 200px]
PASS CSS Transitions: property <--length-list> from [unset] to [20px 200px] at (1.5) is [10px 100px]
PASS CSS Transitions: property <--length-list> from [-10px -100px] to [10px 100px] at (-0.3) is [-16px -160px]
PASS CSS Transitions: property <--length-list> from [-10px -100px] to [10px 100px] at (0) is [-10px -100px]
PASS CSS Transitions: property <--length-list> from [-10px -100px] to [10px 100px] at (0.5) is [0px 0px]
PASS CSS Transitions: property <--length-list> from [-10px -100px] to [10px 100px] at (1) is [10px 100px]
PASS CSS Transitions: property <--length-list> from [-10px -100px] to [10px 100px] at (1.5) is [20px 200px]
PASS CSS Transitions: property <--length-list> from [10em 100em] to [20em 200em] at (-0.3) is [140px 1400px]
PASS CSS Transitions: property <--length-list> from [10em 100em] to [20em 200em] at (0) is [200px 2000px]
PASS CSS Transitions: property <--length-list> from [10em 100em] to [20em 200em] at (0.5) is [300px 3000px]
PASS CSS Transitions: property <--length-list> from [10em 100em] to [20em 200em] at (1) is [400px 4000px]
PASS CSS Transitions: property <--length-list> from [10em 100em] to [20em 200em] at (1.5) is [500px 5000px]
PASS CSS Transitions: property <--length-list> from [10em 100em] to [100px 1000px] at (-0.3) is [230px 2300px]
PASS CSS Transitions: property <--length-list> from [10em 100em] to [100px 1000px] at (0) is [200px 2000px]
PASS CSS Transitions: property <--length-list> from [10em 100em] to [100px 1000px] at (0.5) is [150px 1500px]
PASS CSS Transitions: property <--length-list> from [10em 100em] to [100px 1000px] at (1) is [100px 1000px]
PASS CSS Transitions: property <--length-list> from [10em 100em] to [100px 1000px] at (1.5) is [50px 500px]
PASS CSS Transitions: property <--length-list> from [10px] to [100px] at (-0.3) is [-17px]
PASS CSS Transitions: property <--length-list> from [10px] to [100px] at (0) is [10px]
PASS CSS Transitions: property <--length-list> from [10px] to [100px] at (0.5) is [55px]
PASS CSS Transitions: property <--length-list> from [10px] to [100px] at (1) is [100px]
PASS CSS Transitions: property <--length-list> from [10px] to [100px] at (1.5) is [145px]
PASS CSS Transitions: property <--length-list> from neutral to [20px 200px] at (-0.3) is [7px 70px]
PASS CSS Transitions: property <--length-list> from neutral to [20px 200px] at (0) is [10px 100px]
PASS CSS Transitions: property <--length-list> from neutral to [20px 200px] at (0.5) is [15px 150px]
PASS CSS Transitions: property <--length-list> from neutral to [20px 200px] at (1) is [20px 200px]
PASS CSS Transitions: property <--length-list> from neutral to [20px 200px] at (1.5) is [25px 250px]
PASS CSS Animations: property <--length-list> from [initial] to [20px 200px] at (-0.3) is [46px 460px]
PASS CSS Animations: property <--length-list> from [initial] to [20px 200px] at (0) is [40px 400px]
PASS CSS Animations: property <--length-list> from [initial] to [20px 200px] at (0.5) is [30px 300px]
PASS CSS Animations: property <--length-list> from [initial] to [20px 200px] at (1) is [20px 200px]
PASS CSS Animations: property <--length-list> from [initial] to [20px 200px] at (1.5) is [10px 100px]
PASS CSS Animations: property <--length-list> from [inherit] to [20px 200px] at (-0.3) is [33px 330px]
PASS CSS Animations: property <--length-list> from [inherit] to [20px 200px] at (0) is [30px 300px]
PASS CSS Animations: property <--length-list> from [inherit] to [20px 200px] at (0.5) is [25px 250px]
PASS CSS Animations: property <--length-list> from [inherit] to [20px 200px] at (1) is [20px 200px]
PASS CSS Animations: property <--length-list> from [inherit] to [20px 200px] at (1.5) is [15px 150px]
PASS CSS Animations: property <--length-list> from [unset] to [20px 200px] at (-0.3) is [46px 460px]
PASS CSS Animations: property <--length-list> from [unset] to [20px 200px] at (0) is [40px 400px]
PASS CSS Animations: property <--length-list> from [unset] to [20px 200px] at (0.5) is [30px 300px]
PASS CSS Animations: property <--length-list> from [unset] to [20px 200px] at (1) is [20px 200px]
PASS CSS Animations: property <--length-list> from [unset] to [20px 200px] at (1.5) is [10px 100px]
PASS CSS Animations: property <--length-list> from [-10px -100px] to [10px 100px] at (-0.3) is [-16px -160px]
PASS CSS Animations: property <--length-list> from [-10px -100px] to [10px 100px] at (0) is [-10px -100px]
PASS CSS Animations: property <--length-list> from [-10px -100px] to [10px 100px] at (0.5) is [0px 0px]
PASS CSS Animations: property <--length-list> from [-10px -100px] to [10px 100px] at (1) is [10px 100px]
PASS CSS Animations: property <--length-list> from [-10px -100px] to [10px 100px] at (1.5) is [20px 200px]
PASS CSS Animations: property <--length-list> from [10em 100em] to [20em 200em] at (-0.3) is [140px 1400px]
PASS CSS Animations: property <--length-list> from [10em 100em] to [20em 200em] at (0) is [200px 2000px]
PASS CSS Animations: property <--length-list> from [10em 100em] to [20em 200em] at (0.5) is [300px 3000px]
PASS CSS Animations: property <--length-list> from [10em 100em] to [20em 200em] at (1) is [400px 4000px]
PASS CSS Animations: property <--length-list> from [10em 100em] to [20em 200em] at (1.5) is [500px 5000px]
PASS CSS Animations: property <--length-list> from [10em 100em] to [100px 1000px] at (-0.3) is [230px 2300px]
PASS CSS Animations: property <--length-list> from [10em 100em] to [100px 1000px] at (0) is [200px 2000px]
PASS CSS Animations: property <--length-list> from [10em 100em] to [100px 1000px] at (0.5) is [150px 1500px]
PASS CSS Animations: property <--length-list> from [10em 100em] to [100px 1000px] at (1) is [100px 1000px]
PASS CSS Animations: property <--length-list> from [10em 100em] to [100px 1000px] at (1.5) is [50px 500px]
PASS CSS Animations: property <--length-list> from [10px] to [100px] at (-0.3) is [-17px]
PASS CSS Animations: property <--length-list> from [10px] to [100px] at (0) is [10px]
PASS CSS Animations: property <--length-list> from [10px] to [100px] at (0.5) is [55px]
PASS CSS Animations: property <--length-list> from [10px] to [100px] at (1) is [100px]
PASS CSS Animations: property <--length-list> from [10px] to [100px] at (1.5) is [145px]
FAIL CSS Animations: property <--length-list> from neutral to [20px 200px] at (-0.3) is [-6px -60px] assert_equals: expected "7px 70px " but got "- 6px - 60px "
FAIL CSS Animations: property <--length-list> from neutral to [20px 200px] at (0) is [0px 0px] assert_equals: expected "10px 100px " but got "0px 0px "
FAIL CSS Animations: property <--length-list> from neutral to [20px 200px] at (0.5) is [10px 100px] assert_equals: expected "15px 150px " but got "10px 100px "
PASS CSS Animations: property <--length-list> from neutral to [20px 200px] at (1) is [20px 200px]
FAIL CSS Animations: property <--length-list> from neutral to [20px 200px] at (1.5) is [30px 300px] assert_equals: expected "25px 250px " but got "30px 300px "
PASS Web Animations: property <--length-list> from [initial] to [20px 200px] at (-0.3) is [46px 460px]
PASS Web Animations: property <--length-list> from [initial] to [20px 200px] at (0) is [40px 400px]
PASS Web Animations: property <--length-list> from [initial] to [20px 200px] at (0.5) is [30px 300px]
PASS Web Animations: property <--length-list> from [initial] to [20px 200px] at (1) is [20px 200px]
PASS Web Animations: property <--length-list> from [initial] to [20px 200px] at (1.5) is [10px 100px]
PASS Web Animations: property <--length-list> from [inherit] to [20px 200px] at (-0.3) is [33px 330px]
PASS Web Animations: property <--length-list> from [inherit] to [20px 200px] at (0) is [30px 300px]
PASS Web Animations: property <--length-list> from [inherit] to [20px 200px] at (0.5) is [25px 250px]
PASS Web Animations: property <--length-list> from [inherit] to [20px 200px] at (1) is [20px 200px]
PASS Web Animations: property <--length-list> from [inherit] to [20px 200px] at (1.5) is [15px 150px]
PASS Web Animations: property <--length-list> from [unset] to [20px 200px] at (-0.3) is [46px 460px]
PASS Web Animations: property <--length-list> from [unset] to [20px 200px] at (0) is [40px 400px]
PASS Web Animations: property <--length-list> from [unset] to [20px 200px] at (0.5) is [30px 300px]
PASS Web Animations: property <--length-list> from [unset] to [20px 200px] at (1) is [20px 200px]
PASS Web Animations: property <--length-list> from [unset] to [20px 200px] at (1.5) is [10px 100px]
PASS Web Animations: property <--length-list> from [-10px -100px] to [10px 100px] at (-0.3) is [-16px -160px]
PASS Web Animations: property <--length-list> from [-10px -100px] to [10px 100px] at (0) is [-10px -100px]
PASS Web Animations: property <--length-list> from [-10px -100px] to [10px 100px] at (0.5) is [0px 0px]
PASS Web Animations: property <--length-list> from [-10px -100px] to [10px 100px] at (1) is [10px 100px]
PASS Web Animations: property <--length-list> from [-10px -100px] to [10px 100px] at (1.5) is [20px 200px]
PASS Web Animations: property <--length-list> from [10em 100em] to [20em 200em] at (-0.3) is [140px 1400px]
PASS Web Animations: property <--length-list> from [10em 100em] to [20em 200em] at (0) is [200px 2000px]
PASS Web Animations: property <--length-list> from [10em 100em] to [20em 200em] at (0.5) is [300px 3000px]
PASS Web Animations: property <--length-list> from [10em 100em] to [20em 200em] at (1) is [400px 4000px]
PASS Web Animations: property <--length-list> from [10em 100em] to [20em 200em] at (1.5) is [500px 5000px]
PASS Web Animations: property <--length-list> from [10em 100em] to [100px 1000px] at (-0.3) is [230px 2300px]
PASS Web Animations: property <--length-list> from [10em 100em] to [100px 1000px] at (0) is [200px 2000px]
PASS Web Animations: property <--length-list> from [10em 100em] to [100px 1000px] at (0.5) is [150px 1500px]
PASS Web Animations: property <--length-list> from [10em 100em] to [100px 1000px] at (1) is [100px 1000px]
PASS Web Animations: property <--length-list> from [10em 100em] to [100px 1000px] at (1.5) is [50px 500px]
PASS Web Animations: property <--length-list> from [10px] to [100px] at (-0.3) is [-17px]
PASS Web Animations: property <--length-list> from [10px] to [100px] at (0) is [10px]
PASS Web Animations: property <--length-list> from [10px] to [100px] at (0.5) is [55px]
PASS Web Animations: property <--length-list> from [10px] to [100px] at (1) is [100px]
PASS Web Animations: property <--length-list> from [10px] to [100px] at (1.5) is [145px]
FAIL Web Animations: property <--length-list> from neutral to [20px 200px] at (-0.3) is [-6px -60px] assert_equals: expected "7px 70px " but got "- 6px - 60px "
FAIL Web Animations: property <--length-list> from neutral to [20px 200px] at (0) is [0px 0px] assert_equals: expected "10px 100px " but got "0px 0px "
FAIL Web Animations: property <--length-list> from neutral to [20px 200px] at (0.5) is [10px 100px] assert_equals: expected "15px 150px " but got "10px 100px "
PASS Web Animations: property <--length-list> from neutral to [20px 200px] at (1) is [20px 200px]
FAIL Web Animations: property <--length-list> from neutral to [20px 200px] at (1.5) is [30px 300px] assert_equals: expected "25px 250px " but got "30px 300px "
FAIL Compositing: property <--length-list> underlying [50px 60px] from add [10px 140px] to add [110px 40px] at (-0.3) is [-20px 170px] assert_equals: expected "30px 230px " but got "- 20px 170px "
FAIL Compositing: property <--length-list> underlying [50px 60px] from add [10px 140px] to add [110px 40px] at (0) is [10px 140px] assert_equals: expected "60px 200px " but got "10px 140px "
FAIL Compositing: property <--length-list> underlying [50px 60px] from add [10px 140px] to add [110px 40px] at (0.5) is [60px 90px] assert_equals: expected "110px 150px " but got "60px 90px "
FAIL Compositing: property <--length-list> underlying [50px 60px] from add [10px 140px] to add [110px 40px] at (1) is [110px 40px] assert_equals: expected "160px 100px " but got "110px 40px "
FAIL Compositing: property <--length-list> underlying [50px 60px] from add [10px 140px] to add [110px 40px] at (1.5) is [160px -10px] assert_equals: expected "210px 50px " but got "160px - 10px "
FAIL Compositing: property <--length-list> underlying [50px 60px] from add [10px 140px] to replace [110px 40px] at (-0.3) is [-20px 170px] assert_equals: expected "45px 248px " but got "- 20px 170px "
FAIL Compositing: property <--length-list> underlying [50px 60px] from add [10px 140px] to replace [110px 40px] at (0) is [10px 140px] assert_equals: expected "60px 200px " but got "10px 140px "
FAIL Compositing: property <--length-list> underlying [50px 60px] from add [10px 140px] to replace [110px 40px] at (0.5) is [60px 90px] assert_equals: expected "85px 120px " but got "60px 90px "
PASS Compositing: property <--length-list> underlying [50px 60px] from add [10px 140px] to replace [110px 40px] at (1) is [110px 40px]
FAIL Compositing: property <--length-list> underlying [50px 60px] from add [10px 140px] to replace [110px 40px] at (1.5) is [160px -10px] assert_equals: expected "135px - 40px " but got "160px - 10px "
Harness: the test ran to completion.
...@@ -103,10 +103,6 @@ assertInterpolation({ ...@@ -103,10 +103,6 @@ assertInterpolation({
{at: 1.5, is: '145px'} {at: 1.5, is: '145px'}
]); ]);
// Composition and neutralKeyframe tests assume that composite:add means
// component-wise addition, which may or may not be the behavior we want.
// https://github.com/w3c/css-houdini-drafts/issues/799
assertInterpolation({ assertInterpolation({
property: '--length-list', property: '--length-list',
from: neutralKeyframe, from: neutralKeyframe,
......
This is a testharness.js-based test.
PASS This test uses interpolation-test.js.
PASS CSS Transitions: property <--length-percentage-list> from [initial] to [20% 200%] at (-0.3) is [46% calc(-60% + 520px)]
PASS CSS Transitions: property <--length-percentage-list> from [initial] to [20% 200%] at (0) is [40% 400px]
PASS CSS Transitions: property <--length-percentage-list> from [initial] to [20% 200%] at (0.5) is [30% calc(100% + 200px)]
PASS CSS Transitions: property <--length-percentage-list> from [initial] to [20% 200%] at (1) is [20% 200%]
PASS CSS Transitions: property <--length-percentage-list> from [initial] to [20% 200%] at (1.5) is [10% calc(300% + -200px)]
PASS CSS Transitions: property <--length-percentage-list> from [inherit] to [20px 200%] at (-0.3) is [calc(39% + -6px) calc(-60% + 390px)]
PASS CSS Transitions: property <--length-percentage-list> from [inherit] to [20px 200%] at (0) is [30% 300px]
PASS CSS Transitions: property <--length-percentage-list> from [inherit] to [20px 200%] at (0.5) is [calc(15% + 10px) calc(100% + 150px)]
PASS CSS Transitions: property <--length-percentage-list> from [inherit] to [20px 200%] at (1) is [20px 200%]
PASS CSS Transitions: property <--length-percentage-list> from [inherit] to [20px 200%] at (1.5) is [calc(-15% + 30px) calc(300% + -150px)]
PASS CSS Transitions: property <--length-percentage-list> from [unset] to [calc(100px + 120%) calc(100px + 120%)] at (-0.3) is [calc(16% + -30px) calc(-36% + 490px)]
PASS CSS Transitions: property <--length-percentage-list> from [unset] to [calc(100px + 120%) calc(100px + 120%)] at (0) is [40% 400px]
PASS CSS Transitions: property <--length-percentage-list> from [unset] to [calc(100px + 120%) calc(100px + 120%)] at (0.5) is [calc(80% + 50px) calc(60% + 250px)]
PASS CSS Transitions: property <--length-percentage-list> from [unset] to [calc(100px + 120%) calc(100px + 120%)] at (1) is [calc(120% + 100px) calc(120% + 100px)]
PASS CSS Transitions: property <--length-percentage-list> from [unset] to [calc(100px + 120%) calc(100px + 120%)] at (1.5) is [calc(160% + 150px) calc(180% + -50px)]
PASS CSS Transitions: property <--length-percentage-list> from [calc(-10px - 10%) -100px] to [calc(10px + 10%) 100px] at (-0.3) is [calc(-16% + -16px) -160px]
PASS CSS Transitions: property <--length-percentage-list> from [calc(-10px - 10%) -100px] to [calc(10px + 10%) 100px] at (0) is [calc(-10% + -10px) -100px]
PASS CSS Transitions: property <--length-percentage-list> from [calc(-10px - 10%) -100px] to [calc(10px + 10%) 100px] at (0.5) is [0% 0px]
PASS CSS Transitions: property <--length-percentage-list> from [calc(-10px - 10%) -100px] to [calc(10px + 10%) 100px] at (1) is [calc(10% + 10px) 100px]
PASS CSS Transitions: property <--length-percentage-list> from [calc(-10px - 10%) -100px] to [calc(10px + 10%) 100px] at (1.5) is [calc(20% + 20px) 200px]
PASS CSS Transitions: property <--length-percentage-list> from [calc(10em + 10%) 100em] to [20em calc(200em + 200%)] at (-0.3) is [calc(13% + 140px) calc(-60% + 1400px)]
PASS CSS Transitions: property <--length-percentage-list> from [calc(10em + 10%) 100em] to [20em calc(200em + 200%)] at (0) is [calc(10% + 200px) 2000px]
PASS CSS Transitions: property <--length-percentage-list> from [calc(10em + 10%) 100em] to [20em calc(200em + 200%)] at (0.5) is [calc(5% + 300px) calc(100% + 3000px)]
PASS CSS Transitions: property <--length-percentage-list> from [calc(10em + 10%) 100em] to [20em calc(200em + 200%)] at (1) is [400px calc(200% + 4000px)]
PASS CSS Transitions: property <--length-percentage-list> from [calc(10em + 10%) 100em] to [20em calc(200em + 200%)] at (1.5) is [calc(-5% + 500px) calc(300% + 5000px)]
PASS CSS Transitions: property <--length-percentage-list> from [0px] to [calc(100px + 100%)] at (-0.3) is [calc(-30% + -30px)]
PASS CSS Transitions: property <--length-percentage-list> from [0px] to [calc(100px + 100%)] at (0) is [0px]
PASS CSS Transitions: property <--length-percentage-list> from [0px] to [calc(100px + 100%)] at (0.5) is [calc(50% + 50px)]
PASS CSS Transitions: property <--length-percentage-list> from [0px] to [calc(100px + 100%)] at (1) is [calc(100% + 100px)]
PASS CSS Transitions: property <--length-percentage-list> from [0px] to [calc(100px + 100%)] at (1.5) is [calc(150% + 150px)]
PASS CSS Transitions: property <--length-percentage-list> from neutral to [20% 200px] at (-0.3) is [7% 70px]
PASS CSS Transitions: property <--length-percentage-list> from neutral to [20% 200px] at (0) is [10% 100px]
PASS CSS Transitions: property <--length-percentage-list> from neutral to [20% 200px] at (0.5) is [15% 150px]
PASS CSS Transitions: property <--length-percentage-list> from neutral to [20% 200px] at (1) is [20% 200px]
PASS CSS Transitions: property <--length-percentage-list> from neutral to [20% 200px] at (1.5) is [25% 250px]
PASS CSS Animations: property <--length-percentage-list> from [initial] to [20% 200%] at (-0.3) is [46% calc(-60% + 520px)]
PASS CSS Animations: property <--length-percentage-list> from [initial] to [20% 200%] at (0) is [40% 400px]
PASS CSS Animations: property <--length-percentage-list> from [initial] to [20% 200%] at (0.5) is [30% calc(100% + 200px)]
PASS CSS Animations: property <--length-percentage-list> from [initial] to [20% 200%] at (1) is [20% 200%]
PASS CSS Animations: property <--length-percentage-list> from [initial] to [20% 200%] at (1.5) is [10% calc(300% + -200px)]
PASS CSS Animations: property <--length-percentage-list> from [inherit] to [20px 200%] at (-0.3) is [calc(39% + -6px) calc(-60% + 390px)]
PASS CSS Animations: property <--length-percentage-list> from [inherit] to [20px 200%] at (0) is [30% 300px]
PASS CSS Animations: property <--length-percentage-list> from [inherit] to [20px 200%] at (0.5) is [calc(15% + 10px) calc(100% + 150px)]
PASS CSS Animations: property <--length-percentage-list> from [inherit] to [20px 200%] at (1) is [20px 200%]
PASS CSS Animations: property <--length-percentage-list> from [inherit] to [20px 200%] at (1.5) is [calc(-15% + 30px) calc(300% + -150px)]
PASS CSS Animations: property <--length-percentage-list> from [unset] to [calc(100px + 120%) calc(100px + 120%)] at (-0.3) is [calc(16% + -30px) calc(-36% + 490px)]
PASS CSS Animations: property <--length-percentage-list> from [unset] to [calc(100px + 120%) calc(100px + 120%)] at (0) is [40% 400px]
PASS CSS Animations: property <--length-percentage-list> from [unset] to [calc(100px + 120%) calc(100px + 120%)] at (0.5) is [calc(80% + 50px) calc(60% + 250px)]
PASS CSS Animations: property <--length-percentage-list> from [unset] to [calc(100px + 120%) calc(100px + 120%)] at (1) is [calc(120% + 100px) calc(120% + 100px)]
PASS CSS Animations: property <--length-percentage-list> from [unset] to [calc(100px + 120%) calc(100px + 120%)] at (1.5) is [calc(160% + 150px) calc(180% + -50px)]
PASS CSS Animations: property <--length-percentage-list> from [calc(-10px - 10%) -100px] to [calc(10px + 10%) 100px] at (-0.3) is [calc(-16% + -16px) -160px]
PASS CSS Animations: property <--length-percentage-list> from [calc(-10px - 10%) -100px] to [calc(10px + 10%) 100px] at (0) is [calc(-10% + -10px) -100px]
PASS CSS Animations: property <--length-percentage-list> from [calc(-10px - 10%) -100px] to [calc(10px + 10%) 100px] at (0.5) is [0% 0px]
PASS CSS Animations: property <--length-percentage-list> from [calc(-10px - 10%) -100px] to [calc(10px + 10%) 100px] at (1) is [calc(10% + 10px) 100px]
PASS CSS Animations: property <--length-percentage-list> from [calc(-10px - 10%) -100px] to [calc(10px + 10%) 100px] at (1.5) is [calc(20% + 20px) 200px]
PASS CSS Animations: property <--length-percentage-list> from [calc(10em + 10%) 100em] to [20em calc(200em + 200%)] at (-0.3) is [calc(13% + 140px) calc(-60% + 1400px)]
PASS CSS Animations: property <--length-percentage-list> from [calc(10em + 10%) 100em] to [20em calc(200em + 200%)] at (0) is [calc(10% + 200px) 2000px]
PASS CSS Animations: property <--length-percentage-list> from [calc(10em + 10%) 100em] to [20em calc(200em + 200%)] at (0.5) is [calc(5% + 300px) calc(100% + 3000px)]
PASS CSS Animations: property <--length-percentage-list> from [calc(10em + 10%) 100em] to [20em calc(200em + 200%)] at (1) is [400px calc(200% + 4000px)]
PASS CSS Animations: property <--length-percentage-list> from [calc(10em + 10%) 100em] to [20em calc(200em + 200%)] at (1.5) is [calc(-5% + 500px) calc(300% + 5000px)]
PASS CSS Animations: property <--length-percentage-list> from [0px] to [calc(100px + 100%)] at (-0.3) is [calc(-30% + -30px)]
PASS CSS Animations: property <--length-percentage-list> from [0px] to [calc(100px + 100%)] at (0) is [0px]
PASS CSS Animations: property <--length-percentage-list> from [0px] to [calc(100px + 100%)] at (0.5) is [calc(50% + 50px)]
PASS CSS Animations: property <--length-percentage-list> from [0px] to [calc(100px + 100%)] at (1) is [calc(100% + 100px)]
PASS CSS Animations: property <--length-percentage-list> from [0px] to [calc(100px + 100%)] at (1.5) is [calc(150% + 150px)]
FAIL CSS Animations: property <--length-percentage-list> from neutral to [20% 200px] at (-0.3) is [-6% -60px] assert_equals: expected "7 % 70px " but got "- 6 % - 60px "
FAIL CSS Animations: property <--length-percentage-list> from neutral to [20% 200px] at (0) is [0px 0px] assert_equals: expected "10 % 100px " but got "0px 0px "
FAIL CSS Animations: property <--length-percentage-list> from neutral to [20% 200px] at (0.5) is [10% 100px] assert_equals: expected "15 % 150px " but got "10 % 100px "
PASS CSS Animations: property <--length-percentage-list> from neutral to [20% 200px] at (1) is [20% 200px]
FAIL CSS Animations: property <--length-percentage-list> from neutral to [20% 200px] at (1.5) is [30% 300px] assert_equals: expected "25 % 250px " but got "30 % 300px "
PASS Web Animations: property <--length-percentage-list> from [initial] to [20% 200%] at (-0.3) is [46% calc(-60% + 520px)]
PASS Web Animations: property <--length-percentage-list> from [initial] to [20% 200%] at (0) is [40% 400px]
PASS Web Animations: property <--length-percentage-list> from [initial] to [20% 200%] at (0.5) is [30% calc(100% + 200px)]
PASS Web Animations: property <--length-percentage-list> from [initial] to [20% 200%] at (1) is [20% 200%]
PASS Web Animations: property <--length-percentage-list> from [initial] to [20% 200%] at (1.5) is [10% calc(300% + -200px)]
PASS Web Animations: property <--length-percentage-list> from [inherit] to [20px 200%] at (-0.3) is [calc(39% + -6px) calc(-60% + 390px)]
PASS Web Animations: property <--length-percentage-list> from [inherit] to [20px 200%] at (0) is [30% 300px]
PASS Web Animations: property <--length-percentage-list> from [inherit] to [20px 200%] at (0.5) is [calc(15% + 10px) calc(100% + 150px)]
PASS Web Animations: property <--length-percentage-list> from [inherit] to [20px 200%] at (1) is [20px 200%]
PASS Web Animations: property <--length-percentage-list> from [inherit] to [20px 200%] at (1.5) is [calc(-15% + 30px) calc(300% + -150px)]
PASS Web Animations: property <--length-percentage-list> from [unset] to [calc(100px + 120%) calc(100px + 120%)] at (-0.3) is [calc(16% + -30px) calc(-36% + 490px)]
PASS Web Animations: property <--length-percentage-list> from [unset] to [calc(100px + 120%) calc(100px + 120%)] at (0) is [40% 400px]
PASS Web Animations: property <--length-percentage-list> from [unset] to [calc(100px + 120%) calc(100px + 120%)] at (0.5) is [calc(80% + 50px) calc(60% + 250px)]
PASS Web Animations: property <--length-percentage-list> from [unset] to [calc(100px + 120%) calc(100px + 120%)] at (1) is [calc(120% + 100px) calc(120% + 100px)]
PASS Web Animations: property <--length-percentage-list> from [unset] to [calc(100px + 120%) calc(100px + 120%)] at (1.5) is [calc(160% + 150px) calc(180% + -50px)]
PASS Web Animations: property <--length-percentage-list> from [calc(-10px - 10%) -100px] to [calc(10px + 10%) 100px] at (-0.3) is [calc(-16% + -16px) -160px]
PASS Web Animations: property <--length-percentage-list> from [calc(-10px - 10%) -100px] to [calc(10px + 10%) 100px] at (0) is [calc(-10% + -10px) -100px]
PASS Web Animations: property <--length-percentage-list> from [calc(-10px - 10%) -100px] to [calc(10px + 10%) 100px] at (0.5) is [0% 0px]
PASS Web Animations: property <--length-percentage-list> from [calc(-10px - 10%) -100px] to [calc(10px + 10%) 100px] at (1) is [calc(10% + 10px) 100px]
PASS Web Animations: property <--length-percentage-list> from [calc(-10px - 10%) -100px] to [calc(10px + 10%) 100px] at (1.5) is [calc(20% + 20px) 200px]
PASS Web Animations: property <--length-percentage-list> from [calc(10em + 10%) 100em] to [20em calc(200em + 200%)] at (-0.3) is [calc(13% + 140px) calc(-60% + 1400px)]
PASS Web Animations: property <--length-percentage-list> from [calc(10em + 10%) 100em] to [20em calc(200em + 200%)] at (0) is [calc(10% + 200px) 2000px]
PASS Web Animations: property <--length-percentage-list> from [calc(10em + 10%) 100em] to [20em calc(200em + 200%)] at (0.5) is [calc(5% + 300px) calc(100% + 3000px)]
PASS Web Animations: property <--length-percentage-list> from [calc(10em + 10%) 100em] to [20em calc(200em + 200%)] at (1) is [400px calc(200% + 4000px)]
PASS Web Animations: property <--length-percentage-list> from [calc(10em + 10%) 100em] to [20em calc(200em + 200%)] at (1.5) is [calc(-5% + 500px) calc(300% + 5000px)]
PASS Web Animations: property <--length-percentage-list> from [0px] to [calc(100px + 100%)] at (-0.3) is [calc(-30% + -30px)]
PASS Web Animations: property <--length-percentage-list> from [0px] to [calc(100px + 100%)] at (0) is [0px]
PASS Web Animations: property <--length-percentage-list> from [0px] to [calc(100px + 100%)] at (0.5) is [calc(50% + 50px)]
PASS Web Animations: property <--length-percentage-list> from [0px] to [calc(100px + 100%)] at (1) is [calc(100% + 100px)]
PASS Web Animations: property <--length-percentage-list> from [0px] to [calc(100px + 100%)] at (1.5) is [calc(150% + 150px)]
FAIL Web Animations: property <--length-percentage-list> from neutral to [20% 200px] at (-0.3) is [-6% -60px] assert_equals: expected "7 % 70px " but got "- 6 % - 60px "
FAIL Web Animations: property <--length-percentage-list> from neutral to [20% 200px] at (0) is [0px 0px] assert_equals: expected "10 % 100px " but got "0px 0px "
FAIL Web Animations: property <--length-percentage-list> from neutral to [20% 200px] at (0.5) is [10% 100px] assert_equals: expected "15 % 150px " but got "10 % 100px "
PASS Web Animations: property <--length-percentage-list> from neutral to [20% 200px] at (1) is [20% 200px]
FAIL Web Animations: property <--length-percentage-list> from neutral to [20% 200px] at (1.5) is [30% 300px] assert_equals: expected "25 % 250px " but got "30 % 300px "
FAIL Compositing: property <--length-percentage-list> underlying [50px 60%] from add [10% 140px] to add [110% 40px] at (-0.3) is [-20% 170px] assert_equals: expected "calc ( - 20 % + 50px ) calc ( 60 % + 170px ) " but got "- 20 % 170px "
FAIL Compositing: property <--length-percentage-list> underlying [50px 60%] from add [10% 140px] to add [110% 40px] at (0) is [10% 140px] assert_equals: expected "calc ( 10 % + 50px ) calc ( 60 % + 140px ) " but got "10 % 140px "
FAIL Compositing: property <--length-percentage-list> underlying [50px 60%] from add [10% 140px] to add [110% 40px] at (0.5) is [60% 90px] assert_equals: expected "calc ( 60 % + 50px ) calc ( 60 % + 90px ) " but got "60 % 90px "
FAIL Compositing: property <--length-percentage-list> underlying [50px 60%] from add [10% 140px] to add [110% 40px] at (1) is [110% 40px] assert_equals: expected "calc ( 110 % + 50px ) calc ( 60 % + 40px ) " but got "110 % 40px "
FAIL Compositing: property <--length-percentage-list> underlying [50px 60%] from add [10% 140px] to add [110% 40px] at (1.5) is [160% -10px] assert_equals: expected "calc ( 160 % + 50px ) calc ( 60 % + - 10px ) " but got "160 % - 10px "
FAIL Compositing: property <--length-percentage-list> underlying [50px 60%] from add [10% 140px] to replace [110% 40px] at (-0.3) is [-20% 170px] assert_equals: expected "calc ( - 20 % + 65px ) calc ( 78 % + 170px ) " but got "- 20 % 170px "
FAIL Compositing: property <--length-percentage-list> underlying [50px 60%] from add [10% 140px] to replace [110% 40px] at (0) is [10% 140px] assert_equals: expected "calc ( 10 % + 50px ) calc ( 60 % + 140px ) " but got "10 % 140px "
FAIL Compositing: property <--length-percentage-list> underlying [50px 60%] from add [10% 140px] to replace [110% 40px] at (0.5) is [60% 90px] assert_equals: expected "calc ( 60 % + 25px ) calc ( 30 % + 90px ) " but got "60 % 90px "
PASS Compositing: property <--length-percentage-list> underlying [50px 60%] from add [10% 140px] to replace [110% 40px] at (1) is [110% 40px]
FAIL Compositing: property <--length-percentage-list> underlying [50px 60%] from add [10% 140px] to replace [110% 40px] at (1.5) is [160% -10px] assert_equals: expected "calc ( 160 % + - 25px ) calc ( - 30 % + - 10px ) " but got "160 % - 10px "
Harness: the test ran to completion.
...@@ -91,10 +91,6 @@ assertInterpolation({ ...@@ -91,10 +91,6 @@ assertInterpolation({
{at: 1.5, is: 'calc(150% + 150px)'} {at: 1.5, is: 'calc(150% + 150px)'}
]); ]);
// Composition and neutralKeyframe tests assume that composite:add means
// component-wise addition, which may or may not be the behavior we want.
// https://github.com/w3c/css-houdini-drafts/issues/799
assertInterpolation({ assertInterpolation({
property: '--length-percentage-list', property: '--length-percentage-list',
from: neutralKeyframe, from: neutralKeyframe,
......
This is a testharness.js-based test.
PASS This test uses interpolation-test.js.
PASS CSS Transitions: property <--length-list-comma> from [0px, 0px] to [10px, 100px] at (-0.3) is [-3px, -30px]
PASS CSS Transitions: property <--length-list-comma> from [0px, 0px] to [10px, 100px] at (0) is [0px, 0px]
PASS CSS Transitions: property <--length-list-comma> from [0px, 0px] to [10px, 100px] at (0.5) is [5px, 50px]
PASS CSS Transitions: property <--length-list-comma> from [0px, 0px] to [10px, 100px] at (1) is [10px, 100px]
PASS CSS Transitions: property <--length-list-comma> from [0px, 0px] to [10px, 100px] at (1.5) is [15px, 150px]
PASS CSS Transitions: property <--length-list-space> from [0px 0px] to [10px 100px] at (-0.3) is [-3px -30px]
PASS CSS Transitions: property <--length-list-space> from [0px 0px] to [10px 100px] at (0) is [0px 0px]
PASS CSS Transitions: property <--length-list-space> from [0px 0px] to [10px 100px] at (0.5) is [5px 50px]
PASS CSS Transitions: property <--length-list-space> from [0px 0px] to [10px 100px] at (1) is [10px 100px]
PASS CSS Transitions: property <--length-list-space> from [0px 0px] to [10px 100px] at (1.5) is [15px 150px]
PASS CSS Transitions: property <--length-list-comma> from [0px] to [10px, 100px] at (-0.3) is [10px, 100px]
PASS CSS Transitions: property <--length-list-comma> from [0px] to [10px, 100px] at (0) is [10px, 100px]
PASS CSS Transitions: property <--length-list-comma> from [0px] to [10px, 100px] at (0.3) is [10px, 100px]
PASS CSS Transitions: property <--length-list-comma> from [0px] to [10px, 100px] at (0.5) is [10px, 100px]
PASS CSS Transitions: property <--length-list-comma> from [0px] to [10px, 100px] at (0.6) is [10px, 100px]
PASS CSS Transitions: property <--length-list-comma> from [0px] to [10px, 100px] at (1) is [10px, 100px]
PASS CSS Transitions: property <--length-list-comma> from [0px] to [10px, 100px] at (1.5) is [10px, 100px]
PASS CSS Transitions: property <--length-list-comma> from [initial] to [10px] at (-0.3) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [initial] to [10px] at (0) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [initial] to [10px] at (0.3) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [initial] to [10px] at (0.5) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [initial] to [10px] at (0.6) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [initial] to [10px] at (1) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [initial] to [10px] at (1.5) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [unset] to [10px] at (-0.3) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [unset] to [10px] at (0) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [unset] to [10px] at (0.3) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [unset] to [10px] at (0.5) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [unset] to [10px] at (0.6) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [unset] to [10px] at (1) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [unset] to [10px] at (1.5) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [inherit] to [10px] at (-0.3) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [inherit] to [10px] at (0) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [inherit] to [10px] at (0.3) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [inherit] to [10px] at (0.5) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [inherit] to [10px] at (0.6) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [inherit] to [10px] at (1) is [10px]
PASS CSS Transitions: property <--length-list-comma> from [inherit] to [10px] at (1.5) is [10px]
PASS CSS Transitions: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (-0.3) is [10px, 100px, 1000px]
PASS CSS Transitions: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (0) is [10px, 100px, 1000px]
PASS CSS Transitions: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (0.3) is [10px, 100px, 1000px]
PASS CSS Transitions: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (0.5) is [10px, 100px, 1000px]
PASS CSS Transitions: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (0.6) is [10px, 100px, 1000px]
PASS CSS Transitions: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (1) is [10px, 100px, 1000px]
PASS CSS Transitions: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (1.5) is [10px, 100px, 1000px]
PASS CSS Animations: property <--length-list-comma> from [0px, 0px] to [10px, 100px] at (-0.3) is [-3px, -30px]
PASS CSS Animations: property <--length-list-comma> from [0px, 0px] to [10px, 100px] at (0) is [0px, 0px]
PASS CSS Animations: property <--length-list-comma> from [0px, 0px] to [10px, 100px] at (0.5) is [5px, 50px]
PASS CSS Animations: property <--length-list-comma> from [0px, 0px] to [10px, 100px] at (1) is [10px, 100px]
PASS CSS Animations: property <--length-list-comma> from [0px, 0px] to [10px, 100px] at (1.5) is [15px, 150px]
PASS CSS Animations: property <--length-list-space> from [0px 0px] to [10px 100px] at (-0.3) is [-3px -30px]
PASS CSS Animations: property <--length-list-space> from [0px 0px] to [10px 100px] at (0) is [0px 0px]
PASS CSS Animations: property <--length-list-space> from [0px 0px] to [10px 100px] at (0.5) is [5px 50px]
PASS CSS Animations: property <--length-list-space> from [0px 0px] to [10px 100px] at (1) is [10px 100px]
PASS CSS Animations: property <--length-list-space> from [0px 0px] to [10px 100px] at (1.5) is [15px 150px]
PASS CSS Animations: property <--length-list-comma> from [0px] to [10px, 100px] at (-0.3) is [0px]
PASS CSS Animations: property <--length-list-comma> from [0px] to [10px, 100px] at (0) is [0px]
PASS CSS Animations: property <--length-list-comma> from [0px] to [10px, 100px] at (0.3) is [0px]
PASS CSS Animations: property <--length-list-comma> from [0px] to [10px, 100px] at (0.5) is [10px, 100px]
PASS CSS Animations: property <--length-list-comma> from [0px] to [10px, 100px] at (0.6) is [10px, 100px]
PASS CSS Animations: property <--length-list-comma> from [0px] to [10px, 100px] at (1) is [10px, 100px]
PASS CSS Animations: property <--length-list-comma> from [0px] to [10px, 100px] at (1.5) is [10px, 100px]
PASS CSS Animations: property <--length-list-comma> from [initial] to [10px] at (-0.3) is [40px, 20px]
PASS CSS Animations: property <--length-list-comma> from [initial] to [10px] at (0) is [40px, 20px]
PASS CSS Animations: property <--length-list-comma> from [initial] to [10px] at (0.3) is [40px, 20px]
PASS CSS Animations: property <--length-list-comma> from [initial] to [10px] at (0.5) is [10px]
PASS CSS Animations: property <--length-list-comma> from [initial] to [10px] at (0.6) is [10px]
PASS CSS Animations: property <--length-list-comma> from [initial] to [10px] at (1) is [10px]
PASS CSS Animations: property <--length-list-comma> from [initial] to [10px] at (1.5) is [10px]
PASS CSS Animations: property <--length-list-comma> from [unset] to [10px] at (-0.3) is [40px, 20px]
PASS CSS Animations: property <--length-list-comma> from [unset] to [10px] at (0) is [40px, 20px]
PASS CSS Animations: property <--length-list-comma> from [unset] to [10px] at (0.3) is [40px, 20px]
PASS CSS Animations: property <--length-list-comma> from [unset] to [10px] at (0.5) is [10px]
PASS CSS Animations: property <--length-list-comma> from [unset] to [10px] at (0.6) is [10px]
PASS CSS Animations: property <--length-list-comma> from [unset] to [10px] at (1) is [10px]
PASS CSS Animations: property <--length-list-comma> from [unset] to [10px] at (1.5) is [10px]
PASS CSS Animations: property <--length-list-comma> from [inherit] to [10px] at (-0.3) is [30px, 300px]
PASS CSS Animations: property <--length-list-comma> from [inherit] to [10px] at (0) is [30px, 300px]
PASS CSS Animations: property <--length-list-comma> from [inherit] to [10px] at (0.3) is [30px, 300px]
PASS CSS Animations: property <--length-list-comma> from [inherit] to [10px] at (0.5) is [10px]
PASS CSS Animations: property <--length-list-comma> from [inherit] to [10px] at (0.6) is [10px]
PASS CSS Animations: property <--length-list-comma> from [inherit] to [10px] at (1) is [10px]
PASS CSS Animations: property <--length-list-comma> from [inherit] to [10px] at (1.5) is [10px]
FAIL CSS Animations: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (-0.3) is [0px, 0px] assert_equals: expected "40px , 400px " but got "0px , 0px "
FAIL CSS Animations: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (0) is [0px, 0px] assert_equals: expected "40px , 400px " but got "0px , 0px "
FAIL CSS Animations: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (0.3) is [0px, 0px] assert_equals: expected "40px , 400px " but got "0px , 0px "
PASS CSS Animations: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (0.5) is [10px, 100px, 1000px]
PASS CSS Animations: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (0.6) is [10px, 100px, 1000px]
PASS CSS Animations: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (1) is [10px, 100px, 1000px]
PASS CSS Animations: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (1.5) is [10px, 100px, 1000px]
PASS Web Animations: property <--length-list-comma> from [0px, 0px] to [10px, 100px] at (-0.3) is [-3px, -30px]
PASS Web Animations: property <--length-list-comma> from [0px, 0px] to [10px, 100px] at (0) is [0px, 0px]
PASS Web Animations: property <--length-list-comma> from [0px, 0px] to [10px, 100px] at (0.5) is [5px, 50px]
PASS Web Animations: property <--length-list-comma> from [0px, 0px] to [10px, 100px] at (1) is [10px, 100px]
PASS Web Animations: property <--length-list-comma> from [0px, 0px] to [10px, 100px] at (1.5) is [15px, 150px]
PASS Web Animations: property <--length-list-space> from [0px 0px] to [10px 100px] at (-0.3) is [-3px -30px]
PASS Web Animations: property <--length-list-space> from [0px 0px] to [10px 100px] at (0) is [0px 0px]
PASS Web Animations: property <--length-list-space> from [0px 0px] to [10px 100px] at (0.5) is [5px 50px]
PASS Web Animations: property <--length-list-space> from [0px 0px] to [10px 100px] at (1) is [10px 100px]
PASS Web Animations: property <--length-list-space> from [0px 0px] to [10px 100px] at (1.5) is [15px 150px]
PASS Web Animations: property <--length-list-comma> from [0px] to [10px, 100px] at (-0.3) is [0px]
PASS Web Animations: property <--length-list-comma> from [0px] to [10px, 100px] at (0) is [0px]
PASS Web Animations: property <--length-list-comma> from [0px] to [10px, 100px] at (0.3) is [0px]
PASS Web Animations: property <--length-list-comma> from [0px] to [10px, 100px] at (0.5) is [10px, 100px]
PASS Web Animations: property <--length-list-comma> from [0px] to [10px, 100px] at (0.6) is [10px, 100px]
PASS Web Animations: property <--length-list-comma> from [0px] to [10px, 100px] at (1) is [10px, 100px]
PASS Web Animations: property <--length-list-comma> from [0px] to [10px, 100px] at (1.5) is [10px, 100px]
PASS Web Animations: property <--length-list-comma> from [initial] to [10px] at (-0.3) is [40px, 20px]
PASS Web Animations: property <--length-list-comma> from [initial] to [10px] at (0) is [40px, 20px]
PASS Web Animations: property <--length-list-comma> from [initial] to [10px] at (0.3) is [40px, 20px]
PASS Web Animations: property <--length-list-comma> from [initial] to [10px] at (0.5) is [10px]
PASS Web Animations: property <--length-list-comma> from [initial] to [10px] at (0.6) is [10px]
PASS Web Animations: property <--length-list-comma> from [initial] to [10px] at (1) is [10px]
PASS Web Animations: property <--length-list-comma> from [initial] to [10px] at (1.5) is [10px]
PASS Web Animations: property <--length-list-comma> from [unset] to [10px] at (-0.3) is [40px, 20px]
PASS Web Animations: property <--length-list-comma> from [unset] to [10px] at (0) is [40px, 20px]
PASS Web Animations: property <--length-list-comma> from [unset] to [10px] at (0.3) is [40px, 20px]
PASS Web Animations: property <--length-list-comma> from [unset] to [10px] at (0.5) is [10px]
PASS Web Animations: property <--length-list-comma> from [unset] to [10px] at (0.6) is [10px]
PASS Web Animations: property <--length-list-comma> from [unset] to [10px] at (1) is [10px]
PASS Web Animations: property <--length-list-comma> from [unset] to [10px] at (1.5) is [10px]
PASS Web Animations: property <--length-list-comma> from [inherit] to [10px] at (-0.3) is [30px, 300px]
PASS Web Animations: property <--length-list-comma> from [inherit] to [10px] at (0) is [30px, 300px]
PASS Web Animations: property <--length-list-comma> from [inherit] to [10px] at (0.3) is [30px, 300px]
PASS Web Animations: property <--length-list-comma> from [inherit] to [10px] at (0.5) is [10px]
PASS Web Animations: property <--length-list-comma> from [inherit] to [10px] at (0.6) is [10px]
PASS Web Animations: property <--length-list-comma> from [inherit] to [10px] at (1) is [10px]
PASS Web Animations: property <--length-list-comma> from [inherit] to [10px] at (1.5) is [10px]
FAIL Web Animations: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (-0.3) is [0px, 0px] assert_equals: expected "40px , 400px " but got "0px , 0px "
FAIL Web Animations: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (0) is [0px, 0px] assert_equals: expected "40px , 400px " but got "0px , 0px "
FAIL Web Animations: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (0.3) is [0px, 0px] assert_equals: expected "40px , 400px " but got "0px , 0px "
PASS Web Animations: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (0.5) is [10px, 100px, 1000px]
PASS Web Animations: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (0.6) is [10px, 100px, 1000px]
PASS Web Animations: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (1) is [10px, 100px, 1000px]
PASS Web Animations: property <--length-list-comma> from neutral to [10px, 100px, 1000px] at (1.5) is [10px, 100px, 1000px]
PASS Compositing: property <--length-list-space> underlying [50px] from add [10px 10px] to add [100px 100px] at (-0.3) is [-17px -17px]
PASS Compositing: property <--length-list-space> underlying [50px] from add [10px 10px] to add [100px 100px] at (0) is [10px 10px]
PASS Compositing: property <--length-list-space> underlying [50px] from add [10px 10px] to add [100px 100px] at (0.3) is [37px 37px]
PASS Compositing: property <--length-list-space> underlying [50px] from add [10px 10px] to add [100px 100px] at (0.5) is [55px 55px]
PASS Compositing: property <--length-list-space> underlying [50px] from add [10px 10px] to add [100px 100px] at (0.7) is [73px 73px]
PASS Compositing: property <--length-list-space> underlying [50px] from add [10px 10px] to add [100px 100px] at (1) is [100px 100px]
PASS Compositing: property <--length-list-space> underlying [50px] from add [10px 10px] to add [100px 100px] at (1.5) is [145px 145px]
FAIL Compositing: property <--length-list-space> underlying [50px 50px] from add [10px 10px] to add [100px] at (-0.3) is [10px 10px] assert_equals: expected "60px 60px " but got "10px 10px "
FAIL Compositing: property <--length-list-space> underlying [50px 50px] from add [10px 10px] to add [100px] at (0) is [10px 10px] assert_equals: expected "60px 60px " but got "10px 10px "
FAIL Compositing: property <--length-list-space> underlying [50px 50px] from add [10px 10px] to add [100px] at (0.3) is [10px 10px] assert_equals: expected "60px 60px " but got "10px 10px "
PASS Compositing: property <--length-list-space> underlying [50px 50px] from add [10px 10px] to add [100px] at (0.5) is [100px]
PASS Compositing: property <--length-list-space> underlying [50px 50px] from add [10px 10px] to add [100px] at (0.7) is [100px]
PASS Compositing: property <--length-list-space> underlying [50px 50px] from add [10px 10px] to add [100px] at (1) is [100px]
PASS Compositing: property <--length-list-space> underlying [50px 50px] from add [10px 10px] to add [100px] at (1.5) is [100px]
FAIL Compositing: property <--length-list-space> underlying [50px 50px] from add [10px 10px] to replace [100px] at (-0.3) is [10px 10px] assert_equals: expected "60px 60px " but got "10px 10px "
FAIL Compositing: property <--length-list-space> underlying [50px 50px] from add [10px 10px] to replace [100px] at (0) is [10px 10px] assert_equals: expected "60px 60px " but got "10px 10px "
FAIL Compositing: property <--length-list-space> underlying [50px 50px] from add [10px 10px] to replace [100px] at (0.3) is [10px 10px] assert_equals: expected "60px 60px " but got "10px 10px "
PASS Compositing: property <--length-list-space> underlying [50px 50px] from add [10px 10px] to replace [100px] at (0.5) is [100px]
PASS Compositing: property <--length-list-space> underlying [50px 50px] from add [10px 10px] to replace [100px] at (0.7) is [100px]
PASS Compositing: property <--length-list-space> underlying [50px 50px] from add [10px 10px] to replace [100px] at (1) is [100px]
PASS Compositing: property <--length-list-space> underlying [50px 50px] from add [10px 10px] to replace [100px] at (1.5) is [100px]
Harness: the test ran to completion.
...@@ -86,10 +86,6 @@ assertNoInterpolation({ ...@@ -86,10 +86,6 @@ assertNoInterpolation({
to: '10px' to: '10px'
}); });
// Composition tests assume that composite:add mean component-wise addition,
// which may or may not be the behavior we want.
// https://github.com/w3c/css-houdini-drafts/issues/799
// Verify that lists of different lengths don't interpolate: // Verify that lists of different lengths don't interpolate:
assertNoInterpolation({ assertNoInterpolation({
......
This is a testharness.js-based test.
PASS This test uses interpolation-test.js.
PASS CSS Transitions: property <--number-list> from [initial] to [20 200] at (-0.3) is [46 460]
PASS CSS Transitions: property <--number-list> from [initial] to [20 200] at (0) is [40 400]
PASS CSS Transitions: property <--number-list> from [initial] to [20 200] at (0.5) is [30 300]
PASS CSS Transitions: property <--number-list> from [initial] to [20 200] at (1) is [20 200]
PASS CSS Transitions: property <--number-list> from [initial] to [20 200] at (1.5) is [10 100]
PASS CSS Transitions: property <--number-list> from [inherit] to [20 200] at (-0.3) is [33 330]
PASS CSS Transitions: property <--number-list> from [inherit] to [20 200] at (0) is [30 300]
PASS CSS Transitions: property <--number-list> from [inherit] to [20 200] at (0.5) is [25 250]
PASS CSS Transitions: property <--number-list> from [inherit] to [20 200] at (1) is [20 200]
PASS CSS Transitions: property <--number-list> from [inherit] to [20 200] at (1.5) is [15 150]
PASS CSS Transitions: property <--number-list> from [unset] to [20 200] at (-0.3) is [46 460]
PASS CSS Transitions: property <--number-list> from [unset] to [20 200] at (0) is [40 400]
PASS CSS Transitions: property <--number-list> from [unset] to [20 200] at (0.5) is [30 300]
PASS CSS Transitions: property <--number-list> from [unset] to [20 200] at (1) is [20 200]
PASS CSS Transitions: property <--number-list> from [unset] to [20 200] at (1.5) is [10 100]
PASS CSS Transitions: property <--number-list> from [-10 -100] to [10 100] at (-0.3) is [-16 -160]
PASS CSS Transitions: property <--number-list> from [-10 -100] to [10 100] at (0) is [-10 -100]
PASS CSS Transitions: property <--number-list> from [-10 -100] to [10 100] at (0.5) is [0 0]
PASS CSS Transitions: property <--number-list> from [-10 -100] to [10 100] at (1) is [10 100]
PASS CSS Transitions: property <--number-list> from [-10 -100] to [10 100] at (1.5) is [20 200]
PASS CSS Transitions: property <--number-list> from [10] to [100] at (-0.3) is [-17]
PASS CSS Transitions: property <--number-list> from [10] to [100] at (0) is [10]
PASS CSS Transitions: property <--number-list> from [10] to [100] at (0.5) is [55]
PASS CSS Transitions: property <--number-list> from [10] to [100] at (1) is [100]
PASS CSS Transitions: property <--number-list> from [10] to [100] at (1.5) is [145]
PASS CSS Transitions: property <--number-list> from neutral to [20 200] at (-0.3) is [7 70]
PASS CSS Transitions: property <--number-list> from neutral to [20 200] at (0) is [10 100]
PASS CSS Transitions: property <--number-list> from neutral to [20 200] at (0.5) is [15 150]
PASS CSS Transitions: property <--number-list> from neutral to [20 200] at (1) is [20 200]
PASS CSS Transitions: property <--number-list> from neutral to [20 200] at (1.5) is [25 250]
PASS CSS Animations: property <--number-list> from [initial] to [20 200] at (-0.3) is [46 460]
PASS CSS Animations: property <--number-list> from [initial] to [20 200] at (0) is [40 400]
PASS CSS Animations: property <--number-list> from [initial] to [20 200] at (0.5) is [30 300]
PASS CSS Animations: property <--number-list> from [initial] to [20 200] at (1) is [20 200]
PASS CSS Animations: property <--number-list> from [initial] to [20 200] at (1.5) is [10 100]
PASS CSS Animations: property <--number-list> from [inherit] to [20 200] at (-0.3) is [33 330]
PASS CSS Animations: property <--number-list> from [inherit] to [20 200] at (0) is [30 300]
PASS CSS Animations: property <--number-list> from [inherit] to [20 200] at (0.5) is [25 250]
PASS CSS Animations: property <--number-list> from [inherit] to [20 200] at (1) is [20 200]
PASS CSS Animations: property <--number-list> from [inherit] to [20 200] at (1.5) is [15 150]
PASS CSS Animations: property <--number-list> from [unset] to [20 200] at (-0.3) is [46 460]
PASS CSS Animations: property <--number-list> from [unset] to [20 200] at (0) is [40 400]
PASS CSS Animations: property <--number-list> from [unset] to [20 200] at (0.5) is [30 300]
PASS CSS Animations: property <--number-list> from [unset] to [20 200] at (1) is [20 200]
PASS CSS Animations: property <--number-list> from [unset] to [20 200] at (1.5) is [10 100]
PASS CSS Animations: property <--number-list> from [-10 -100] to [10 100] at (-0.3) is [-16 -160]
PASS CSS Animations: property <--number-list> from [-10 -100] to [10 100] at (0) is [-10 -100]
PASS CSS Animations: property <--number-list> from [-10 -100] to [10 100] at (0.5) is [0 0]
PASS CSS Animations: property <--number-list> from [-10 -100] to [10 100] at (1) is [10 100]
PASS CSS Animations: property <--number-list> from [-10 -100] to [10 100] at (1.5) is [20 200]
PASS CSS Animations: property <--number-list> from [10] to [100] at (-0.3) is [-17]
PASS CSS Animations: property <--number-list> from [10] to [100] at (0) is [10]
PASS CSS Animations: property <--number-list> from [10] to [100] at (0.5) is [55]
PASS CSS Animations: property <--number-list> from [10] to [100] at (1) is [100]
PASS CSS Animations: property <--number-list> from [10] to [100] at (1.5) is [145]
FAIL CSS Animations: property <--number-list> from neutral to [20 200] at (-0.3) is [-6 -60] assert_equals: expected "7 70 " but got "- 6 - 60 "
FAIL CSS Animations: property <--number-list> from neutral to [20 200] at (0) is [0 0] assert_equals: expected "10 100 " but got "0 0 "
FAIL CSS Animations: property <--number-list> from neutral to [20 200] at (0.5) is [10 100] assert_equals: expected "15 150 " but got "10 100 "
PASS CSS Animations: property <--number-list> from neutral to [20 200] at (1) is [20 200]
FAIL CSS Animations: property <--number-list> from neutral to [20 200] at (1.5) is [30 300] assert_equals: expected "25 250 " but got "30 300 "
PASS Web Animations: property <--number-list> from [initial] to [20 200] at (-0.3) is [46 460]
PASS Web Animations: property <--number-list> from [initial] to [20 200] at (0) is [40 400]
PASS Web Animations: property <--number-list> from [initial] to [20 200] at (0.5) is [30 300]
PASS Web Animations: property <--number-list> from [initial] to [20 200] at (1) is [20 200]
PASS Web Animations: property <--number-list> from [initial] to [20 200] at (1.5) is [10 100]
PASS Web Animations: property <--number-list> from [inherit] to [20 200] at (-0.3) is [33 330]
PASS Web Animations: property <--number-list> from [inherit] to [20 200] at (0) is [30 300]
PASS Web Animations: property <--number-list> from [inherit] to [20 200] at (0.5) is [25 250]
PASS Web Animations: property <--number-list> from [inherit] to [20 200] at (1) is [20 200]
PASS Web Animations: property <--number-list> from [inherit] to [20 200] at (1.5) is [15 150]
PASS Web Animations: property <--number-list> from [unset] to [20 200] at (-0.3) is [46 460]
PASS Web Animations: property <--number-list> from [unset] to [20 200] at (0) is [40 400]
PASS Web Animations: property <--number-list> from [unset] to [20 200] at (0.5) is [30 300]
PASS Web Animations: property <--number-list> from [unset] to [20 200] at (1) is [20 200]
PASS Web Animations: property <--number-list> from [unset] to [20 200] at (1.5) is [10 100]
PASS Web Animations: property <--number-list> from [-10 -100] to [10 100] at (-0.3) is [-16 -160]
PASS Web Animations: property <--number-list> from [-10 -100] to [10 100] at (0) is [-10 -100]
PASS Web Animations: property <--number-list> from [-10 -100] to [10 100] at (0.5) is [0 0]
PASS Web Animations: property <--number-list> from [-10 -100] to [10 100] at (1) is [10 100]
PASS Web Animations: property <--number-list> from [-10 -100] to [10 100] at (1.5) is [20 200]
PASS Web Animations: property <--number-list> from [10] to [100] at (-0.3) is [-17]
PASS Web Animations: property <--number-list> from [10] to [100] at (0) is [10]
PASS Web Animations: property <--number-list> from [10] to [100] at (0.5) is [55]
PASS Web Animations: property <--number-list> from [10] to [100] at (1) is [100]
PASS Web Animations: property <--number-list> from [10] to [100] at (1.5) is [145]
FAIL Web Animations: property <--number-list> from neutral to [20 200] at (-0.3) is [-6 -60] assert_equals: expected "7 70 " but got "- 6 - 60 "
FAIL Web Animations: property <--number-list> from neutral to [20 200] at (0) is [0 0] assert_equals: expected "10 100 " but got "0 0 "
FAIL Web Animations: property <--number-list> from neutral to [20 200] at (0.5) is [10 100] assert_equals: expected "15 150 " but got "10 100 "
PASS Web Animations: property <--number-list> from neutral to [20 200] at (1) is [20 200]
FAIL Web Animations: property <--number-list> from neutral to [20 200] at (1.5) is [30 300] assert_equals: expected "25 250 " but got "30 300 "
FAIL Compositing: property <--number-list> underlying [50 60] from add [10 140] to add [110 40] at (-0.3) is [-20 170] assert_equals: expected "30 230 " but got "- 20 170 "
FAIL Compositing: property <--number-list> underlying [50 60] from add [10 140] to add [110 40] at (0) is [10 140] assert_equals: expected "60 200 " but got "10 140 "
FAIL Compositing: property <--number-list> underlying [50 60] from add [10 140] to add [110 40] at (0.5) is [60 90] assert_equals: expected "110 150 " but got "60 90 "
FAIL Compositing: property <--number-list> underlying [50 60] from add [10 140] to add [110 40] at (1) is [110 40] assert_equals: expected "160 100 " but got "110 40 "
FAIL Compositing: property <--number-list> underlying [50 60] from add [10 140] to add [110 40] at (1.5) is [160 -10] assert_equals: expected "210 50 " but got "160 - 10 "
FAIL Compositing: property <--number-list> underlying [50 60] from add [10 140] to replace [110 40] at (-0.3) is [-20 170] assert_equals: expected "45 248 " but got "- 20 170 "
FAIL Compositing: property <--number-list> underlying [50 60] from add [10 140] to replace [110 40] at (0) is [10 140] assert_equals: expected "60 200 " but got "10 140 "
FAIL Compositing: property <--number-list> underlying [50 60] from add [10 140] to replace [110 40] at (0.5) is [60 90] assert_equals: expected "85 120 " but got "60 90 "
PASS Compositing: property <--number-list> underlying [50 60] from add [10 140] to replace [110 40] at (1) is [110 40]
FAIL Compositing: property <--number-list> underlying [50 60] from add [10 140] to replace [110 40] at (1.5) is [160 -10] assert_equals: expected "135 - 40 " but got "160 - 10 "
Harness: the test ran to completion.
...@@ -78,10 +78,6 @@ assertInterpolation({ ...@@ -78,10 +78,6 @@ assertInterpolation({
{at: 1.5, is: '145'} {at: 1.5, is: '145'}
]); ]);
// Composition and neutralKeyframe tests assume that composite:add means
// component-wise addition, which may or may not be the behavior we want.
// https://github.com/w3c/css-houdini-drafts/issues/799
assertInterpolation({ assertInterpolation({
property: '--number-list', property: '--number-list',
from: neutralKeyframe, from: neutralKeyframe,
......
This is a testharness.js-based test.
PASS This test uses interpolation-test.js.
PASS CSS Transitions: property <--percentage-list> from [initial] to [20% 200%] at (-0.3) is [46% 460%]
PASS CSS Transitions: property <--percentage-list> from [initial] to [20% 200%] at (0) is [40% 400%]
PASS CSS Transitions: property <--percentage-list> from [initial] to [20% 200%] at (0.5) is [30% 300%]
PASS CSS Transitions: property <--percentage-list> from [initial] to [20% 200%] at (1) is [20% 200%]
PASS CSS Transitions: property <--percentage-list> from [initial] to [20% 200%] at (1.5) is [10% 100%]
PASS CSS Transitions: property <--percentage-list> from [inherit] to [20% 200%] at (-0.3) is [33% 330%]
PASS CSS Transitions: property <--percentage-list> from [inherit] to [20% 200%] at (0) is [30% 300%]
PASS CSS Transitions: property <--percentage-list> from [inherit] to [20% 200%] at (0.5) is [25% 250%]
PASS CSS Transitions: property <--percentage-list> from [inherit] to [20% 200%] at (1) is [20% 200%]
PASS CSS Transitions: property <--percentage-list> from [inherit] to [20% 200%] at (1.5) is [15% 150%]
PASS CSS Transitions: property <--percentage-list> from [unset] to [20% 200%] at (-0.3) is [46% 460%]
PASS CSS Transitions: property <--percentage-list> from [unset] to [20% 200%] at (0) is [40% 400%]
PASS CSS Transitions: property <--percentage-list> from [unset] to [20% 200%] at (0.5) is [30% 300%]
PASS CSS Transitions: property <--percentage-list> from [unset] to [20% 200%] at (1) is [20% 200%]
PASS CSS Transitions: property <--percentage-list> from [unset] to [20% 200%] at (1.5) is [10% 100%]
PASS CSS Transitions: property <--percentage-list> from [-10% -100%] to [10% 100%] at (-0.3) is [-16% -160%]
PASS CSS Transitions: property <--percentage-list> from [-10% -100%] to [10% 100%] at (0) is [-10% -100%]
PASS CSS Transitions: property <--percentage-list> from [-10% -100%] to [10% 100%] at (0.5) is [0% 0%]
PASS CSS Transitions: property <--percentage-list> from [-10% -100%] to [10% 100%] at (1) is [10% 100%]
PASS CSS Transitions: property <--percentage-list> from [-10% -100%] to [10% 100%] at (1.5) is [20% 200%]
PASS CSS Transitions: property <--percentage-list> from [10%] to [100%] at (-0.3) is [-17%]
PASS CSS Transitions: property <--percentage-list> from [10%] to [100%] at (0) is [10%]
PASS CSS Transitions: property <--percentage-list> from [10%] to [100%] at (0.5) is [55%]
PASS CSS Transitions: property <--percentage-list> from [10%] to [100%] at (1) is [100%]
PASS CSS Transitions: property <--percentage-list> from [10%] to [100%] at (1.5) is [145%]
PASS CSS Transitions: property <--percentage-list> from neutral to [20% 200%] at (-0.3) is [7% 70%]
PASS CSS Transitions: property <--percentage-list> from neutral to [20% 200%] at (0) is [10% 100%]
PASS CSS Transitions: property <--percentage-list> from neutral to [20% 200%] at (0.5) is [15% 150%]
PASS CSS Transitions: property <--percentage-list> from neutral to [20% 200%] at (1) is [20% 200%]
PASS CSS Transitions: property <--percentage-list> from neutral to [20% 200%] at (1.5) is [25% 250%]
PASS CSS Animations: property <--percentage-list> from [initial] to [20% 200%] at (-0.3) is [46% 460%]
PASS CSS Animations: property <--percentage-list> from [initial] to [20% 200%] at (0) is [40% 400%]
PASS CSS Animations: property <--percentage-list> from [initial] to [20% 200%] at (0.5) is [30% 300%]
PASS CSS Animations: property <--percentage-list> from [initial] to [20% 200%] at (1) is [20% 200%]
PASS CSS Animations: property <--percentage-list> from [initial] to [20% 200%] at (1.5) is [10% 100%]
PASS CSS Animations: property <--percentage-list> from [inherit] to [20% 200%] at (-0.3) is [33% 330%]
PASS CSS Animations: property <--percentage-list> from [inherit] to [20% 200%] at (0) is [30% 300%]
PASS CSS Animations: property <--percentage-list> from [inherit] to [20% 200%] at (0.5) is [25% 250%]
PASS CSS Animations: property <--percentage-list> from [inherit] to [20% 200%] at (1) is [20% 200%]
PASS CSS Animations: property <--percentage-list> from [inherit] to [20% 200%] at (1.5) is [15% 150%]
PASS CSS Animations: property <--percentage-list> from [unset] to [20% 200%] at (-0.3) is [46% 460%]
PASS CSS Animations: property <--percentage-list> from [unset] to [20% 200%] at (0) is [40% 400%]
PASS CSS Animations: property <--percentage-list> from [unset] to [20% 200%] at (0.5) is [30% 300%]
PASS CSS Animations: property <--percentage-list> from [unset] to [20% 200%] at (1) is [20% 200%]
PASS CSS Animations: property <--percentage-list> from [unset] to [20% 200%] at (1.5) is [10% 100%]
PASS CSS Animations: property <--percentage-list> from [-10% -100%] to [10% 100%] at (-0.3) is [-16% -160%]
PASS CSS Animations: property <--percentage-list> from [-10% -100%] to [10% 100%] at (0) is [-10% -100%]
PASS CSS Animations: property <--percentage-list> from [-10% -100%] to [10% 100%] at (0.5) is [0% 0%]
PASS CSS Animations: property <--percentage-list> from [-10% -100%] to [10% 100%] at (1) is [10% 100%]
PASS CSS Animations: property <--percentage-list> from [-10% -100%] to [10% 100%] at (1.5) is [20% 200%]
PASS CSS Animations: property <--percentage-list> from [10%] to [100%] at (-0.3) is [-17%]
PASS CSS Animations: property <--percentage-list> from [10%] to [100%] at (0) is [10%]
PASS CSS Animations: property <--percentage-list> from [10%] to [100%] at (0.5) is [55%]
PASS CSS Animations: property <--percentage-list> from [10%] to [100%] at (1) is [100%]
PASS CSS Animations: property <--percentage-list> from [10%] to [100%] at (1.5) is [145%]
FAIL CSS Animations: property <--percentage-list> from neutral to [20% 200%] at (-0.3) is [-6% -60%] assert_equals: expected "7 % 70 % " but got "- 6 % - 60 % "
FAIL CSS Animations: property <--percentage-list> from neutral to [20% 200%] at (0) is [0% 0%] assert_equals: expected "10 % 100 % " but got "0 % 0 % "
FAIL CSS Animations: property <--percentage-list> from neutral to [20% 200%] at (0.5) is [10% 100%] assert_equals: expected "15 % 150 % " but got "10 % 100 % "
PASS CSS Animations: property <--percentage-list> from neutral to [20% 200%] at (1) is [20% 200%]
FAIL CSS Animations: property <--percentage-list> from neutral to [20% 200%] at (1.5) is [30% 300%] assert_equals: expected "25 % 250 % " but got "30 % 300 % "
PASS Web Animations: property <--percentage-list> from [initial] to [20% 200%] at (-0.3) is [46% 460%]
PASS Web Animations: property <--percentage-list> from [initial] to [20% 200%] at (0) is [40% 400%]
PASS Web Animations: property <--percentage-list> from [initial] to [20% 200%] at (0.5) is [30% 300%]
PASS Web Animations: property <--percentage-list> from [initial] to [20% 200%] at (1) is [20% 200%]
PASS Web Animations: property <--percentage-list> from [initial] to [20% 200%] at (1.5) is [10% 100%]
PASS Web Animations: property <--percentage-list> from [inherit] to [20% 200%] at (-0.3) is [33% 330%]
PASS Web Animations: property <--percentage-list> from [inherit] to [20% 200%] at (0) is [30% 300%]
PASS Web Animations: property <--percentage-list> from [inherit] to [20% 200%] at (0.5) is [25% 250%]
PASS Web Animations: property <--percentage-list> from [inherit] to [20% 200%] at (1) is [20% 200%]
PASS Web Animations: property <--percentage-list> from [inherit] to [20% 200%] at (1.5) is [15% 150%]
PASS Web Animations: property <--percentage-list> from [unset] to [20% 200%] at (-0.3) is [46% 460%]
PASS Web Animations: property <--percentage-list> from [unset] to [20% 200%] at (0) is [40% 400%]
PASS Web Animations: property <--percentage-list> from [unset] to [20% 200%] at (0.5) is [30% 300%]
PASS Web Animations: property <--percentage-list> from [unset] to [20% 200%] at (1) is [20% 200%]
PASS Web Animations: property <--percentage-list> from [unset] to [20% 200%] at (1.5) is [10% 100%]
PASS Web Animations: property <--percentage-list> from [-10% -100%] to [10% 100%] at (-0.3) is [-16% -160%]
PASS Web Animations: property <--percentage-list> from [-10% -100%] to [10% 100%] at (0) is [-10% -100%]
PASS Web Animations: property <--percentage-list> from [-10% -100%] to [10% 100%] at (0.5) is [0% 0%]
PASS Web Animations: property <--percentage-list> from [-10% -100%] to [10% 100%] at (1) is [10% 100%]
PASS Web Animations: property <--percentage-list> from [-10% -100%] to [10% 100%] at (1.5) is [20% 200%]
PASS Web Animations: property <--percentage-list> from [10%] to [100%] at (-0.3) is [-17%]
PASS Web Animations: property <--percentage-list> from [10%] to [100%] at (0) is [10%]
PASS Web Animations: property <--percentage-list> from [10%] to [100%] at (0.5) is [55%]
PASS Web Animations: property <--percentage-list> from [10%] to [100%] at (1) is [100%]
PASS Web Animations: property <--percentage-list> from [10%] to [100%] at (1.5) is [145%]
FAIL Web Animations: property <--percentage-list> from neutral to [20% 200%] at (-0.3) is [-6% -60%] assert_equals: expected "7 % 70 % " but got "- 6 % - 60 % "
FAIL Web Animations: property <--percentage-list> from neutral to [20% 200%] at (0) is [0% 0%] assert_equals: expected "10 % 100 % " but got "0 % 0 % "
FAIL Web Animations: property <--percentage-list> from neutral to [20% 200%] at (0.5) is [10% 100%] assert_equals: expected "15 % 150 % " but got "10 % 100 % "
PASS Web Animations: property <--percentage-list> from neutral to [20% 200%] at (1) is [20% 200%]
FAIL Web Animations: property <--percentage-list> from neutral to [20% 200%] at (1.5) is [30% 300%] assert_equals: expected "25 % 250 % " but got "30 % 300 % "
FAIL Compositing: property <--percentage-list> underlying [50% 60%] from add [10% 140%] to add [110% 40%] at (-0.3) is [-20% 170%] assert_equals: expected "30 % 230 % " but got "- 20 % 170 % "
FAIL Compositing: property <--percentage-list> underlying [50% 60%] from add [10% 140%] to add [110% 40%] at (0) is [10% 140%] assert_equals: expected "60 % 200 % " but got "10 % 140 % "
FAIL Compositing: property <--percentage-list> underlying [50% 60%] from add [10% 140%] to add [110% 40%] at (0.5) is [60% 90%] assert_equals: expected "110 % 150 % " but got "60 % 90 % "
FAIL Compositing: property <--percentage-list> underlying [50% 60%] from add [10% 140%] to add [110% 40%] at (1) is [110% 40%] assert_equals: expected "160 % 100 % " but got "110 % 40 % "
FAIL Compositing: property <--percentage-list> underlying [50% 60%] from add [10% 140%] to add [110% 40%] at (1.5) is [160% -10%] assert_equals: expected "210 % 50 % " but got "160 % - 10 % "
FAIL Compositing: property <--percentage-list> underlying [50% 60%] from add [10% 140%] to replace [110% 40%] at (-0.3) is [-20% 170%] assert_equals: expected "45 % 248 % " but got "- 20 % 170 % "
FAIL Compositing: property <--percentage-list> underlying [50% 60%] from add [10% 140%] to replace [110% 40%] at (0) is [10% 140%] assert_equals: expected "60 % 200 % " but got "10 % 140 % "
FAIL Compositing: property <--percentage-list> underlying [50% 60%] from add [10% 140%] to replace [110% 40%] at (0.5) is [60% 90%] assert_equals: expected "85 % 120 % " but got "60 % 90 % "
PASS Compositing: property <--percentage-list> underlying [50% 60%] from add [10% 140%] to replace [110% 40%] at (1) is [110% 40%]
FAIL Compositing: property <--percentage-list> underlying [50% 60%] from add [10% 140%] to replace [110% 40%] at (1.5) is [160% -10%] assert_equals: expected "135 % - 40 % " but got "160 % - 10 % "
Harness: the test ran to completion.
...@@ -78,10 +78,6 @@ assertInterpolation({ ...@@ -78,10 +78,6 @@ assertInterpolation({
{at: 1.5, is: '145%'} {at: 1.5, is: '145%'}
]); ]);
// Composition and neutralKeyframe tests assume that composite:add means
// component-wise addition, which may or may not be the behavior we want.
// https://github.com/w3c/css-houdini-drafts/issues/799
assertInterpolation({ assertInterpolation({
property: '--percentage-list', property: '--percentage-list',
from: neutralKeyframe, from: neutralKeyframe,
......
This is a testharness.js-based test.
PASS This test uses interpolation-test.js.
PASS CSS Transitions: property <--resolution-list> from [initial] to [20dppx 200dppx] at (-0.3) is [46dppx 460dppx]
PASS CSS Transitions: property <--resolution-list> from [initial] to [20dppx 200dppx] at (0) is [40dppx 400dppx]
PASS CSS Transitions: property <--resolution-list> from [initial] to [20dppx 200dppx] at (0.5) is [30dppx 300dppx]
PASS CSS Transitions: property <--resolution-list> from [initial] to [20dppx 200dppx] at (1) is [20dppx 200dppx]
PASS CSS Transitions: property <--resolution-list> from [initial] to [20dppx 200dppx] at (1.5) is [10dppx 100dppx]
PASS CSS Transitions: property <--resolution-list> from [inherit] to [20dppx 200dppx] at (-0.3) is [33dppx 330dppx]
PASS CSS Transitions: property <--resolution-list> from [inherit] to [20dppx 200dppx] at (0) is [30dppx 300dppx]
PASS CSS Transitions: property <--resolution-list> from [inherit] to [20dppx 200dppx] at (0.5) is [25dppx 250dppx]
PASS CSS Transitions: property <--resolution-list> from [inherit] to [20dppx 200dppx] at (1) is [20dppx 200dppx]
PASS CSS Transitions: property <--resolution-list> from [inherit] to [20dppx 200dppx] at (1.5) is [15dppx 150dppx]
PASS CSS Transitions: property <--resolution-list> from [unset] to [20dppx 200dppx] at (-0.3) is [46dppx 460dppx]
PASS CSS Transitions: property <--resolution-list> from [unset] to [20dppx 200dppx] at (0) is [40dppx 400dppx]
PASS CSS Transitions: property <--resolution-list> from [unset] to [20dppx 200dppx] at (0.5) is [30dppx 300dppx]
PASS CSS Transitions: property <--resolution-list> from [unset] to [20dppx 200dppx] at (1) is [20dppx 200dppx]
PASS CSS Transitions: property <--resolution-list> from [unset] to [20dppx 200dppx] at (1.5) is [10dppx 100dppx]
PASS CSS Transitions: property <--resolution-list> from [-10dppx -100dppx] to [10dppx 100dppx] at (-0.3) is [-16dppx -160dppx]
PASS CSS Transitions: property <--resolution-list> from [-10dppx -100dppx] to [10dppx 100dppx] at (0) is [-10dppx -100dppx]
PASS CSS Transitions: property <--resolution-list> from [-10dppx -100dppx] to [10dppx 100dppx] at (0.5) is [0dppx 0dppx]
PASS CSS Transitions: property <--resolution-list> from [-10dppx -100dppx] to [10dppx 100dppx] at (1) is [10dppx 100dppx]
PASS CSS Transitions: property <--resolution-list> from [-10dppx -100dppx] to [10dppx 100dppx] at (1.5) is [20dppx 200dppx]
PASS CSS Transitions: property <--resolution-list> from [10dppx] to [100dppx] at (-0.3) is [-17dppx]
PASS CSS Transitions: property <--resolution-list> from [10dppx] to [100dppx] at (0) is [10dppx]
PASS CSS Transitions: property <--resolution-list> from [10dppx] to [100dppx] at (0.5) is [55dppx]
PASS CSS Transitions: property <--resolution-list> from [10dppx] to [100dppx] at (1) is [100dppx]
PASS CSS Transitions: property <--resolution-list> from [10dppx] to [100dppx] at (1.5) is [145dppx]
PASS CSS Transitions: property <--resolution-list> from [96dpi 192dpi] to [2dppx 2dppx] at (-0.3) is [0.7dppx 2dppx]
PASS CSS Transitions: property <--resolution-list> from [96dpi 192dpi] to [2dppx 2dppx] at (0) is [1dppx 2dppx]
PASS CSS Transitions: property <--resolution-list> from [96dpi 192dpi] to [2dppx 2dppx] at (0.5) is [1.5dppx 2dppx]
PASS CSS Transitions: property <--resolution-list> from [96dpi 192dpi] to [2dppx 2dppx] at (1) is [2dppx 2dppx]
PASS CSS Transitions: property <--resolution-list> from [96dpi 192dpi] to [2dppx 2dppx] at (1.5) is [2.5dppx 2dppx]
PASS CSS Transitions: property <--resolution-list> from neutral to [20dppx 200dppx] at (-0.3) is [7dppx 70dppx]
PASS CSS Transitions: property <--resolution-list> from neutral to [20dppx 200dppx] at (0) is [10dppx 100dppx]
PASS CSS Transitions: property <--resolution-list> from neutral to [20dppx 200dppx] at (0.5) is [15dppx 150dppx]
PASS CSS Transitions: property <--resolution-list> from neutral to [20dppx 200dppx] at (1) is [20dppx 200dppx]
PASS CSS Transitions: property <--resolution-list> from neutral to [20dppx 200dppx] at (1.5) is [25dppx 250dppx]
PASS CSS Animations: property <--resolution-list> from [initial] to [20dppx 200dppx] at (-0.3) is [46dppx 460dppx]
PASS CSS Animations: property <--resolution-list> from [initial] to [20dppx 200dppx] at (0) is [40dppx 400dppx]
PASS CSS Animations: property <--resolution-list> from [initial] to [20dppx 200dppx] at (0.5) is [30dppx 300dppx]
PASS CSS Animations: property <--resolution-list> from [initial] to [20dppx 200dppx] at (1) is [20dppx 200dppx]
PASS CSS Animations: property <--resolution-list> from [initial] to [20dppx 200dppx] at (1.5) is [10dppx 100dppx]
PASS CSS Animations: property <--resolution-list> from [inherit] to [20dppx 200dppx] at (-0.3) is [33dppx 330dppx]
PASS CSS Animations: property <--resolution-list> from [inherit] to [20dppx 200dppx] at (0) is [30dppx 300dppx]
PASS CSS Animations: property <--resolution-list> from [inherit] to [20dppx 200dppx] at (0.5) is [25dppx 250dppx]
PASS CSS Animations: property <--resolution-list> from [inherit] to [20dppx 200dppx] at (1) is [20dppx 200dppx]
PASS CSS Animations: property <--resolution-list> from [inherit] to [20dppx 200dppx] at (1.5) is [15dppx 150dppx]
PASS CSS Animations: property <--resolution-list> from [unset] to [20dppx 200dppx] at (-0.3) is [46dppx 460dppx]
PASS CSS Animations: property <--resolution-list> from [unset] to [20dppx 200dppx] at (0) is [40dppx 400dppx]
PASS CSS Animations: property <--resolution-list> from [unset] to [20dppx 200dppx] at (0.5) is [30dppx 300dppx]
PASS CSS Animations: property <--resolution-list> from [unset] to [20dppx 200dppx] at (1) is [20dppx 200dppx]
PASS CSS Animations: property <--resolution-list> from [unset] to [20dppx 200dppx] at (1.5) is [10dppx 100dppx]
PASS CSS Animations: property <--resolution-list> from [-10dppx -100dppx] to [10dppx 100dppx] at (-0.3) is [-16dppx -160dppx]
PASS CSS Animations: property <--resolution-list> from [-10dppx -100dppx] to [10dppx 100dppx] at (0) is [-10dppx -100dppx]
PASS CSS Animations: property <--resolution-list> from [-10dppx -100dppx] to [10dppx 100dppx] at (0.5) is [0dppx 0dppx]
PASS CSS Animations: property <--resolution-list> from [-10dppx -100dppx] to [10dppx 100dppx] at (1) is [10dppx 100dppx]
PASS CSS Animations: property <--resolution-list> from [-10dppx -100dppx] to [10dppx 100dppx] at (1.5) is [20dppx 200dppx]
PASS CSS Animations: property <--resolution-list> from [10dppx] to [100dppx] at (-0.3) is [-17dppx]
PASS CSS Animations: property <--resolution-list> from [10dppx] to [100dppx] at (0) is [10dppx]
PASS CSS Animations: property <--resolution-list> from [10dppx] to [100dppx] at (0.5) is [55dppx]
PASS CSS Animations: property <--resolution-list> from [10dppx] to [100dppx] at (1) is [100dppx]
PASS CSS Animations: property <--resolution-list> from [10dppx] to [100dppx] at (1.5) is [145dppx]
PASS CSS Animations: property <--resolution-list> from [96dpi 192dpi] to [2dppx 2dppx] at (-0.3) is [0.7dppx 2dppx]
PASS CSS Animations: property <--resolution-list> from [96dpi 192dpi] to [2dppx 2dppx] at (0) is [1dppx 2dppx]
PASS CSS Animations: property <--resolution-list> from [96dpi 192dpi] to [2dppx 2dppx] at (0.5) is [1.5dppx 2dppx]
PASS CSS Animations: property <--resolution-list> from [96dpi 192dpi] to [2dppx 2dppx] at (1) is [2dppx 2dppx]
PASS CSS Animations: property <--resolution-list> from [96dpi 192dpi] to [2dppx 2dppx] at (1.5) is [2.5dppx 2dppx]
FAIL CSS Animations: property <--resolution-list> from neutral to [20dppx 200dppx] at (-0.3) is [-6dppx -60dppx] assert_equals: expected "7dppx 70dppx " but got "- 6dppx - 60dppx "
FAIL CSS Animations: property <--resolution-list> from neutral to [20dppx 200dppx] at (0) is [0dppx 0dppx] assert_equals: expected "10dppx 100dppx " but got "0dppx 0dppx "
FAIL CSS Animations: property <--resolution-list> from neutral to [20dppx 200dppx] at (0.5) is [10dppx 100dppx] assert_equals: expected "15dppx 150dppx " but got "10dppx 100dppx "
PASS CSS Animations: property <--resolution-list> from neutral to [20dppx 200dppx] at (1) is [20dppx 200dppx]
FAIL CSS Animations: property <--resolution-list> from neutral to [20dppx 200dppx] at (1.5) is [30dppx 300dppx] assert_equals: expected "25dppx 250dppx " but got "30dppx 300dppx "
PASS Web Animations: property <--resolution-list> from [initial] to [20dppx 200dppx] at (-0.3) is [46dppx 460dppx]
PASS Web Animations: property <--resolution-list> from [initial] to [20dppx 200dppx] at (0) is [40dppx 400dppx]
PASS Web Animations: property <--resolution-list> from [initial] to [20dppx 200dppx] at (0.5) is [30dppx 300dppx]
PASS Web Animations: property <--resolution-list> from [initial] to [20dppx 200dppx] at (1) is [20dppx 200dppx]
PASS Web Animations: property <--resolution-list> from [initial] to [20dppx 200dppx] at (1.5) is [10dppx 100dppx]
PASS Web Animations: property <--resolution-list> from [inherit] to [20dppx 200dppx] at (-0.3) is [33dppx 330dppx]
PASS Web Animations: property <--resolution-list> from [inherit] to [20dppx 200dppx] at (0) is [30dppx 300dppx]
PASS Web Animations: property <--resolution-list> from [inherit] to [20dppx 200dppx] at (0.5) is [25dppx 250dppx]
PASS Web Animations: property <--resolution-list> from [inherit] to [20dppx 200dppx] at (1) is [20dppx 200dppx]
PASS Web Animations: property <--resolution-list> from [inherit] to [20dppx 200dppx] at (1.5) is [15dppx 150dppx]
PASS Web Animations: property <--resolution-list> from [unset] to [20dppx 200dppx] at (-0.3) is [46dppx 460dppx]
PASS Web Animations: property <--resolution-list> from [unset] to [20dppx 200dppx] at (0) is [40dppx 400dppx]
PASS Web Animations: property <--resolution-list> from [unset] to [20dppx 200dppx] at (0.5) is [30dppx 300dppx]
PASS Web Animations: property <--resolution-list> from [unset] to [20dppx 200dppx] at (1) is [20dppx 200dppx]
PASS Web Animations: property <--resolution-list> from [unset] to [20dppx 200dppx] at (1.5) is [10dppx 100dppx]
PASS Web Animations: property <--resolution-list> from [-10dppx -100dppx] to [10dppx 100dppx] at (-0.3) is [-16dppx -160dppx]
PASS Web Animations: property <--resolution-list> from [-10dppx -100dppx] to [10dppx 100dppx] at (0) is [-10dppx -100dppx]
PASS Web Animations: property <--resolution-list> from [-10dppx -100dppx] to [10dppx 100dppx] at (0.5) is [0dppx 0dppx]
PASS Web Animations: property <--resolution-list> from [-10dppx -100dppx] to [10dppx 100dppx] at (1) is [10dppx 100dppx]
PASS Web Animations: property <--resolution-list> from [-10dppx -100dppx] to [10dppx 100dppx] at (1.5) is [20dppx 200dppx]
PASS Web Animations: property <--resolution-list> from [10dppx] to [100dppx] at (-0.3) is [-17dppx]
PASS Web Animations: property <--resolution-list> from [10dppx] to [100dppx] at (0) is [10dppx]
PASS Web Animations: property <--resolution-list> from [10dppx] to [100dppx] at (0.5) is [55dppx]
PASS Web Animations: property <--resolution-list> from [10dppx] to [100dppx] at (1) is [100dppx]
PASS Web Animations: property <--resolution-list> from [10dppx] to [100dppx] at (1.5) is [145dppx]
PASS Web Animations: property <--resolution-list> from [96dpi 192dpi] to [2dppx 2dppx] at (-0.3) is [0.7dppx 2dppx]
PASS Web Animations: property <--resolution-list> from [96dpi 192dpi] to [2dppx 2dppx] at (0) is [1dppx 2dppx]
PASS Web Animations: property <--resolution-list> from [96dpi 192dpi] to [2dppx 2dppx] at (0.5) is [1.5dppx 2dppx]
PASS Web Animations: property <--resolution-list> from [96dpi 192dpi] to [2dppx 2dppx] at (1) is [2dppx 2dppx]
PASS Web Animations: property <--resolution-list> from [96dpi 192dpi] to [2dppx 2dppx] at (1.5) is [2.5dppx 2dppx]
FAIL Web Animations: property <--resolution-list> from neutral to [20dppx 200dppx] at (-0.3) is [-6dppx -60dppx] assert_equals: expected "7dppx 70dppx " but got "- 6dppx - 60dppx "
FAIL Web Animations: property <--resolution-list> from neutral to [20dppx 200dppx] at (0) is [0dppx 0dppx] assert_equals: expected "10dppx 100dppx " but got "0dppx 0dppx "
FAIL Web Animations: property <--resolution-list> from neutral to [20dppx 200dppx] at (0.5) is [10dppx 100dppx] assert_equals: expected "15dppx 150dppx " but got "10dppx 100dppx "
PASS Web Animations: property <--resolution-list> from neutral to [20dppx 200dppx] at (1) is [20dppx 200dppx]
FAIL Web Animations: property <--resolution-list> from neutral to [20dppx 200dppx] at (1.5) is [30dppx 300dppx] assert_equals: expected "25dppx 250dppx " but got "30dppx 300dppx "
FAIL Compositing: property <--resolution-list> underlying [50dppx 60dppx] from add [10dppx 140dppx] to add [110dppx 40dppx] at (-0.3) is [-20dppx 170dppx] assert_equals: expected "30dppx 230dppx " but got "- 20dppx 170dppx "
FAIL Compositing: property <--resolution-list> underlying [50dppx 60dppx] from add [10dppx 140dppx] to add [110dppx 40dppx] at (0) is [10dppx 140dppx] assert_equals: expected "60dppx 200dppx " but got "10dppx 140dppx "
FAIL Compositing: property <--resolution-list> underlying [50dppx 60dppx] from add [10dppx 140dppx] to add [110dppx 40dppx] at (0.5) is [60dppx 90dppx] assert_equals: expected "110dppx 150dppx " but got "60dppx 90dppx "
FAIL Compositing: property <--resolution-list> underlying [50dppx 60dppx] from add [10dppx 140dppx] to add [110dppx 40dppx] at (1) is [110dppx 40dppx] assert_equals: expected "160dppx 100dppx " but got "110dppx 40dppx "
FAIL Compositing: property <--resolution-list> underlying [50dppx 60dppx] from add [10dppx 140dppx] to add [110dppx 40dppx] at (1.5) is [160dppx -10dppx] assert_equals: expected "210dppx 50dppx " but got "160dppx - 10dppx "
FAIL Compositing: property <--resolution-list> underlying [50dppx 60dppx] from add [10dppx 140dppx] to replace [110dppx 40dppx] at (-0.3) is [-20dppx 170dppx] assert_equals: expected "45dppx 248dppx " but got "- 20dppx 170dppx "
FAIL Compositing: property <--resolution-list> underlying [50dppx 60dppx] from add [10dppx 140dppx] to replace [110dppx 40dppx] at (0) is [10dppx 140dppx] assert_equals: expected "60dppx 200dppx " but got "10dppx 140dppx "
FAIL Compositing: property <--resolution-list> underlying [50dppx 60dppx] from add [10dppx 140dppx] to replace [110dppx 40dppx] at (0.5) is [60dppx 90dppx] assert_equals: expected "85dppx 120dppx " but got "60dppx 90dppx "
PASS Compositing: property <--resolution-list> underlying [50dppx 60dppx] from add [10dppx 140dppx] to replace [110dppx 40dppx] at (1) is [110dppx 40dppx]
FAIL Compositing: property <--resolution-list> underlying [50dppx 60dppx] from add [10dppx 140dppx] to replace [110dppx 40dppx] at (1.5) is [160dppx -10dppx] assert_equals: expected "135dppx - 40dppx " but got "160dppx - 10dppx "
Harness: the test ran to completion.
...@@ -90,10 +90,6 @@ assertInterpolation({ ...@@ -90,10 +90,6 @@ assertInterpolation({
{at: 1.5, is: '2.5dppx 2dppx'} {at: 1.5, is: '2.5dppx 2dppx'}
]); ]);
// Composition and neutralKeyframe tests assume that composite:add means
// component-wise addition, which may or may not be the behavior we want.
// https://github.com/w3c/css-houdini-drafts/issues/799
assertInterpolation({ assertInterpolation({
property: '--resolution-list', property: '--resolution-list',
from: neutralKeyframe, from: neutralKeyframe,
......
This is a testharness.js-based test.
PASS This test uses interpolation-test.js.
PASS CSS Transitions: property <--time-list> from [initial] to [20s 200s] at (-0.3) is [46s 460s]
PASS CSS Transitions: property <--time-list> from [initial] to [20s 200s] at (0) is [40s 400s]
PASS CSS Transitions: property <--time-list> from [initial] to [20s 200s] at (0.5) is [30s 300s]
PASS CSS Transitions: property <--time-list> from [initial] to [20s 200s] at (1) is [20s 200s]
PASS CSS Transitions: property <--time-list> from [initial] to [20s 200s] at (1.5) is [10s 100s]
PASS CSS Transitions: property <--time-list> from [inherit] to [20s 200s] at (-0.3) is [33s 330s]
PASS CSS Transitions: property <--time-list> from [inherit] to [20s 200s] at (0) is [30s 300s]
PASS CSS Transitions: property <--time-list> from [inherit] to [20s 200s] at (0.5) is [25s 250s]
PASS CSS Transitions: property <--time-list> from [inherit] to [20s 200s] at (1) is [20s 200s]
PASS CSS Transitions: property <--time-list> from [inherit] to [20s 200s] at (1.5) is [15s 150s]
PASS CSS Transitions: property <--time-list> from [unset] to [20s 200s] at (-0.3) is [46s 460s]
PASS CSS Transitions: property <--time-list> from [unset] to [20s 200s] at (0) is [40s 400s]
PASS CSS Transitions: property <--time-list> from [unset] to [20s 200s] at (0.5) is [30s 300s]
PASS CSS Transitions: property <--time-list> from [unset] to [20s 200s] at (1) is [20s 200s]
PASS CSS Transitions: property <--time-list> from [unset] to [20s 200s] at (1.5) is [10s 100s]
PASS CSS Transitions: property <--time-list> from [-10s -100s] to [10s 100s] at (-0.3) is [-16s -160s]
PASS CSS Transitions: property <--time-list> from [-10s -100s] to [10s 100s] at (0) is [-10s -100s]
PASS CSS Transitions: property <--time-list> from [-10s -100s] to [10s 100s] at (0.5) is [0s 0s]
PASS CSS Transitions: property <--time-list> from [-10s -100s] to [10s 100s] at (1) is [10s 100s]
PASS CSS Transitions: property <--time-list> from [-10s -100s] to [10s 100s] at (1.5) is [20s 200s]
PASS CSS Transitions: property <--time-list> from [10s] to [100s] at (-0.3) is [-17s]
PASS CSS Transitions: property <--time-list> from [10s] to [100s] at (0) is [10s]
PASS CSS Transitions: property <--time-list> from [10s] to [100s] at (0.5) is [55s]
PASS CSS Transitions: property <--time-list> from [10s] to [100s] at (1) is [100s]
PASS CSS Transitions: property <--time-list> from [10s] to [100s] at (1.5) is [145s]
PASS CSS Transitions: property <--time-list> from [0s 1000ms] to [1000ms 0s] at (-0.3) is [-0.3s 1.3s]
PASS CSS Transitions: property <--time-list> from [0s 1000ms] to [1000ms 0s] at (0) is [0s 1s]
PASS CSS Transitions: property <--time-list> from [0s 1000ms] to [1000ms 0s] at (0.5) is [0.5s 0.5s]
PASS CSS Transitions: property <--time-list> from [0s 1000ms] to [1000ms 0s] at (1) is [1s 0s]
PASS CSS Transitions: property <--time-list> from [0s 1000ms] to [1000ms 0s] at (1.5) is [1.5s -0.5s]
PASS CSS Transitions: property <--time-list> from neutral to [20s 200s] at (-0.3) is [7s 70s]
PASS CSS Transitions: property <--time-list> from neutral to [20s 200s] at (0) is [10s 100s]
PASS CSS Transitions: property <--time-list> from neutral to [20s 200s] at (0.5) is [15s 150s]
PASS CSS Transitions: property <--time-list> from neutral to [20s 200s] at (1) is [20s 200s]
PASS CSS Transitions: property <--time-list> from neutral to [20s 200s] at (1.5) is [25s 250s]
PASS CSS Animations: property <--time-list> from [initial] to [20s 200s] at (-0.3) is [46s 460s]
PASS CSS Animations: property <--time-list> from [initial] to [20s 200s] at (0) is [40s 400s]
PASS CSS Animations: property <--time-list> from [initial] to [20s 200s] at (0.5) is [30s 300s]
PASS CSS Animations: property <--time-list> from [initial] to [20s 200s] at (1) is [20s 200s]
PASS CSS Animations: property <--time-list> from [initial] to [20s 200s] at (1.5) is [10s 100s]
PASS CSS Animations: property <--time-list> from [inherit] to [20s 200s] at (-0.3) is [33s 330s]
PASS CSS Animations: property <--time-list> from [inherit] to [20s 200s] at (0) is [30s 300s]
PASS CSS Animations: property <--time-list> from [inherit] to [20s 200s] at (0.5) is [25s 250s]
PASS CSS Animations: property <--time-list> from [inherit] to [20s 200s] at (1) is [20s 200s]
PASS CSS Animations: property <--time-list> from [inherit] to [20s 200s] at (1.5) is [15s 150s]
PASS CSS Animations: property <--time-list> from [unset] to [20s 200s] at (-0.3) is [46s 460s]
PASS CSS Animations: property <--time-list> from [unset] to [20s 200s] at (0) is [40s 400s]
PASS CSS Animations: property <--time-list> from [unset] to [20s 200s] at (0.5) is [30s 300s]
PASS CSS Animations: property <--time-list> from [unset] to [20s 200s] at (1) is [20s 200s]
PASS CSS Animations: property <--time-list> from [unset] to [20s 200s] at (1.5) is [10s 100s]
PASS CSS Animations: property <--time-list> from [-10s -100s] to [10s 100s] at (-0.3) is [-16s -160s]
PASS CSS Animations: property <--time-list> from [-10s -100s] to [10s 100s] at (0) is [-10s -100s]
PASS CSS Animations: property <--time-list> from [-10s -100s] to [10s 100s] at (0.5) is [0s 0s]
PASS CSS Animations: property <--time-list> from [-10s -100s] to [10s 100s] at (1) is [10s 100s]
PASS CSS Animations: property <--time-list> from [-10s -100s] to [10s 100s] at (1.5) is [20s 200s]
PASS CSS Animations: property <--time-list> from [10s] to [100s] at (-0.3) is [-17s]
PASS CSS Animations: property <--time-list> from [10s] to [100s] at (0) is [10s]
PASS CSS Animations: property <--time-list> from [10s] to [100s] at (0.5) is [55s]
PASS CSS Animations: property <--time-list> from [10s] to [100s] at (1) is [100s]
PASS CSS Animations: property <--time-list> from [10s] to [100s] at (1.5) is [145s]
PASS CSS Animations: property <--time-list> from [0s 1000ms] to [1000ms 0s] at (-0.3) is [-0.3s 1.3s]
PASS CSS Animations: property <--time-list> from [0s 1000ms] to [1000ms 0s] at (0) is [0s 1s]
PASS CSS Animations: property <--time-list> from [0s 1000ms] to [1000ms 0s] at (0.5) is [0.5s 0.5s]
PASS CSS Animations: property <--time-list> from [0s 1000ms] to [1000ms 0s] at (1) is [1s 0s]
PASS CSS Animations: property <--time-list> from [0s 1000ms] to [1000ms 0s] at (1.5) is [1.5s -0.5s]
FAIL CSS Animations: property <--time-list> from neutral to [20s 200s] at (-0.3) is [-6s -60s] assert_equals: expected "7s 70s " but got "- 6s - 60s "
FAIL CSS Animations: property <--time-list> from neutral to [20s 200s] at (0) is [0s 0s] assert_equals: expected "10s 100s " but got "0s 0s "
FAIL CSS Animations: property <--time-list> from neutral to [20s 200s] at (0.5) is [10s 100s] assert_equals: expected "15s 150s " but got "10s 100s "
PASS CSS Animations: property <--time-list> from neutral to [20s 200s] at (1) is [20s 200s]
FAIL CSS Animations: property <--time-list> from neutral to [20s 200s] at (1.5) is [30s 300s] assert_equals: expected "25s 250s " but got "30s 300s "
PASS Web Animations: property <--time-list> from [initial] to [20s 200s] at (-0.3) is [46s 460s]
PASS Web Animations: property <--time-list> from [initial] to [20s 200s] at (0) is [40s 400s]
PASS Web Animations: property <--time-list> from [initial] to [20s 200s] at (0.5) is [30s 300s]
PASS Web Animations: property <--time-list> from [initial] to [20s 200s] at (1) is [20s 200s]
PASS Web Animations: property <--time-list> from [initial] to [20s 200s] at (1.5) is [10s 100s]
PASS Web Animations: property <--time-list> from [inherit] to [20s 200s] at (-0.3) is [33s 330s]
PASS Web Animations: property <--time-list> from [inherit] to [20s 200s] at (0) is [30s 300s]
PASS Web Animations: property <--time-list> from [inherit] to [20s 200s] at (0.5) is [25s 250s]
PASS Web Animations: property <--time-list> from [inherit] to [20s 200s] at (1) is [20s 200s]
PASS Web Animations: property <--time-list> from [inherit] to [20s 200s] at (1.5) is [15s 150s]
PASS Web Animations: property <--time-list> from [unset] to [20s 200s] at (-0.3) is [46s 460s]
PASS Web Animations: property <--time-list> from [unset] to [20s 200s] at (0) is [40s 400s]
PASS Web Animations: property <--time-list> from [unset] to [20s 200s] at (0.5) is [30s 300s]
PASS Web Animations: property <--time-list> from [unset] to [20s 200s] at (1) is [20s 200s]
PASS Web Animations: property <--time-list> from [unset] to [20s 200s] at (1.5) is [10s 100s]
PASS Web Animations: property <--time-list> from [-10s -100s] to [10s 100s] at (-0.3) is [-16s -160s]
PASS Web Animations: property <--time-list> from [-10s -100s] to [10s 100s] at (0) is [-10s -100s]
PASS Web Animations: property <--time-list> from [-10s -100s] to [10s 100s] at (0.5) is [0s 0s]
PASS Web Animations: property <--time-list> from [-10s -100s] to [10s 100s] at (1) is [10s 100s]
PASS Web Animations: property <--time-list> from [-10s -100s] to [10s 100s] at (1.5) is [20s 200s]
PASS Web Animations: property <--time-list> from [10s] to [100s] at (-0.3) is [-17s]
PASS Web Animations: property <--time-list> from [10s] to [100s] at (0) is [10s]
PASS Web Animations: property <--time-list> from [10s] to [100s] at (0.5) is [55s]
PASS Web Animations: property <--time-list> from [10s] to [100s] at (1) is [100s]
PASS Web Animations: property <--time-list> from [10s] to [100s] at (1.5) is [145s]
PASS Web Animations: property <--time-list> from [0s 1000ms] to [1000ms 0s] at (-0.3) is [-0.3s 1.3s]
PASS Web Animations: property <--time-list> from [0s 1000ms] to [1000ms 0s] at (0) is [0s 1s]
PASS Web Animations: property <--time-list> from [0s 1000ms] to [1000ms 0s] at (0.5) is [0.5s 0.5s]
PASS Web Animations: property <--time-list> from [0s 1000ms] to [1000ms 0s] at (1) is [1s 0s]
PASS Web Animations: property <--time-list> from [0s 1000ms] to [1000ms 0s] at (1.5) is [1.5s -0.5s]
FAIL Web Animations: property <--time-list> from neutral to [20s 200s] at (-0.3) is [-6s -60s] assert_equals: expected "7s 70s " but got "- 6s - 60s "
FAIL Web Animations: property <--time-list> from neutral to [20s 200s] at (0) is [0s 0s] assert_equals: expected "10s 100s " but got "0s 0s "
FAIL Web Animations: property <--time-list> from neutral to [20s 200s] at (0.5) is [10s 100s] assert_equals: expected "15s 150s " but got "10s 100s "
PASS Web Animations: property <--time-list> from neutral to [20s 200s] at (1) is [20s 200s]
FAIL Web Animations: property <--time-list> from neutral to [20s 200s] at (1.5) is [30s 300s] assert_equals: expected "25s 250s " but got "30s 300s "
FAIL Compositing: property <--time-list> underlying [50s 60s] from add [10s 140s] to add [110s 40s] at (-0.3) is [-20s 170s] assert_equals: expected "30s 230s " but got "- 20s 170s "
FAIL Compositing: property <--time-list> underlying [50s 60s] from add [10s 140s] to add [110s 40s] at (0) is [10s 140s] assert_equals: expected "60s 200s " but got "10s 140s "
FAIL Compositing: property <--time-list> underlying [50s 60s] from add [10s 140s] to add [110s 40s] at (0.5) is [60s 90s] assert_equals: expected "110s 150s " but got "60s 90s "
FAIL Compositing: property <--time-list> underlying [50s 60s] from add [10s 140s] to add [110s 40s] at (1) is [110s 40s] assert_equals: expected "160s 100s " but got "110s 40s "
FAIL Compositing: property <--time-list> underlying [50s 60s] from add [10s 140s] to add [110s 40s] at (1.5) is [160s -10s] assert_equals: expected "210s 50s " but got "160s - 10s "
FAIL Compositing: property <--time-list> underlying [50s 60s] from add [10s 140s] to replace [110s 40s] at (-0.3) is [-20s 170s] assert_equals: expected "45s 248s " but got "- 20s 170s "
FAIL Compositing: property <--time-list> underlying [50s 60s] from add [10s 140s] to replace [110s 40s] at (0) is [10s 140s] assert_equals: expected "60s 200s " but got "10s 140s "
FAIL Compositing: property <--time-list> underlying [50s 60s] from add [10s 140s] to replace [110s 40s] at (0.5) is [60s 90s] assert_equals: expected "85s 120s " but got "60s 90s "
PASS Compositing: property <--time-list> underlying [50s 60s] from add [10s 140s] to replace [110s 40s] at (1) is [110s 40s]
FAIL Compositing: property <--time-list> underlying [50s 60s] from add [10s 140s] to replace [110s 40s] at (1.5) is [160s -10s] assert_equals: expected "135s - 40s " but got "160s - 10s "
Harness: the test ran to completion.
...@@ -90,10 +90,6 @@ assertInterpolation({ ...@@ -90,10 +90,6 @@ assertInterpolation({
{at: 1.5, is: '1.5s -0.5s'} {at: 1.5, is: '1.5s -0.5s'}
]); ]);
// Composition and neutralKeyframe tests assume that composite:add means
// component-wise addition, which may or may not be the behavior we want.
// https://github.com/w3c/css-houdini-drafts/issues/799
assertInterpolation({ assertInterpolation({
property: '--time-list', property: '--time-list',
from: neutralKeyframe, from: neutralKeyframe,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment