aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/vlib/time/parse_test.v
diff options
context:
space:
mode:
authorIndrajith K L2022-12-03 17:00:20 +0530
committerIndrajith K L2022-12-03 17:00:20 +0530
commitf5c4671bfbad96bf346bd7e9a21fc4317b4959df (patch)
tree2764fc62da58f2ba8da7ed341643fc359873142f /v_windows/v/vlib/time/parse_test.v
downloadcli-tools-windows-master.tar.gz
cli-tools-windows-master.tar.bz2
cli-tools-windows-master.zip
Adds most of the toolsHEADmaster
Diffstat (limited to 'v_windows/v/vlib/time/parse_test.v')
-rw-r--r--v_windows/v/vlib/time/parse_test.v138
1 files changed, 138 insertions, 0 deletions
diff --git a/v_windows/v/vlib/time/parse_test.v b/v_windows/v/vlib/time/parse_test.v
new file mode 100644
index 0000000..de7df37
--- /dev/null
+++ b/v_windows/v/vlib/time/parse_test.v
@@ -0,0 +1,138 @@
+import time
+
+fn test_parse() {
+ s := '2018-01-27 12:48:34'
+ t := time.parse(s) or {
+ assert false
+ return
+ }
+ assert t.year == 2018 && t.month == 1 && t.day == 27 && t.hour == 12 && t.minute == 48
+ && t.second == 34
+ assert t.unix == 1517057314
+}
+
+fn test_parse_invalid() {
+ s := 'Invalid time string'
+ time.parse(s) or {
+ assert true
+ return
+ }
+ assert false
+}
+
+fn test_parse_rfc2822() {
+ s1 := 'Thu, 12 Dec 2019 06:07:45 GMT'
+ t1 := time.parse_rfc2822(s1) or {
+ assert false
+ return
+ }
+ assert t1.year == 2019 && t1.month == 12 && t1.day == 12 && t1.hour == 6 && t1.minute == 7
+ && t1.second == 45
+ assert t1.unix == 1576130865
+ s2 := 'Thu 12 Dec 2019 06:07:45 +0800'
+ t2 := time.parse_rfc2822(s2) or {
+ assert false
+ return
+ }
+ assert t2.year == 2019 && t2.month == 12 && t2.day == 12 && t2.hour == 6 && t2.minute == 7
+ && t2.second == 45
+ assert t2.unix == 1576130865
+}
+
+fn test_parse_rfc2822_invalid() {
+ s3 := 'Thu 12 Foo 2019 06:07:45 +0800'
+ time.parse_rfc2822(s3) or {
+ assert true
+ return
+ }
+ assert false
+}
+
+fn test_parse_iso8601() {
+ formats := [
+ '2020-06-05T15:38:06Z',
+ '2020-06-05T15:38:06.015959Z',
+ '2020-06-05T15:38:06.015959+00:00',
+ '2020-06-05T15:38:06.015959+02:00',
+ '2020-06-05T15:38:06.015959-02:00',
+ '2020-11-05T15:38:06.015959Z',
+ ]
+ times := [
+ [2020, 6, 5, 15, 38, 6, 0],
+ [2020, 6, 5, 15, 38, 6, 15959],
+ [2020, 6, 5, 15, 38, 6, 15959],
+ [2020, 6, 5, 13, 38, 6, 15959],
+ [2020, 6, 5, 17, 38, 6, 15959],
+ [2020, 11, 5, 15, 38, 6, 15959],
+ ]
+ for i, format in formats {
+ t := time.parse_iso8601(format) or {
+ assert false
+ continue
+ }
+ year := times[i][0]
+ assert t.year == year
+ month := times[i][1]
+ assert t.month == month
+ day := times[i][2]
+ assert t.day == day
+ hour := times[i][3]
+ assert t.hour == hour
+ minute := times[i][4]
+ assert t.minute == minute
+ second := times[i][5]
+ assert t.second == second
+ microsecond := times[i][6]
+ assert t.microsecond == microsecond
+ }
+}
+
+fn test_parse_iso8601_local() {
+ format := '2020-06-05T15:38:06.015959'
+ t := time.parse_iso8601(format) or {
+ assert false
+ return
+ }
+ assert t.year == 2020
+ assert t.month == 6
+ assert t.day == 5
+ assert t.hour == 15
+ assert t.minute == 38
+ assert t.second == 6
+ assert t.microsecond == 15959
+}
+
+fn test_parse_iso8601_invalid() {
+ formats := [
+ '',
+ '2020-06-05X15:38:06.015959Z',
+ '2020-06-05T15:38:06.015959X',
+ '2020-06-05T15:38:06.015959+0000',
+ '2020-06-05T',
+ '2020-06-05Z',
+ '2020-06-05+00:00',
+ '15:38:06',
+ ]
+ for format in formats {
+ time.parse_iso8601(format) or {
+ assert true
+ continue
+ }
+ assert false
+ }
+}
+
+fn test_parse_iso8601_date_only() {
+ format := '2020-06-05'
+ t := time.parse_iso8601(format) or {
+ assert false
+ return
+ }
+ assert t.year == 2020
+ assert t.month == 6
+ assert t.day == 5
+ assert t.hour == 0
+ assert t.minute == 0
+ assert t.second == 0
+ assert t.microsecond == 0
+}