Chromium Code Reviews

Side by Side Diff: quiver/lib/testing/src/time/time.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.
Jump to:
View unified diff |
« no previous file with comments | « quiver/lib/testing/src/runtime/checked_mode.dart ('k') | quiver/lib/testing/time.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2013 Google Inc. All Rights Reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 part of quiver.testing.time;
16
17 /**
18 * Returns the current test time in microseconds.
19 */
20 typedef int Now();
21
22 /**
23 * A [Stopwatch] implementation that gets the current time in microseconds
24 * via a user-supplied function.
25 */
26 class FakeStopwatch implements Stopwatch {
27 Now _now;
28 int frequency;
29 int _start;
30 int _stop;
31
32 FakeStopwatch(int now(), int this.frequency)
33 : _now = now,
34 _start = null,
35 _stop = null;
36
37 void start() {
38 if (isRunning) return;
39 if (_start == null) {
40 _start = _now();
41 } else {
42 _start = _now() - (_stop - _start);
43 _stop = null;
44 }
45 }
46
47 void stop() {
48 if (!isRunning) return;
49 _stop = _now();
50 }
51
52 void reset() {
53 if (_start == null) return;
54 _start = _now();
55 if (_stop != null) {
56 _stop = _start;
57 }
58 }
59
60 int get elapsedTicks {
61 if (_start == null) {
62 return 0;
63 }
64 return (_stop == null) ? (_now() - _start) : (_stop - _start);
65 }
66
67 Duration get elapsed => new Duration(microseconds: elapsedMicroseconds);
68
69 int get elapsedMicroseconds => (elapsedTicks * 1000000) ~/ frequency;
70
71 int get elapsedMilliseconds => (elapsedTicks * 1000) ~/ frequency;
72
73 bool get isRunning => _start != null && _stop == null;
74 }
OLDNEW
« no previous file with comments | « quiver/lib/testing/src/runtime/checked_mode.dart ('k') | quiver/lib/testing/time.dart » ('j') | no next file with comments »

Powered by Google App Engine