| /* |
| * Copyright (c) 2011, 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. |
| */ |
| /** |
| * @assertion const Duration({int days: 0, int hours: 0, int minutes: 0, |
| * int seconds: 0, int milliseconds: 0, int microseconds: 0}) |
| * All individual parts are allowed to be negative. |
| * @description Checks that negative values are allowed and do not cause any |
| * errors |
| * @author akuznecov, sgrekhov@unipro.ru |
| */ |
| import "../../../Utils/expect.dart"; |
| |
| main() { |
| check(-1, -1, -1, -1, -1, -1); |
| check(30, -10, 20, -45, -700, -777); |
| check(-0x80000000, 0, -0x80000000, 0, -0x80000000, -0x80000000); |
| check(0, -0x80000001, 0, -0x80000001, 0, -0x80000001); |
| check(-0x800000000000000, 0, -0x800000000000000, 0, -0x800000000000000, |
| -0x800000000000000); |
| check(0, -0x80000000000000, 0, -0x800000000000000, 0, 1); |
| } |
| |
| void check(int d, int h, int m, int s, int ms, int mc) { |
| Duration dur = new Duration(days: d, hours: h, minutes: m, seconds: s, |
| milliseconds: ms, microseconds: mc); |
| int sum = mc + (ms + (s + ((m + (h + d * 24) * 60) * 60)) * 1000) * 1000; |
| Expect.equals(sum, dur.inMicroseconds); |
| } |