diff options
author | xuri <xuri.me@gmail.com> | 2022-05-02 12:30:18 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-02 12:30:18 +0800 |
commit | eed431e0fc2f61b13e7745857a41cb47d9f7f810 (patch) | |
tree | 8244e1b4749d177313e51a3d73686d16c0176451 /date_test.go | |
parent | 773d4afa32a55349a7b178c4c76d182f9ed0221f (diff) |
This closes #1219, fixes cell value reading issue, improves performance, and 1904 date system support
- Fix incorrect cell data types casting results when number formatting
- Support set cell value on 1904 date system enabled, ref #1212
- Improve performance for set sheet row and the merging cells, fix performance impact when resolving #1129
Diffstat (limited to 'date_test.go')
-rw-r--r-- | date_test.go | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/date_test.go b/date_test.go index cc21e58..4091e37 100644 --- a/date_test.go +++ b/date_test.go @@ -40,7 +40,7 @@ var excelTimeInputList = []dateTest{ func TestTimeToExcelTime(t *testing.T) { for i, test := range trueExpectedDateList { t.Run(fmt.Sprintf("TestData%d", i+1), func(t *testing.T) { - excelTime, err := timeToExcelTime(test.GoValue) + excelTime, err := timeToExcelTime(test.GoValue, false) assert.NoError(t, err) assert.Equalf(t, test.ExcelValue, excelTime, "Time: %s", test.GoValue.String()) @@ -55,7 +55,7 @@ func TestTimeToExcelTime_Timezone(t *testing.T) { } for i, test := range trueExpectedDateList { t.Run(fmt.Sprintf("TestData%d", i+1), func(t *testing.T) { - _, err := timeToExcelTime(test.GoValue.In(location)) + _, err := timeToExcelTime(test.GoValue.In(location), false) assert.NoError(t, err) }) } @@ -71,21 +71,34 @@ func TestTimeFromExcelTime(t *testing.T) { for min := 0; min < 60; min++ { for sec := 0; sec < 60; sec++ { date := time.Date(2021, time.December, 30, hour, min, sec, 0, time.UTC) - excelTime, err := timeToExcelTime(date) + // Test use 1900 date system + excel1900Time, err := timeToExcelTime(date, false) assert.NoError(t, err) - dateOut := timeFromExcelTime(excelTime, false) - assert.EqualValues(t, hour, dateOut.Hour()) - assert.EqualValues(t, min, dateOut.Minute()) - assert.EqualValues(t, sec, dateOut.Second()) + date1900Out := timeFromExcelTime(excel1900Time, false) + assert.EqualValues(t, hour, date1900Out.Hour()) + assert.EqualValues(t, min, date1900Out.Minute()) + assert.EqualValues(t, sec, date1900Out.Second()) + // Test use 1904 date system + excel1904Time, err := timeToExcelTime(date, true) + assert.NoError(t, err) + date1904Out := timeFromExcelTime(excel1904Time, true) + assert.EqualValues(t, hour, date1904Out.Hour()) + assert.EqualValues(t, min, date1904Out.Minute()) + assert.EqualValues(t, sec, date1904Out.Second()) } } } } func TestTimeFromExcelTime_1904(t *testing.T) { - _, _ = shiftJulianToNoon(1, -0.6) - timeFromExcelTime(61, true) - timeFromExcelTime(62, true) + julianDays, julianFraction := shiftJulianToNoon(1, -0.6) + assert.Equal(t, julianDays, 0.0) + assert.Equal(t, julianFraction, 0.9) + julianDays, julianFraction = shiftJulianToNoon(1, 0.1) + assert.Equal(t, julianDays, 1.0) + assert.Equal(t, julianFraction, 0.6) + assert.Equal(t, timeFromExcelTime(61, true), time.Date(1904, time.March, 2, 0, 0, 0, 0, time.UTC)) + assert.Equal(t, timeFromExcelTime(62, true), time.Date(1904, time.March, 3, 0, 0, 0, 0, time.UTC)) } func TestExcelDateToTime(t *testing.T) { |