blob: a94ce94eabefc2f40dd0c904df89ba4e9366187c [file] [log] [blame]
using System;
using System.IO;
using System.Linq;
using System.Text;
using AppsheetEpplus;
using FluentAssertions;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace NetCoreTests;
[TestClass]
public class TimeTest {
static TimeTest() {
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
}
[TestMethod]
public void TestIncorrectDurationFromOaDate() {
ExcelWorksheet.IncorrectDurationFromOaDate(2.75).Should().Be(new(1900, 1, 1, 18, 0, 0));
ExcelWorksheet.IncorrectDurationFromOaDate(1.75).Should().Be(new(1899, 12, 31, 18, 0, 0));
ExcelWorksheet.IncorrectDurationFromOaDate(0.75).Should().Be(new(1899, 12, 30, 18, 0, 0));
ExcelWorksheet.IncorrectDurationFromOaDate(0.5).Should().Be(new(1899, 12, 30, 12, 0, 0));
ExcelWorksheet.IncorrectDurationFromOaDate(0.25).Should().Be(new(1899, 12, 30, 6, 0, 0));
ExcelWorksheet.IncorrectDurationFromOaDate(0).Should().Be(new(1899, 12, 30, 0, 0, 0));
ExcelWorksheet.IncorrectDurationFromOaDate(-0.25).Should().Be(new(1899, 12, 29, 18, 0, 0));
ExcelWorksheet.IncorrectDurationFromOaDate(-0.5).Should().Be(new(1899, 12, 29, 12, 0, 0));
ExcelWorksheet.IncorrectDurationFromOaDate(-0.75).Should().Be(new(1899, 12, 29, 6, 0, 0));
ExcelWorksheet.IncorrectDurationFromOaDate(-1.75).Should().Be(new(1899, 12, 28, 6, 0, 0));
ExcelWorksheet.IncorrectDurationFromOaDate(-2.75).Should().Be(new(1899, 12, 27, 6, 0, 0));
}
[TestMethod]
public void TestDateParse() {
var package = new ExcelPackage(new FileInfo(GetTestWorkbookPath("Times.xlsx")));
var sheet = package.Workbook.Worksheets.First();
sheet.Cells["B3"].Value.Should().Be(new DateTime(1899, 12, 30, 3, 15, 30));
sheet.Cells["C3"].Value.Should().Be(new DateTime(1899, 12, 30, 3, 15, 0));
sheet.Cells["D3"].Value.Should().Be(0.13541666666666666);
sheet.Cells["E3"].Value.Should().Be(new DateTime(1899, 12, 30, 3, 15, 30));
sheet.Cells["F3"].Value.Should().Be(0.13576388888888888);
sheet.Cells["G3"].Value.Should().Be(0.13541666666666666);
sheet.Cells["H3"].Value.Should().Be(new DateTime(1899, 12, 30, 3, 15, 30));
sheet.Cells["B7"].Value.Should().Be(new DateTime(1899, 12, 30, 23, 59, 59));
sheet.Cells["C7"].Value.Should().Be(new DateTime(1899, 12, 30, 23, 59, 0));
sheet.Cells["D7"].Value.Should().Be(0.9993055555555556);
sheet.Cells["E7"].Value.Should().Be(new DateTime(1899, 12, 30, 23, 59, 59));
sheet.Cells["F7"].Value.Should().Be(0.999988425925926);
sheet.Cells["G7"].Value.Should().Be(0.9993055555555556);
sheet.Cells["H7"].Value.Should().Be(new DateTime(1899, 12, 30, 23, 59, 59));
}
private static string GetTestWorkbookPath(string filename) {
var assemblyPath = Path.GetDirectoryName(typeof(TimeTest).Assembly.Location)!;
return Path.Combine(assemblyPath, "TestWorkbooks", filename);
}
}