blob: 11cda63d6d1f5b1dc9986969554d03c25c1fa305 [file] [log] [blame]
// 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 DateTime.parse(String formattedString)
/// Constructs a new [DateTime] instance based on [formattedString]
/// @description Checks that from the correct string the correct data is created.
/// @author msyabro
/// @reviewer pagolubev
import "../../../Utils/expect.dart";
check(String str, int year, int month, int day, int hours, int minutes,
int seconds, int milliseconds) {
DateTime d = DateTime.parse(str);
Expect.equals(year, d.year);
Expect.equals(month, d.month);
Expect.equals(day, d.day);
Expect.equals(hours, d.hour);
Expect.equals(minutes, d.minute);
Expect.equals(seconds, d.second);
Expect.equals(milliseconds, d.millisecond);
}
main() {
check("2001-01-01 23:23:23.23", 2001, 1, 1, 23, 23, 23, 230);
check("-2001-05-20 02:03:00.0", -2001, 5, 20, 2, 3, 0, 0);
check("2001-01-01 23:23:23.023", 2001, 1, 1, 23, 23, 23, 23);
check("0005-01-01 00:00:00.0", 5, 1, 1, 0, 0, 0, 0);
check("1845-11-30 12:00:00.275", 1845, 11, 30, 12, 0, 0, 275);
check("30000-11-30 12:00:00.275", 30000, 11, 30, 12, 0, 0, 275);
//Without some components
check("2000-01-01", 2000, 1, 1, 0, 0, 0, 0);
check("2000-01-01 12", 2000, 1, 1, 12, 0, 0, 0);
check("2000-01-01 12:55", 2000, 1, 1, 12, 55, 0, 0);
check("2001-01-01 23:23:23", 2001, 1, 1, 23, 23, 23, 0);
//DateTime jumping: is it correct behavior?
check("2000-02-30 00:00:00", 2000, 3, 1, 0, 0, 0, 0);
check("2000-06-31 00:00:00", 2000, 7, 1, 0, 0, 0, 0);
//With 'T' separates date and time
check("2000-01-01T15:25:12.03", 2000, 1, 1, 15, 25, 12, 30);
//UTC
check('0001-01-01 00:00:00.000Z', 1, 1, 1, 0, 0, 0, 0);
check('1999-10-20 11:12:13.014Z', 1999, 10, 20, 11, 12, 13, 14);
}