| 123456789101112131415161718192021222324252627282930313233343536373839 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Reflection;
- using Avalonia.Animation.Easings;
- using Avalonia.Base.UnitTests.Rendering;
- using Avalonia.Rendering;
- using Avalonia.Rendering.Composition;
- using Avalonia.Rendering.Composition.Expressions;
- using Avalonia.Rendering.Composition.Server;
- using Avalonia.Threading;
- using Avalonia.UnitTests;
- using Xunit;
- using Xunit.Sdk;
- namespace Avalonia.Base.UnitTests.Composition;
- public class CompositionAnimationParserTests
- {
- [Theory,
- InlineData("Vector3(0.5+(4.0-0.5)* -2, 1, 0).X", -6.5)]
- public void EvaluatesExpressionCorrectly(string expression, double value)
- {
- var expr = ExpressionParser.Parse(expression);
- var ctx = new ExpressionEvaluationContext
- {
- ForeignFunctionInterface = BuiltInExpressionFfi.Instance,
- };
- var res = expr.Evaluate(ref ctx);
- double doubleRes;
- if (res.Type == VariantType.Scalar)
- doubleRes = res.Scalar;
- else if (res.Type == VariantType.Double)
- doubleRes = res.Double;
- else
- throw new Exception("Invalid result type: " + res.Type);
- Assert.Equal(value, doubleRes);
- }
- }
|