@@ -321,8 +321,8 @@ func TestDatetimeAddOutOfRange(t *testing.T) {
321
321
}
322
322
323
323
func TestDatetimeInterval (t * testing.T ) {
324
- var first = "2015-03-20T17:50:56.000000009Z "
325
- var second = "2013-01-31T17 :51:56.000000009Z "
324
+ var first = "2015-03-20T17:50:56.000000009+02:00 "
325
+ var second = "2013-01-31T11 :51:58.00000009+01:00 "
326
326
327
327
tmFirst , err := time .Parse (time .RFC3339 , first )
328
328
if err != nil {
@@ -345,14 +345,23 @@ func TestDatetimeInterval(t *testing.T) {
345
345
ivalFirst := dtFirst .Interval (dtSecond )
346
346
ivalSecond := dtSecond .Interval (dtFirst )
347
347
348
- expectedFirst := Interval {- 2 , - 2 , 0 , 11 , 0 , 1 , 0 , 0 , NoneAdjust }
349
- expectedSecond := Interval {2 , 2 , 0 , - 11 , 0 , - 1 , 0 , 0 , NoneAdjust }
348
+ expectedFirst := Interval {- 2 , - 2 , 0 , 11 , - 6 , 61 , 2 , 81 , NoneAdjust }
349
+ expectedSecond := Interval {2 , 2 , 0 , - 11 , 6 , - 61 , - 2 , - 81 , NoneAdjust }
350
350
351
351
if ! reflect .DeepEqual (ivalFirst , expectedFirst ) {
352
352
t .Errorf ("Unexpected interval %v, expected %v" , ivalFirst , expectedFirst )
353
353
}
354
354
if ! reflect .DeepEqual (ivalSecond , expectedSecond ) {
355
- t .Errorf ("Unexpected interval %v, expected %v" , ivalFirst , expectedSecond )
355
+ t .Errorf ("Unexpected interval %v, expected %v" , ivalSecond , expectedSecond )
356
+ }
357
+
358
+ dtFirst , err = dtFirst .Add (ivalFirst )
359
+ if err != nil {
360
+ t .Fatalf ("Unable to add an interval: %s" , err )
361
+ }
362
+ if ! dtFirst .ToTime ().Equal (dtSecond .ToTime ()) {
363
+ t .Errorf ("Incorrect add an interval result: %s, expected %s" ,
364
+ dtFirst .ToTime (), dtSecond .ToTime ())
356
365
}
357
366
}
358
367
@@ -363,12 +372,15 @@ func TestDatetimeTarantoolInterval(t *testing.T) {
363
372
defer conn .Close ()
364
373
365
374
dates := []string {
366
- "2015-03-20T17:50:56.000000009+01:00" ,
375
+ // We could return tests with timezones after fix of the bug:
376
+ // https://github.com/tarantool/tarantool/issues/7698
377
+ //
378
+ // "2010-02-24T23:03:56.0000013-04:00",
379
+ // "2015-03-20T17:50:56.000000009+01:00",
380
+ // "2020-01-01T01:01:01+11:30",
381
+ // "2025-08-01T00:00:00.000000003+11:00",
367
382
"2015-12-21T17:50:53Z" ,
368
- "2010-02-24T23:03:56.0000013-04:00" ,
369
383
"1980-03-28T13:18:39.000099Z" ,
370
- "2025-08-01T00:00:00.000000003+11:00" ,
371
- "2020-01-01T01:01:01+11:30" ,
372
384
}
373
385
datetimes := []* Datetime {}
374
386
for _ , date := range dates {
0 commit comments