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

Unified Diff: tests/compiler/dart2js/sourcemaps/colors.dart

Issue 1196433002: Create and test source mapping for invocations. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Rebased Created 5 years, 6 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: tests/compiler/dart2js/sourcemaps/colors.dart
diff --git a/tests/compiler/dart2js/sourcemaps/colors.dart b/tests/compiler/dart2js/sourcemaps/colors.dart
new file mode 100644
index 0000000000000000000000000000000000000000..8241dd1e06e86bdd6cf0c4bdde4554db0a951421
--- /dev/null
+++ b/tests/compiler/dart2js/sourcemaps/colors.dart
@@ -0,0 +1,89 @@
+// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// Utility library for creating web colors.
+
+library colors;
+
+/// A web color.
+abstract class Color {
+ /// The hexadecimal code for the color, without the prefixed '#'.
+ String get toHex;
+}
+
+/// A web color defined as RGB.
+class RGB implements Color {
+ final double r;
+ final double g;
+ final double b;
+
+ /// Creates a color defined by the amount of red [r], green [g], and blue [b]
+ /// all in range 0..1.
+ const RGB(this.r, this.g, this.b);
+
+ String get toHex {
+ StringBuffer sb = new StringBuffer();
+
+ void writeHex(double value) {
+ int i = (value * 255.0).round();
+ if (i < 16) {
+ sb.write('0');
+ }
+ sb.write(i.toRadixString(16));
+ }
+
+ writeHex(r);
+ writeHex(g);
+ writeHex(b);
+
+ return sb.toString();
+ }
+
+ String toString() => 'rgb($r,$g,$b)';
+}
+
+/// A web color defined as HSV.
+class HSV implements Color {
+ final double h;
+ final double s;
+ final double v;
+
+ /// Creates a color defined by the hue [h] in range 0..360 (360 excluded),
+ /// saturation [s] in range 0..1, and value [v] in range 0..1.
+ const HSV(this.h, this.s, this.v);
+
+ String get toHex => toRGB(this).toHex;
+
+ static RGB toRGB(HSV hsv) {
+ double h = hsv.h;
+ double s = hsv.s;
+ double v = hsv.v;
+ if (s == 0.0) {
+ // Grey.
+ return new RGB(v, v, v);
+ }
+ h /= 60.0; // Sector 0 to 5.
+ int i = h.floor();
+ double f = h - i; // Factorial part of [h].
+ double p = v * (1.0 - s);
+ double q = v * (1.0 - s * f);
+ double t = v * (1.0 - s * (1.0 - f ));
+ switch (i) {
+ case 0:
+ return new RGB(v, t, p);
+ case 1:
+ return new RGB(q, v, p);
+ case 2:
+ return new RGB(p, v, t);
+ case 3:
+ return new RGB(p, q, v);
+ case 4:
+ return new RGB(t, p, v);
+ default: // case 5:
+ return new RGB(v, p, q);
+ }
+ }
+
+ String toString() => 'hsv($h,$s,$v)';
+}
« no previous file with comments | « tests/compiler/dart2js/output_collector.dart ('k') | tests/compiler/dart2js/sourcemaps/invokes_test_file.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698