Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(694)

Unified Diff: packages/charted/test.disabled/interpolators/interpolators_test.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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));
+ });
+}
« no previous file with comments | « packages/charted/test.disabled/interpolators/easing_test.dart ('k') | packages/charted/test.disabled/layout/layout_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698