DarabonbaUnitTests/DateTest.cs (65 lines of code) (raw):

using Darabonba; using Xunit; using System; namespace DaraUnitTests { public class DateTest { Date dateLocal = new Date("2023-12-31 00:00:00.916000"); Date dateUTC = new Date("2023-12-31 00:00:00.916000 +0000"); [Fact] public void Test_TimestampStr() { Date date = new Date("1723081751"); Assert.Equal("2024-08-08 01:49:11.000000 +0000 UTC", date.DateTime.ToString("yyyy-MM-dd HH:mm:ss.ffffff '+0000 UTC'")); } [Fact] public void Test_Init_NoTimeZone() { Assert.Equal("2023-12-31 00:00:00.916000", dateLocal.DateTime.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss.ffffff")); } [Fact] public void Test_Init_WithTimeZone() { DateTime expectedDate = DateTimeOffset.Parse("2023-12-31 00:00:00.916000 +0000").UtcDateTime; Assert.Equal(expectedDate, dateUTC.DateTime); } [Fact] public void Test_Format() { Assert.Equal("2023-12-31 00:00:00.916", dateUTC.Format("yyyy-MM-dd HH:mm:ss.fff")); Assert.Equal("2023-12-31 00:00:00", dateUTC.Format("yyyy-MM-dd HH:mm:ss")); Assert.Equal("2023-12-31T00:00:00Z", dateUTC.Format("yyyy-MM-ddTHH:mm:ssZ")); } [Fact] public void Test_Unix() { Assert.Equal(1703980800, dateUTC.Unix()); Assert.Equal(1703980800, dateLocal.Unix()); } [Fact] public void Test_UTC() { Assert.Equal("2023-12-31 00:00:00.916000 +0000 UTC", dateUTC.UTC()); // Local time Assert.Equal("2023-12-31 00:00:00.916000 +0000 UTC", dateLocal.UTC()); } [Fact] public void Test_Methods() { Date yesterday = dateUTC.Sub("day", 1); Assert.Equal("2023-12-30 00:00:00.916", yesterday.Format("yyyy-MM-dd HH:mm:ss.fff")); Assert.Equal(1, dateUTC.Diff("day", yesterday)); Date tomorrow = dateUTC.Add("day", 1); Assert.Equal(-1, dateUTC.Diff("day", tomorrow)); Assert.Equal(2023, dateUTC.Year()); Assert.Equal(2024, tomorrow.Year()); Assert.Equal(1, tomorrow.Month()); Assert.Equal(12, dateUTC.Month()); Assert.Equal(0, dateUTC.Hour()); Assert.Equal(0, dateUTC.Minute()); Assert.Equal(0, dateUTC.Second()); Assert.Equal(31, dateUTC.DayOfMonth()); Assert.Equal(7, dateUTC.DayOfWeek()); } } }