| Index: packages/charted/test.disabled/interpolators/interpolators_test.dart
|
| diff --git a/packages/charted/test.disabled/interpolators/interpolators_test.dart b/packages/charted/test.disabled/interpolators/interpolators_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..29bd10ae08bdc51a80ab95d379c484197691ed83
|
| --- /dev/null
|
| +++ b/packages/charted/test.disabled/interpolators/interpolators_test.dart
|
| @@ -0,0 +1,152 @@
|
| +/*
|
| + * Copyright 2014 Google Inc. All rights reserved.
|
| + *
|
| + * Use of this source code is governed by a BSD-style
|
| + * license that can be found in the LICENSE file or at
|
| + * https://developers.google.com/open-source/licenses/bsd
|
| + */
|
| +
|
| +library charted.test.interpolators;
|
| +
|
| +import 'package:charted/core/utils.dart';
|
| +import 'package:charted/interpolators/interpolators.dart';
|
| +import 'package:unittest/unittest.dart';
|
| +
|
| +part 'easing_test.dart';
|
| +
|
| +class MockObject {
|
| + num a;
|
| + List b;
|
| + MockObject(this.a, this.b);
|
| +}
|
| +
|
| +interpolatorsTests() {
|
| + testEasing();
|
| +
|
| + test('interpolateNumber correctly interpolates two [num]s', () {
|
| + InterpolateFn interpolator = interpolateNumber(1, 10);
|
| + expect(interpolator(0), equals(1));
|
| + expect(interpolator(0.5), equals(5.5));
|
| + expect(interpolator(1), equals(10));
|
| + });
|
| +
|
| + test('interpolateRound correctly interpolates two [num]s', () {
|
| + InterpolateFn interpolator = interpolateRound(0.8, 10.3);
|
| + expect(interpolator(0), equals(1));
|
| + expect(interpolator(0.5), equals(6));
|
| + expect(interpolator(1), equals(10));
|
| + });
|
| +
|
| + test('interpolateString correctly interpolates two [String]s', () {
|
| + InterpolateFn interpolator =
|
| + interpolateString('M1,2L2,2M5,3', 'M2,4L5,5M5,4');
|
| + expect(interpolator(0), equals('M1,2L2,2M5,3'));
|
| + expect(interpolator(0.5), equals('M1.5,3.0L3.5,3.5M5.0,3.5'));
|
| + expect(interpolator(1), equals('M2,4L5,5M5,4'));
|
| + });
|
| +
|
| + test('interpolateColor interpolates two [Color]s in RGB color system', () {
|
| + InterpolateFn interpolator = interpolateRgbColor(
|
| + new Color.fromRgb(100, 0, 150), new Color.fromRgb(200, 150, 0));
|
| + expect(interpolator(0).hexString, equals('#640096'));
|
| + expect(interpolator(0.5).hexString, equals('#964b4b'));
|
| + expect(interpolator(1).hexString, equals('#c89600'));
|
| + });
|
| +
|
| + test('interpolateHsl interpolates two [Color]s in HSL color system', () {
|
| + InterpolateFn interpolator = interpolateHslColor(
|
| + new Color.fromRgb(100, 0, 150), new Color.fromRgb(200, 150, 0));
|
| + expect(interpolator(0), equals('#640096'));
|
| + expect(interpolator(0.5), equals('#00af7c'));
|
| + expect(interpolator(1), equals('#c89600'));
|
| + });
|
| +
|
| + test('uninterpolateNumber returns the reverse of interpolateNumber', () {
|
| + InterpolateFn interpolator = uninterpolateNumber(1, 10);
|
| + expect(interpolator(-3.5), equals(-0.5));
|
| + expect(interpolator(1), equals(0));
|
| + expect(interpolator(5.5), equals(0.5));
|
| + expect(interpolator(10), equals(1));
|
| + });
|
| +
|
| + test('uninterpolateClamp clamps uninterpolated result to [0, 1]', () {
|
| + InterpolateFn interpolator = uninterpolateClamp(1, 10);
|
| + expect(interpolator(-3.5), equals(0));
|
| + expect(interpolator(1), equals(0));
|
| + expect(interpolator(5.5), equals(0.5));
|
| + expect(interpolator(10), equals(1));
|
| + expect(interpolator(15), equals(1));
|
| + });
|
| +
|
| + test('interpolateTransform correctly interpolates two transforms', () {
|
| + // Both transform string contain complete information
|
| + InterpolateFn interpolator =
|
| + interpolateTransform("translate(10,10)rotate(30)skewX(0.5)scale(1,1)",
|
| + "translate(100,100)rotate(360)skewX(45)scale(3,3)");
|
| +
|
| + expect(interpolator(0),
|
| + equals('translate(10,10)scale(1,1)rotate(390)skewX(0.5)'));
|
| + expect(interpolator(0.5),
|
| + equals('translate(55.0,55.0)scale(2.0,2.0)rotate(375.0)skewX(22.75)'));
|
| + expect(interpolator(1),
|
| + equals('translate(100,100)scale(3,3)rotate(360)skewX(45.0)'));
|
| +
|
| + // The first transform string is empty
|
| + interpolator = interpolateTransform("",
|
| + "translate(100,100)rotate(360)skewX(45)scale(3,3)");
|
| + expect(interpolator(0),
|
| + equals('translate(0,0)scale(1,1)rotate(360)skewX(0)'));
|
| + expect(interpolator(0.5),
|
| + equals('translate(50.0,50.0)scale(2.0,2.0)rotate(360.0)skewX(22.5)'));
|
| + expect(interpolator(1),
|
| + equals('translate(100,100)scale(3,3)rotate(360)skewX(45)'));
|
| +
|
| + // Two transform strings are not complete
|
| + interpolator = interpolateTransform("translate(10,10)rotate(30)scale(1,1)",
|
| + "skewX(45)scale(3,3)");
|
| + expect(interpolator(0),
|
| + equals('translate(10,10)scale(1,1)rotate(30)skewX(0)'));
|
| + expect(interpolator(0.5),
|
| + equals('translate(5.0,5.0)scale(2.0,2.0)rotate(15.0)skewX(22.5)'));
|
| + expect(interpolator(1),
|
| + equals('translate(0,0)scale(3,3)rotate(0)skewX(45)'));
|
| + });
|
| +
|
| + test('interpolateZoom correctly interpolates two [Zoom]s', () {
|
| + // dr != 0
|
| + InterpolateFn interpolator = interpolateZoom([3, 5, 2], [1, 10, 4]);
|
| +
|
| + List zoom = interpolator(0);
|
| + expect(zoom[0], closeTo(3, EPSILON));
|
| + expect(zoom[1], closeTo(5, EPSILON));
|
| + expect(zoom[2], closeTo(2, EPSILON));
|
| +
|
| + zoom = interpolator(0.5);
|
| + expect(zoom[0], closeTo(2.333333333333334, EPSILON));
|
| + expect(zoom[1], closeTo(6.666666666666665, EPSILON));
|
| + expect(zoom[2], closeTo(5.811865258054227, EPSILON));
|
| +
|
| + zoom = interpolator(1);
|
| + expect(zoom[0], closeTo(1, EPSILON));
|
| + expect(zoom[1], closeTo(10, EPSILON));
|
| + expect(zoom[2], closeTo(4, EPSILON));
|
| +
|
| + // dr == 0
|
| + interpolator = interpolateZoom([5, 10, 4], [5, 10, 4]);
|
| +
|
| + zoom = interpolator(0);
|
| + expect(zoom[0], closeTo(5, EPSILON));
|
| + expect(zoom[1], closeTo(10, EPSILON));
|
| + expect(zoom[2], closeTo(4, EPSILON));
|
| +
|
| + zoom = interpolator(0.5);
|
| + expect(zoom[0], closeTo(5, EPSILON));
|
| + expect(zoom[1], closeTo(10, EPSILON));
|
| + expect(zoom[2], closeTo(4, EPSILON));
|
| +
|
| + zoom = interpolator(1);
|
| + expect(zoom[0], closeTo(5, EPSILON));
|
| + expect(zoom[1], closeTo(10, EPSILON));
|
| + expect(zoom[2], closeTo(4, EPSILON));
|
| + });
|
| +}
|
|
|