carbon/outputer_unit_test.go

2713 lines
57 KiB
Go
Raw Normal View History

2021-02-18 14:32:31 +08:00
package carbon
import (
"github.com/stretchr/testify/assert"
2021-02-18 14:32:31 +08:00
"testing"
"time"
2021-02-18 14:32:31 +08:00
)
func TestCarbon_String(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").String(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15").String(),
want: "0000-01-01 13:14:15",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15").String(),
want: "0001-01-01 13:14:15",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15").String(),
want: "2020-08-05 13:14:15",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "String()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_GoString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
want string
actual string
}{
{
name: "case1",
actual: Parse("").GoString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15", UTC).GoString(),
want: "time.Date(0, time.January, 1, 13, 14, 15, 0, time.UTC)",
2024-04-09 20:12:49 +08:00
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15", UTC).GoString(),
want: "time.Date(1, time.January, 1, 13, 14, 15, 0, time.UTC)",
2024-04-09 20:12:49 +08:00
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15", UTC).GoString(),
want: "time.Date(2020, time.August, 5, 13, 14, 15, 0, time.UTC)",
2024-04-09 20:12:49 +08:00
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "GoString()")
})
}
}
func TestCarbon_ToString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15").ToString(),
want: "0000-01-01 13:14:15 +0805 LMT",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15").ToString(),
want: "0001-01-01 13:14:15 +0805 LMT",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15").ToString(PRC),
want: "2020-08-05 13:14:15 +0800 CST",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToString()")
})
}
}
2021-07-31 13:28:08 +08:00
func TestCarbon_ToMonthString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToMonthString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-01-05").ToMonthString(),
want: "January",
},
{
name: "case3",
actual: Parse("2020-02-05").ToMonthString(),
want: "February",
},
{
name: "case4",
actual: Parse("2020-03-05").ToMonthString(),
want: "March",
},
{
name: "case5",
actual: Parse("2020-04-05").ToMonthString(),
want: "April",
},
{
name: "case6",
actual: Parse("2020-05-05").ToMonthString(),
want: "May",
},
{
name: "case7",
actual: Parse("2020-06-05").ToMonthString(),
want: "June",
},
{
name: "case8",
actual: Parse("2020-07-05").ToMonthString(),
want: "July",
},
{
name: "case9",
actual: Parse("2020-08-05").ToMonthString(),
want: "August",
},
{
name: "case10",
actual: Parse("2020-09-05").ToMonthString(),
want: "September",
},
{
name: "case11",
actual: Parse("2020-10-05").ToMonthString(),
want: "October",
},
{
name: "case12",
actual: Parse("2020-11-05").ToMonthString(),
want: "November",
},
{
name: "case13",
actual: Parse("2020-12-05").ToMonthString(PRC),
want: "December",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToMonthString()")
})
2021-02-23 09:32:55 +08:00
}
}
2021-07-31 13:28:08 +08:00
func TestCarbon_ToShortMonthString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToShortMonthString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-01-05").ToShortMonthString(),
want: "Jan",
},
{
name: "case3",
actual: Parse("2020-02-05").ToShortMonthString(),
want: "Feb",
},
{
name: "case4",
actual: Parse("2020-03-05").ToShortMonthString(),
want: "Mar",
},
{
name: "case5",
actual: Parse("2020-04-05").ToShortMonthString(),
want: "Apr",
},
{
name: "case6",
actual: Parse("2020-05-05").ToShortMonthString(),
want: "May",
},
{
name: "case7",
actual: Parse("2020-06-05").ToShortMonthString(),
want: "Jun",
},
{
name: "case8",
actual: Parse("2020-07-05").ToShortMonthString(),
want: "Jul",
},
{
name: "case9",
actual: Parse("2020-08-05").ToShortMonthString(),
want: "Aug",
},
{
name: "case10",
actual: Parse("2020-09-05").ToShortMonthString(),
want: "Sep",
},
{
name: "case11",
actual: Parse("2020-10-05").ToShortMonthString(),
want: "Oct",
},
{
name: "case12",
actual: Parse("2020-11-05").ToShortMonthString(),
want: "Nov",
},
{
name: "case13",
actual: Parse("2020-12-05").ToShortMonthString(PRC),
want: "Dec",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToShortMonthString()")
})
2021-02-23 09:32:55 +08:00
}
}
2021-07-31 13:28:08 +08:00
func TestCarbon_ToWeekString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToWeekString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-01").ToWeekString(),
want: "Saturday",
},
{
name: "case3",
actual: Parse("2020-08-02").ToWeekString(),
want: "Sunday",
},
{
name: "case4",
actual: Parse("2020-08-03").ToWeekString(),
want: "Monday",
},
{
name: "case5",
actual: Parse("2020-08-04").ToWeekString(),
want: "Tuesday",
},
{
name: "case6",
actual: Parse("2020-08-05").ToWeekString(),
want: "Wednesday",
},
{
name: "case7",
actual: Parse("2020-08-06").ToWeekString(),
want: "Thursday",
},
{
name: "case8",
actual: Parse("2020-08-07").ToWeekString(PRC),
want: "Friday",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToWeekString()")
})
2021-02-23 09:32:55 +08:00
}
}
2021-07-31 13:28:08 +08:00
func TestCarbon_ToShortWeekString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToShortWeekString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-01").ToShortWeekString(),
want: "Sat",
},
{
name: "case3",
actual: Parse("2020-08-02").ToShortWeekString(),
want: "Sun",
},
{
name: "case4",
actual: Parse("2020-08-03").ToShortWeekString(),
want: "Mon",
},
{
name: "case5",
actual: Parse("2020-08-04").ToShortWeekString(),
want: "Tue",
},
{
name: "case6",
actual: Parse("2020-08-05").ToShortWeekString(),
want: "Wed",
},
{
name: "case7",
actual: Parse("2020-08-06").ToShortWeekString(),
want: "Thu",
},
{
name: "case8",
actual: Parse("2020-08-07").ToShortWeekString(PRC),
want: "Fri",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToShortWeekString()")
})
2021-02-23 09:32:55 +08:00
}
}
2021-02-18 14:32:31 +08:00
func TestCarbon_ToDayDateTimeString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
2021-02-18 14:32:31 +08:00
}{
2024-04-09 20:12:49 +08:00
{
name: "case1",
actual: Parse("").ToDayDateTimeString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05 13:14:15").ToDayDateTimeString(),
want: "Wed, Aug 5, 2020 1:14 PM",
},
{
name: "case3",
actual: Parse("2020-08-05").ToDayDateTimeString(PRC),
want: "Wed, Aug 5, 2020 12:00 AM",
},
2021-02-18 14:32:31 +08:00
}
2024-04-09 20:12:49 +08:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToDayDateTimeString()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToDateTimeString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
2021-02-18 14:32:31 +08:00
}{
2024-04-09 20:12:49 +08:00
{
name: "case1",
actual: Parse("").ToDateTimeString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05 13:14:15").ToDateTimeString(),
want: "2020-08-05 13:14:15",
},
{
name: "case3",
actual: Parse("2020-08-05").ToDateTimeString(PRC),
want: "2020-08-05 00:00:00",
},
2021-02-18 14:32:31 +08:00
}
2024-04-09 20:12:49 +08:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToDateTimeString()")
})
}
}
func TestCarbon_ToDateTimeMilliString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
2024-04-09 20:12:49 +08:00
{
name: "case1",
actual: Parse("").ToDateTimeMilliString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeMilliString(),
want: "2020-08-05 13:14:15.999",
},
{
name: "case3",
actual: Parse("2020-08-05").ToDateTimeMilliString(PRC),
want: "2020-08-05 00:00:00",
},
}
2024-04-09 20:12:49 +08:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToDateTimeMilliString()")
})
}
}
func TestCarbon_ToDateTimeMicroString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
2024-04-09 20:12:49 +08:00
{
name: "case1",
actual: Parse("").ToDateTimeMicroString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeMicroString(),
want: "2020-08-05 13:14:15.999999",
},
{
name: "case3",
actual: Parse("2020-08-05").ToDateTimeMicroString(PRC),
want: "2020-08-05 00:00:00",
},
}
2024-04-09 20:12:49 +08:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToDateTimeMicroString()")
})
}
}
func TestCarbon_ToDateTimeNanoString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
2024-04-09 20:12:49 +08:00
{
name: "case1",
actual: Parse("").ToDateTimeNanoString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeNanoString(),
want: "2020-08-05 13:14:15.999999999",
},
{
name: "case3",
actual: Parse("2020-08-05").ToDateTimeNanoString(PRC),
want: "2020-08-05 00:00:00",
},
}
2024-04-09 20:12:49 +08:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToDateTimeNanoString()")
})
}
}
func TestCarbon_ToShortDateTimeString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToShortDateTimeString(),
want: "",
},
{
name: "case2",
actual: Parse("xxx").ToShortDateTimeString(),
want: "",
},
{
name: "case3",
actual: Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeString(),
want: "20200805131415",
},
{
name: "case4",
actual: Parse("2020-08-05").ToShortDateTimeString(PRC),
want: "20200805000000",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToShortDateTimeString()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToShortDateTimeMilliString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
2024-04-09 20:12:49 +08:00
{
name: "case1",
actual: Parse("").ToShortDateTimeMilliString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeMilliString(),
want: "20200805131415.999",
},
{
name: "case3",
actual: Parse("2020-08-05").ToShortDateTimeMilliString(PRC),
want: "20200805000000",
},
}
2024-04-09 20:12:49 +08:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToShortDateTimeMilliString()")
})
}
}
func TestCarbon_ToShortDateTimeMicroString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
2024-04-09 20:12:49 +08:00
{
name: "case1",
actual: Parse("").ToShortDateTimeMicroString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeMicroString(),
want: "20200805131415.999999",
},
{
name: "case3",
actual: Parse("2020-08-05").ToShortDateTimeMicroString(PRC),
want: "20200805000000",
},
}
2024-04-09 20:12:49 +08:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToShortDateTimeMicroString()")
})
}
}
func TestCarbon_ToShortDateTimeNanoString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
2024-04-09 20:12:49 +08:00
{
name: "case1",
actual: Parse("").ToShortDateTimeNanoString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeNanoString(),
want: "20200805131415.999999999",
},
{
name: "case3",
actual: Parse("2020-08-05").ToShortDateTimeNanoString(PRC),
want: "20200805000000",
},
}
2024-04-09 20:12:49 +08:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToShortDateTimeNanoString()")
})
}
}
2021-02-18 14:32:31 +08:00
func TestCarbon_ToDateString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
2021-02-18 14:32:31 +08:00
}{
2024-04-09 20:12:49 +08:00
{
name: "case1",
actual: Parse("").ToDateString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05T13:14:15.999999999+08:00").ToDateString(),
want: "2020-08-05",
},
{
name: "case3",
actual: Parse("2020-08-05").ToDateString(PRC),
want: "2020-08-05",
},
2021-02-18 14:32:31 +08:00
}
2024-04-09 20:12:49 +08:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToDateString()")
})
}
}
2021-02-18 14:32:31 +08:00
func TestCarbon_ToDateMilliString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
2024-04-09 20:12:49 +08:00
{
name: "case1",
actual: Parse("").ToDateMilliString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05T13:14:15.999999999+08:00").ToDateMilliString(),
want: "2020-08-05.999",
},
{
name: "case3",
actual: Parse("2020-08-05").ToDateMilliString(PRC),
want: "2020-08-05",
},
}
2024-04-09 20:12:49 +08:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToDateMilliString()")
})
}
}
func TestCarbon_ToDateMicroString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
2024-04-09 20:12:49 +08:00
{
name: "case1",
actual: Parse("").ToDateMicroString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05T13:14:15.999999999+08:00").ToDateMicroString(),
want: "2020-08-05.999999",
},
{
name: "case3",
actual: Parse("2020-08-05").ToDateMicroString(PRC),
want: "2020-08-05",
},
}
2024-04-09 20:12:49 +08:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToDateMicroString()")
})
}
}
func TestCarbon_ToDateNanoString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
2024-04-09 20:12:49 +08:00
{
name: "case1",
actual: Parse("").ToDateNanoString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05T13:14:15.999999999+08:00").ToDateNanoString(),
want: "2020-08-05.999999999",
},
{
name: "case3",
actual: Parse("2020-08-05").ToDateNanoString(PRC),
want: "2020-08-05",
},
}
2024-04-09 20:12:49 +08:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToDateNanoString()")
})
}
}
func TestCarbon_ToShortDateString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
2024-04-09 20:12:49 +08:00
{
name: "case1",
actual: Parse("").ToShortDateString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateString(),
want: "20200805",
},
{
name: "case3",
actual: Parse("2020-08-05").ToShortDateString(PRC),
want: "20200805",
},
}
2024-04-09 20:12:49 +08:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToShortDateString()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToShortDateMilliString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
2024-04-09 20:12:49 +08:00
{
name: "case1",
actual: Parse("").ToShortDateMilliString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateMilliString(),
want: "20200805.999",
},
{
name: "case3",
actual: Parse("2020-08-05").ToShortDateMilliString(PRC),
want: "20200805",
},
}
2024-04-09 20:12:49 +08:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToShortDateMilliString()")
})
}
}
func TestCarbon_ToShortDateNanoString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
2024-04-09 20:12:49 +08:00
{
name: "case1",
actual: Parse("").ToShortDateNanoString(),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateNanoString(),
want: "20200805.999999999",
},
{
name: "case3",
actual: Parse("2020-08-05").ToShortDateNanoString(PRC),
want: "20200805",
},
}
2024-04-09 20:12:49 +08:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToShortDateNanoString()")
})
}
}
func TestCarbon_ToShortDateMicroString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToShortDateMicroString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15").ToShortDateMicroString(),
want: "00000101",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15").ToShortDateMicroString(),
want: "00010101",
},
{
name: "case4",
actual: Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateMicroString(),
want: "20200805.999999",
},
{
name: "case5",
actual: Parse("2020-08-05").ToShortDateMicroString(PRC),
want: "20200805",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToShortDateMicroString()")
})
}
}
2021-02-18 14:32:31 +08:00
func TestCarbon_ToTimeString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToTimeString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15").ToTimeString(),
want: "13:14:15",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15").ToTimeString(),
want: "13:14:15",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15").ToTimeString(),
want: "13:14:15",
},
{
name: "case5",
actual: Parse("2020-08-05").ToTimeString(PRC),
want: "00:00:00",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToTimeString()")
})
}
}
2021-02-18 14:32:31 +08:00
func TestCarbon_ToTimeMilliString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToTimeMilliString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToTimeMilliString(),
want: "13:14:15.999",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToTimeMilliString(),
want: "13:14:15.999",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToTimeMilliString(),
want: "13:14:15.999",
},
{
name: "case5",
actual: Parse("2020-08-05").ToTimeMilliString(PRC),
want: "00:00:00",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToTimeMilliString()")
})
}
}
func TestCarbon_ToTimeMicroString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToTimeMicroString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToTimeMicroString(),
want: "13:14:15.999999",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToTimeMicroString(),
want: "13:14:15.999999",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToTimeMicroString(),
want: "13:14:15.999999",
},
{
name: "case5",
actual: Parse("2020-08-05").ToTimeMicroString(PRC),
want: "00:00:00",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToTimeMicroString()")
})
}
}
func TestCarbon_ToTimeNanoString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToTimeNanoString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToTimeNanoString(),
want: "13:14:15.999999999",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToTimeNanoString(),
want: "13:14:15.999999999",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToTimeNanoString(),
want: "13:14:15.999999999",
},
{
name: "case5",
actual: Parse("2020-08-05").ToTimeNanoString(PRC),
want: "00:00:00",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToTimeNanoString()")
})
}
}
func TestCarbon_ToShortTimeString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToShortTimeString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToShortTimeString(),
want: "131415",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToShortTimeString(),
want: "131415",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToShortTimeString(),
want: "131415",
},
{
name: "case5",
actual: Parse("2020-08-05").ToShortTimeString(PRC),
want: "000000",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToShortTimeString()")
})
}
}
func TestCarbon_ToShortTimeMilliString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToShortTimeMilliString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToShortTimeMilliString(),
want: "131415.999",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToShortTimeMilliString(),
want: "131415.999",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToShortTimeMilliString(),
want: "131415.999",
},
{
name: "case5",
actual: Parse("2020-08-05").ToShortTimeMilliString(PRC),
want: "000000",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToShortTimeMilliString()")
})
}
}
func TestCarbon_ToShortTimeMicroString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToShortTimeMicroString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToShortTimeMicroString(),
want: "131415.999999",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToShortTimeMicroString(),
want: "131415.999999",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToShortTimeMicroString(),
want: "131415.999999",
},
{
name: "case5",
actual: Parse("2020-08-05").ToShortTimeMicroString(PRC),
want: "000000",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToShortTimeMicroString()")
})
}
}
func TestCarbon_ToShortTimeNanoString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToShortTimeNanoString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToShortTimeNanoString(),
want: "131415.999999999",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToShortTimeNanoString(),
want: "131415.999999999",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToShortTimeNanoString(),
want: "131415.999999999",
},
{
name: "case5",
actual: Parse("2020-08-05").ToShortTimeNanoString(PRC),
want: "000000",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToShortTimeNanoString()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToAtomString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToAtomString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToAtomString(),
want: "0000-01-01T13:14:15+08:05",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToAtomString(),
want: "0001-01-01T13:14:15+08:05",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToAtomString(),
want: "2020-08-05T13:14:15+08:00",
},
{
name: "case5",
actual: Parse("2020-08-05").ToAtomString(PRC),
want: "2020-08-05T00:00:00+08:00",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToAtomString()")
})
2021-02-18 14:32:31 +08:00
}
}
2023-12-24 18:35:29 +08:00
func TestCarbon_ToAnsicString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToAnsicString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToAnsicString(),
want: "Sat Jan 1 13:14:15 0000",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToAnsicString(),
want: "Mon Jan 1 13:14:15 0001",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToAnsicString(),
want: "Wed Aug 5 13:14:15 2020",
},
{
name: "case5",
actual: Parse("2020-08-05").ToAnsicString(PRC),
want: "Wed Aug 5 00:00:00 2020",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToAnsicString()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToCookieString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToCookieString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToCookieString(),
want: "Saturday, 01-Jan-0000 13:14:15 LMT",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToCookieString(),
want: "Monday, 01-Jan-0001 13:14:15 LMT",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToCookieString(),
want: "Wednesday, 05-Aug-2020 13:14:15 CST",
},
{
name: "case5",
actual: Parse("2020-08-05").ToCookieString(PRC),
want: "Wednesday, 05-Aug-2020 00:00:00 CST",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToCookieString()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToRssString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToRssString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToRssString(),
want: "Sat, 01 Jan 0000 13:14:15 +0805",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToRssString(),
want: "Mon, 01 Jan 0001 13:14:15 +0805",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToRssString(),
want: "Wed, 05 Aug 2020 13:14:15 +0800",
},
{
name: "case5",
actual: Parse("2020-08-05").ToRssString(PRC),
want: "Wed, 05 Aug 2020 00:00:00 +0800",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToRssString()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToW3cString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToW3cString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToW3cString(),
want: "0000-01-01T13:14:15+08:05",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToW3cString(),
want: "0001-01-01T13:14:15+08:05",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToW3cString(),
want: "2020-08-05T13:14:15+08:00",
},
{
name: "case5",
actual: Parse("2020-08-05").ToW3cString(PRC),
want: "2020-08-05T00:00:00+08:00",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToW3cString()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToUnixDateString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToUnixDateString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToUnixDateString(),
want: "Sat Jan 1 13:14:15 LMT 0000",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToUnixDateString(),
want: "Mon Jan 1 13:14:15 LMT 0001",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToUnixDateString(),
want: "Wed Aug 5 13:14:15 CST 2020",
},
{
name: "case5",
actual: Parse("2020-08-05").ToUnixDateString(PRC),
want: "Wed Aug 5 00:00:00 CST 2020",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToUnixDateString()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToRubyDateString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToRubyDateString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToRubyDateString(),
want: "Sat Jan 01 13:14:15 +0805 0000",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToRubyDateString(),
want: "Mon Jan 01 13:14:15 +0805 0001",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToRubyDateString(),
want: "Wed Aug 05 13:14:15 +0800 2020",
},
{
name: "case5",
actual: Parse("2020-08-05").ToRubyDateString(PRC),
want: "Wed Aug 05 00:00:00 +0800 2020",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToRubyDateString()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToKitchenString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToKitchenString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToKitchenString(),
want: "1:14PM",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToKitchenString(),
want: "1:14PM",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToKitchenString(),
want: "1:14PM",
},
{
name: "case5",
actual: Parse("2020-08-05").ToKitchenString(PRC),
want: "12:00AM",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToKitchenString()")
})
}
}
func TestCarbon_ToIso8601String(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToIso8601String(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToIso8601String(),
want: "0000-01-01T13:14:15+08:05",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToIso8601String(),
want: "0001-01-01T13:14:15+08:05",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToIso8601String(),
want: "2020-08-05T13:14:15+08:00",
},
{
name: "case5",
actual: Parse("2020-08-05").ToIso8601String(PRC),
want: "2020-08-05T00:00:00+08:00",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToIso8601String()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToIso8601MilliString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToIso8601MilliString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToIso8601MilliString(),
want: "0000-01-01T13:14:15.999+08:05",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToIso8601MilliString(),
want: "0001-01-01T13:14:15.999+08:05",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToIso8601MilliString(),
want: "2020-08-05T13:14:15.999+08:00",
},
{
name: "case5",
actual: Parse("2020-08-05").ToIso8601MilliString(PRC),
want: "2020-08-05T00:00:00+08:00",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToIso8601MilliString()")
})
}
}
func TestCarbon_ToIso8601MicroString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToIso8601MicroString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToIso8601MicroString(),
want: "0000-01-01T13:14:15.999999+08:05",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToIso8601MicroString(),
want: "0001-01-01T13:14:15.999999+08:05",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToIso8601MicroString(),
want: "2020-08-05T13:14:15.999999+08:00",
},
{
name: "case5",
actual: Parse("2020-08-05").ToIso8601MicroString(PRC),
want: "2020-08-05T00:00:00+08:00",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToIso8601MicroString()")
})
}
}
func TestCarbon_ToIso8601NanoString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToIso8601NanoString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToIso8601NanoString(),
want: "0000-01-01T13:14:15.999999999+08:05",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToIso8601NanoString(),
want: "0001-01-01T13:14:15.999999999+08:05",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToIso8601NanoString(),
want: "2020-08-05T13:14:15.999999999+08:00",
},
{
name: "case5",
actual: Parse("2020-08-05").ToIso8601NanoString(PRC),
want: "2020-08-05T00:00:00+08:00",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToIso8601NanoString()")
})
}
}
func TestCarbon_ToIso8601ZuluString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToIso8601ZuluString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToIso8601ZuluString(),
want: "0000-01-01T13:14:15Z",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToIso8601ZuluString(),
want: "0001-01-01T13:14:15Z",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToIso8601ZuluString(),
want: "2020-08-05T13:14:15Z",
},
{
name: "case5",
actual: Parse("2020-08-05").ToIso8601ZuluString(PRC),
want: "2020-08-05T00:00:00Z",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToIso8601ZuluString()")
})
}
}
func TestCarbon_ToIso8601ZuluMilliString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToIso8601ZuluMilliString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToIso8601ZuluMilliString(),
want: "0000-01-01T13:14:15.999Z",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToIso8601ZuluMilliString(),
want: "0001-01-01T13:14:15.999Z",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToIso8601ZuluMilliString(),
want: "2020-08-05T13:14:15.999Z",
},
{
name: "case5",
actual: Parse("2020-08-05").ToIso8601ZuluMilliString(PRC),
want: "2020-08-05T00:00:00Z",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToIso8601ZuluMilliString()")
})
}
}
func TestCarbon_ToIso8601ZuluMicroString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToIso8601ZuluMicroString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToIso8601ZuluMicroString(),
want: "0000-01-01T13:14:15.999999Z",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToIso8601ZuluMicroString(),
want: "0001-01-01T13:14:15.999999Z",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToIso8601ZuluMicroString(),
want: "2020-08-05T13:14:15.999999Z",
},
{
name: "case5",
actual: Parse("2020-08-05").ToIso8601ZuluMicroString(PRC),
want: "2020-08-05T00:00:00Z",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToIso8601ZuluMicroString()")
})
}
}
func TestCarbon_ToIso8601ZuluNanoString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToIso8601ZuluNanoString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToIso8601ZuluNanoString(),
want: "0000-01-01T13:14:15.999999999Z",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToIso8601ZuluNanoString(),
want: "0001-01-01T13:14:15.999999999Z",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToIso8601ZuluNanoString(),
want: "2020-08-05T13:14:15.999999999Z",
},
{
name: "case5",
actual: Parse("2020-08-05").ToIso8601ZuluNanoString(PRC),
want: "2020-08-05T00:00:00Z",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToIso8601ZuluNanoString()")
})
}
}
func TestCarbon_ToRfc822String(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToRfc822String(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToRfc822String(),
want: "01 Jan 00 13:14 LMT",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToRfc822String(),
want: "01 Jan 01 13:14 LMT",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToRfc822String(),
want: "05 Aug 20 13:14 CST",
},
{
name: "case5",
actual: Parse("2020-08-05").ToRfc822String(PRC),
want: "05 Aug 20 00:00 CST",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToRfc822String()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToRfc822zString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToRfc822zString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToRfc822zString(),
want: "01 Jan 00 13:14 +0805",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToRfc822zString(),
want: "01 Jan 01 13:14 +0805",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToRfc822zString(),
want: "05 Aug 20 13:14 +0800",
},
{
name: "case5",
actual: Parse("2020-08-05").ToRfc822zString(PRC),
want: "05 Aug 20 00:00 +0800",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToRfc822zString()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToRfc850String(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToRfc850String(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToRfc850String(),
want: "Saturday, 01-Jan-00 13:14:15 LMT",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToRfc850String(),
want: "Monday, 01-Jan-01 13:14:15 LMT",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToRfc850String(),
want: "Wednesday, 05-Aug-20 13:14:15 CST",
},
{
name: "case5",
actual: Parse("2020-08-05").ToRfc850String(PRC),
want: "Wednesday, 05-Aug-20 00:00:00 CST",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToRfc850String()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToRfc1036String(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToRfc1036String(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToRfc1036String(),
want: "Sat, 01 Jan 00 13:14:15 +0805",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToRfc1036String(),
want: "Mon, 01 Jan 01 13:14:15 +0805",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToRfc1036String(),
want: "Wed, 05 Aug 20 13:14:15 +0800",
},
{
name: "case5",
actual: Parse("2020-08-05").ToRfc1036String(PRC),
want: "Wed, 05 Aug 20 00:00:00 +0800",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToRfc1036String()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToRfc1123String(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToRfc1123String(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToRfc1123String(),
want: "Sat, 01 Jan 0000 13:14:15 LMT",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToRfc1123String(),
want: "Mon, 01 Jan 0001 13:14:15 LMT",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToRfc1123String(),
want: "Wed, 05 Aug 2020 13:14:15 CST",
},
{
name: "case5",
actual: Parse("2020-08-05").ToRfc1123String(PRC),
want: "Wed, 05 Aug 2020 00:00:00 CST",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToRfc1123String()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToRfc1123zString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToRfc1123zString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToRfc1123zString(),
want: "Sat, 01 Jan 0000 13:14:15 +0805",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToRfc1123zString(),
want: "Mon, 01 Jan 0001 13:14:15 +0805",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToRfc1123zString(),
want: "Wed, 05 Aug 2020 13:14:15 +0800",
},
{
name: "case5",
actual: Parse("2020-08-05").ToRfc1123zString(PRC),
want: "Wed, 05 Aug 2020 00:00:00 +0800",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToRfc1123String()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToRfc2822String(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToRfc2822String(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToRfc2822String(),
want: "Sat, 01 Jan 0000 13:14:15 +0805",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToRfc2822String(),
want: "Mon, 01 Jan 0001 13:14:15 +0805",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToRfc2822String(),
want: "Wed, 05 Aug 2020 13:14:15 +0800",
},
{
name: "case5",
actual: Parse("2020-08-05").ToRfc2822String(PRC),
want: "Wed, 05 Aug 2020 00:00:00 +0800",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToRfc2822String()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_ToRfc3339String(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToRfc3339String(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToRfc3339String(),
want: "0000-01-01T13:14:15+08:05",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToRfc3339String(),
want: "0001-01-01T13:14:15+08:05",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToRfc3339String(),
want: "2020-08-05T13:14:15+08:00",
},
{
name: "case5",
actual: Parse("2020-08-05").ToRfc3339String(PRC),
want: "2020-08-05T00:00:00+08:00",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToRfc3339String()")
})
}
}
2021-02-18 14:32:31 +08:00
func TestCarbon_ToRfc3339MilliString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToRfc3339MilliString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToRfc3339MilliString(),
want: "0000-01-01T13:14:15.999+08:05",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToRfc3339MilliString(),
want: "0001-01-01T13:14:15.999+08:05",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToRfc3339MilliString(),
want: "2020-08-05T13:14:15.999+08:00",
},
{
name: "case5",
actual: Parse("2020-08-05").ToRfc3339MilliString(PRC),
want: "2020-08-05T00:00:00+08:00",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToRfc3339MilliString()")
})
}
}
func TestCarbon_ToRfc3339MicroString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToRfc3339MicroString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToRfc3339MicroString(),
want: "0000-01-01T13:14:15.999999+08:05",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToRfc3339MicroString(),
want: "0001-01-01T13:14:15.999999+08:05",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToRfc3339MicroString(),
want: "2020-08-05T13:14:15.999999+08:00",
},
{
name: "case5",
actual: Parse("2020-08-05").ToRfc3339MicroString(PRC),
want: "2020-08-05T00:00:00+08:00",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToRfc3339MicroString()")
})
}
}
func TestCarbon_ToRfc3339NanoString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToRfc3339NanoString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToRfc3339NanoString(),
want: "0000-01-01T13:14:15.999999999+08:05",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToRfc3339NanoString(),
want: "0001-01-01T13:14:15.999999999+08:05",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToRfc3339NanoString(),
want: "2020-08-05T13:14:15.999999999+08:00",
},
{
name: "case5",
actual: Parse("2020-08-05").ToRfc3339NanoString(PRC),
want: "2020-08-05T00:00:00+08:00",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToRfc3339NanoString()")
})
}
}
func TestCarbon_ToRfc7231String(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToRfc7231String(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToRfc7231String(),
want: "Sat, 01 Jan 0000 13:14:15 LMT",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToRfc7231String(),
want: "Mon, 01 Jan 0001 13:14:15 LMT",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToRfc7231String(),
want: "Wed, 05 Aug 2020 13:14:15 CST",
},
{
name: "case5",
actual: Parse("2020-08-05").ToRfc7231String(PRC),
want: "Wed, 05 Aug 2020 00:00:00 CST",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToRfc7231String()")
})
}
}
func TestCarbon_ToFormattedDateString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToFormattedDateString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToFormattedDateString(),
want: "Jan 1, 0000",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToFormattedDateString(),
want: "Jan 1, 0001",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToFormattedDateString(),
want: "Aug 5, 2020",
},
{
name: "case5",
actual: Parse("2020-08-05").ToFormattedDateString(PRC),
want: "Aug 5, 2020",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToFormattedDateString()")
})
}
}
func TestCarbon_ToFormattedDayDateString(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").ToFormattedDayDateString(),
want: "",
},
{
name: "case2",
actual: Parse("0000-01-01 13:14:15.999999999").ToFormattedDayDateString(),
want: "Sat, Jan 1, 0000",
},
{
name: "case3",
actual: Parse("0001-01-01 13:14:15.999999999").ToFormattedDayDateString(),
want: "Mon, Jan 1, 0001",
},
{
name: "case4",
actual: Parse("2020-08-05 13:14:15.999999999").ToFormattedDayDateString(),
want: "Wed, Aug 5, 2020",
},
{
name: "case5",
actual: Parse("2020-08-05").ToFormattedDayDateString(PRC),
want: "Wed, Aug 5, 2020",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToFormattedDayDateString()")
})
2021-02-18 14:32:31 +08:00
}
}
func TestCarbon_Layout(t *testing.T) {
tests := []struct {
2024-04-09 20:12:49 +08:00
name string
actual string
want string
2021-02-18 14:32:31 +08:00
}{
2024-04-09 20:12:49 +08:00
{
name: "case1",
actual: Parse("").Layout(""),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05 13:14:15").Layout("2006年01月02日"),
want: "2020年08月05日",
},
{
name: "case3",
actual: Parse("2020-08-05 13:14:15").Layout("Mon, 02 Jan 2006 15:04:05 GMT"),
want: "Wed, 05 Aug 2020 13:14:15 GMT",
},
2024-10-11 22:54:20 +08:00
{
name: "case4",
actual: Parse("2020-08-05 13:14:15").Layout(DateTimeLayout, PRC),
want: "2020-08-05 13:14:15",
},
}
2024-04-09 20:12:49 +08:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "Layout()")
})
}
}
func TestCarbon_Format(t *testing.T) {
2024-04-09 20:12:49 +08:00
tests := []struct {
name string
actual string
want string
}{
{
name: "case1",
actual: Parse("").Format(""),
want: "",
},
{
name: "case2",
actual: Parse("2020-08-05 01:14:15").Format("D"),
want: "Wed",
},
{
name: "case3",
actual: Parse("2020-08-05 01:14:15").Format("l"),
want: "Wednesday",
},
{
name: "case4",
actual: Parse("2020-08-05 01:14:15").Format("F"),
want: "August",
},
{
name: "case5",
actual: Parse("2020-08-05 01:14:15").Format("M"),
want: "Aug",
},
{
name: "case6",
actual: Parse("2020-08-05 13:14:15").Format("Y年m月d日"),
want: "2020年08月05日",
},
{
name: "case7",
actual: Parse("2020-08-05 13:14:15").Format("j"),
want: "5",
},
{
2024-04-09 22:09:34 +08:00
name: "case8",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15").Format("W"),
want: "32",
},
{
2024-04-09 22:09:34 +08:00
name: "case9",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15").Format("F"),
want: "August",
},
{
2024-04-09 22:09:34 +08:00
name: "case10",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15").Format("F"),
want: "August",
},
{
2024-04-09 22:09:34 +08:00
name: "case11",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15").Format("N"),
want: "03",
},
{
2024-04-09 22:09:34 +08:00
name: "case12",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15").Format("L"),
want: "1",
},
{
2024-04-09 22:09:34 +08:00
name: "case13",
2024-04-09 20:12:49 +08:00
actual: Parse("2021-08-05 01:14:15").Format("L"),
want: "0",
},
{
2024-04-09 22:09:34 +08:00
name: "case14",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 01:14:15").Format("G"),
want: "1",
},
{
2024-04-09 22:09:34 +08:00
name: "case15",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15").Format("U"),
want: "1596604455",
},
{
2024-04-09 22:09:34 +08:00
name: "case16",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15").Format("V"),
want: "1596604455000",
},
{
2024-04-09 22:09:34 +08:00
name: "case17",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15").Format("X"),
want: "1596604455000000",
},
{
2024-04-09 22:09:34 +08:00
name: "case18",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15").Format("Z"),
want: "1596604455000000000",
},
{
2024-04-09 22:09:34 +08:00
name: "case19",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15.999").Format("v"),
want: "999",
},
{
2024-04-09 22:09:34 +08:00
name: "case20",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15.999999").Format("u"),
want: "999999",
},
{
2024-04-09 22:09:34 +08:00
name: "case21",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15.999999999").Format("x"),
want: "999999999",
},
{
2024-04-09 22:09:34 +08:00
name: "case22",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15").Format("w"),
want: "2",
},
{
2024-04-09 22:09:34 +08:00
name: "case23",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15").Format("t"),
want: "31",
},
{
2024-04-09 22:09:34 +08:00
name: "case24",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15").Format("z"),
want: "217",
},
{
2024-04-09 22:09:34 +08:00
name: "case25",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15", PRC).Format("e"),
want: "PRC",
},
{
2024-04-09 22:09:34 +08:00
name: "case26",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15").Format("Q"),
want: "3",
},
{
2024-04-09 22:09:34 +08:00
name: "case27",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15").Format("C"),
want: "21",
},
{
2024-04-09 22:09:34 +08:00
name: "case28",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15").Format("jS"),
want: "5th",
},
{
2024-04-09 22:09:34 +08:00
name: "case29",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-22 13:14:15").Format("jS"),
want: "22nd",
},
{
2024-04-09 22:09:34 +08:00
name: "case30",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-23 13:14:15").Format("jS"),
want: "23rd",
},
{
2024-04-09 22:09:34 +08:00
name: "case31",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-31 13:14:15").Format("jS"),
want: "31st",
},
{
2024-04-09 22:09:34 +08:00
name: "case32",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-31 13:14:15").Format("I\\t \\i\\s Y-m-d H:i:s"),
want: "It is 2020-08-31 13:14:15",
},
{
2024-04-09 22:09:34 +08:00
name: "case33",
2024-04-09 20:12:49 +08:00
actual: Parse("2020-08-05 13:14:15").Format("上次上报时间:Y-m-d H:i:s请每日按时打卡"),
want: "上次上报时间:2020-08-05 13:14:15请每日按时打卡",
},
2024-10-11 22:54:20 +08:00
{
name: "case34",
actual: Parse("2020-08-05 01:14:15").Format(DateTimeFormat, PRC),
want: "2020-08-05 01:14:15",
},
2024-04-09 20:12:49 +08:00
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "Format()")
})
}
2021-02-18 14:32:31 +08:00
}
func TestCarbon_ToStdTime(t *testing.T) {
2024-10-11 22:54:20 +08:00
expected := time.Now().Format(DateTimeFormat)
actual := Now().ToStdTime().Format(DateTimeFormat)
assert.Equal(t, expected, actual)
}
// https://github.com/dromara/carbon/issues/200
func TestCarbon_Issue200(t *testing.T) {
2024-04-09 20:12:49 +08:00
tests1 := []struct {
name string
actual string
want string
}{
{
name: "case1",
actual: Now().StartOfWeek().ToWeekString(),
want: "Sunday",
},
{
name: "case2",
actual: Now().SetWeekStartsAt(Monday).StartOfWeek().ToWeekString(),
want: "Monday",
},
{
name: "case3",
actual: Now().SetWeekStartsAt(Wednesday).StartOfWeek().ToWeekString(PRC),
want: "Wednesday",
},
}
for _, tt := range tests1 {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToWeekString()")
})
}
tests2 := []struct {
name string
actual string
want string
}{
{
name: "case4",
actual: Now().StartOfWeek().ToShortWeekString(),
want: "Sun",
},
{
name: "case5",
actual: Now().SetWeekStartsAt(Monday).StartOfWeek().ToShortWeekString(),
want: "Mon",
},
{
name: "case6",
actual: Now().SetWeekStartsAt(Wednesday).StartOfWeek().ToShortWeekString(PRC),
want: "Wed",
},
}
for _, tt := range tests2 {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.actual, "ToShortWeekString()")
})
}
}