@@ -193,6 +193,21 @@ func TestDateAfter(t *testing.T) {
193
193
}
194
194
}
195
195
196
+ func TestDateCompare (t * testing.T ) {
197
+ for _ , test := range []struct {
198
+ d1 , d2 Date
199
+ want int
200
+ }{
201
+ {Date {2016 , 12 , 31 }, Date {2017 , 1 , 1 }, - 1 },
202
+ {Date {2016 , 1 , 1 }, Date {2016 , 1 , 1 }, 0 },
203
+ {Date {2016 , 12 , 31 }, Date {2016 , 12 , 30 }, + 1 },
204
+ } {
205
+ if got := test .d1 .Compare (test .d2 ); got != test .want {
206
+ t .Errorf ("%v.Compare(%v): got %d, want %d" , test .d1 , test .d2 , got , test .want )
207
+ }
208
+ }
209
+ }
210
+
196
211
func TestDateIsZero (t * testing.T ) {
197
212
for _ , test := range []struct {
198
213
date Date
@@ -330,6 +345,27 @@ func TestTimeAfter(t *testing.T) {
330
345
}
331
346
}
332
347
348
+ func TestTimeCompare (t * testing.T ) {
349
+ for _ , test := range []struct {
350
+ t1 , t2 Time
351
+ want int
352
+ }{
353
+ {Time {12 , 0 , 0 , 0 }, Time {14 , 0 , 0 , 0 }, - 1 },
354
+ {Time {12 , 20 , 0 , 0 }, Time {12 , 30 , 0 , 0 }, - 1 },
355
+ {Time {12 , 20 , 10 , 0 }, Time {12 , 20 , 20 , 0 }, - 1 },
356
+ {Time {12 , 20 , 10 , 5 }, Time {12 , 20 , 10 , 10 }, - 1 },
357
+ {Time {14 , 0 , 0 , 0 }, Time {12 , 0 , 0 , 0 }, + 1 },
358
+ {Time {12 , 30 , 0 , 0 }, Time {12 , 20 , 0 , 0 }, + 1 },
359
+ {Time {12 , 20 , 20 , 0 }, Time {12 , 20 , 10 , 0 }, + 1 },
360
+ {Time {12 , 20 , 10 , 10 }, Time {12 , 20 , 10 , 5 }, + 1 },
361
+ {Time {12 , 20 , 10 , 5 }, Time {12 , 20 , 10 , 5 }, 0 },
362
+ } {
363
+ if got := test .t1 .Compare (test .t2 ); got != test .want {
364
+ t .Errorf ("%v.Compare(%v): got %d, want %d" , test .t1 , test .t2 , got , test .want )
365
+ }
366
+ }
367
+ }
368
+
333
369
func TestDateTimeToString (t * testing.T ) {
334
370
for _ , test := range []struct {
335
371
str string
@@ -453,6 +489,27 @@ func TestDateTimeAfter(t *testing.T) {
453
489
}
454
490
}
455
491
492
+ func TestDateTimeCompare (t * testing.T ) {
493
+ d1 := Date {2016 , 12 , 31 }
494
+ d2 := Date {2017 , 1 , 1 }
495
+ t1 := Time {5 , 6 , 7 , 8 }
496
+ t2 := Time {5 , 6 , 7 , 9 }
497
+ for _ , test := range []struct {
498
+ dt1 , dt2 DateTime
499
+ want int
500
+ }{
501
+ {DateTime {d1 , t1 }, DateTime {d2 , t1 }, - 1 },
502
+ {DateTime {d1 , t1 }, DateTime {d1 , t2 }, - 1 },
503
+ {DateTime {d2 , t1 }, DateTime {d1 , t1 }, + 1 },
504
+ {DateTime {d1 , t2 }, DateTime {d1 , t1 }, + 1 },
505
+ {DateTime {d2 , t1 }, DateTime {d2 , t1 }, 0 },
506
+ } {
507
+ if got := test .dt1 .Compare (test .dt2 ); got != test .want {
508
+ t .Errorf ("%v.Compare(%v): got %d, want %d" , test .dt1 , test .dt2 , got , test .want )
509
+ }
510
+ }
511
+ }
512
+
456
513
func TestDateTimeIsZero (t * testing.T ) {
457
514
for _ , test := range []struct {
458
515
dt DateTime
0 commit comments