@@ -321,8 +321,8 @@ func TestDatetimeAddOutOfRange(t *testing.T) {
321321}
322322
323323func 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 "
326326
327327 tmFirst , err := time .Parse (time .RFC3339 , first )
328328 if err != nil {
@@ -345,14 +345,23 @@ func TestDatetimeInterval(t *testing.T) {
345345 ivalFirst := dtFirst .Interval (dtSecond )
346346 ivalSecond := dtSecond .Interval (dtFirst )
347347
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 }
350350
351351 if ! reflect .DeepEqual (ivalFirst , expectedFirst ) {
352352 t .Errorf ("Unexpected interval %v, expected %v" , ivalFirst , expectedFirst )
353353 }
354354 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 ())
356365 }
357366}
358367
@@ -363,12 +372,20 @@ func TestDatetimeTarantoolInterval(t *testing.T) {
363372 defer conn .Close ()
364373
365374 dates := []string {
366- "2015-03-20T17:50:56.000000009+01:00" ,
375+ // We could return tests with timezones after a release with a fix of
376+ // the bug:
377+ // https://github.com/tarantool/tarantool/issues/7698
378+ //
379+ // "2010-02-24T23:03:56.0000013-04:00",
380+ // "2015-03-20T17:50:56.000000009+01:00",
381+ // "2020-01-01T01:01:01+11:30",
382+ // "2025-08-01T00:00:00.000000003+11:00",
383+ "2010-02-24T23:03:56.0000013Z" ,
384+ "2015-03-20T17:50:56.000000009Z" ,
385+ "2020-01-01T01:01:01Z" ,
386+ "2025-08-01T00:00:00.000000003Z" ,
367387 "2015-12-21T17:50:53Z" ,
368- "2010-02-24T23:03:56.0000013-04:00" ,
369388 "1980-03-28T13:18:39.000099Z" ,
370- "2025-08-01T00:00:00.000000003+11:00" ,
371- "2020-01-01T01:01:01+11:30" ,
372389 }
373390 datetimes := []* Datetime {}
374391 for _ , date := range dates {
0 commit comments