Skip to content

Commit

Permalink
Unified unit test format
Browse files Browse the repository at this point in the history
gouguoyin committed Apr 9, 2024
1 parent 1b97934 commit 7fa8fc7
Showing 15 changed files with 11,427 additions and 6,947 deletions.
1,225 changes: 720 additions & 505 deletions boundary_unit_test.go

Large diffs are not rendered by default.

196 changes: 98 additions & 98 deletions calendar_unit_test.go
Original file line number Diff line number Diff line change
@@ -1,203 +1,203 @@
package carbon

import (
"strconv"
"testing"

"github.com/stretchr/testify/assert"
)

func TestCarbon_Lunar(t *testing.T) {
type args struct {
c Carbon
}
tests := []struct {
args args
want string
name string
carbon Carbon
want string
}{
{
args: args{Parse("xxx")},
want: "",
name: "case1",
carbon: Parse("xxx", PRC),
want: "",
},
{
args: args{Parse("2024-01-18 00:00:00")},
want: "2023-12-08 00:00:00",
name: "case2",
carbon: Parse("2024-01-18", PRC),
want: "2023-12-08 00:00:00",
},
{
args: args{Parse("2024-01-21 00:00:00")},
want: "2023-12-11 00:00:00",
name: "case3",
carbon: Parse("2024-01-21", PRC),
want: "2023-12-11 00:00:00",
},
{
args: args{Parse("2024-01-24 12:00:00")},
want: "2023-12-14 12:00:00",
name: "case4",
carbon: Parse("2024-01-24", PRC),
want: "2023-12-14 00:00:00",
},
}
for index, tt := range tests {
t.Run(strconv.Itoa(index), func(t *testing.T) {
assert.Equalf(t, tt.want, tt.args.c.Lunar().String(), "args{%v}", tt.args.c)

for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.carbon.Lunar().String(), "Lunar()")
})
}
}

func TestCreateFromLunar(t *testing.T) {
type args struct {
year, month, day, hour, minute, second int
isLeapMonth bool
}
tests := []struct {
args args
want string
name string
carbon Carbon
want string
}{
{
args: args{year: 2023, month: 12, day: 11, isLeapMonth: false},
want: "2024-01-21 00:00:00",
name: "case1",
carbon: CreateFromLunar(2023, 12, 11, 0, 0, 0, false),
want: "2024-01-21 00:00:00",
},
{
args: args{year: 2023, month: 12, day: 8, isLeapMonth: false},
want: "2024-01-18 00:00:00",
name: "case2",
carbon: CreateFromLunar(2023, 12, 8, 0, 0, 0, false),
want: "2024-01-18 00:00:00",
},
{
args: args{year: 2023, month: 12, day: 14, hour: 12, isLeapMonth: false},
want: "2024-01-24 12:00:00",
name: "case3",
carbon: CreateFromLunar(2023, 12, 14, 12, 0, 0, false),
want: "2024-01-24 12:00:00",
},
}
for index, tt := range tests {
t.Run(strconv.Itoa(index), func(t *testing.T) {
assert.Equalf(t, tt.want, CreateFromLunar(tt.args.year, tt.args.month, tt.args.day, tt.args.hour, tt.args.minute, tt.args.second, tt.args.isLeapMonth).ToDateTimeString(), "args{%v}", tt.args)

for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.carbon.ToDateTimeString(), "CreateFromLunar()")
})
}
}

func TestCarbon_Julian(t *testing.T) {
type args struct {
c Carbon
}
tests := []struct {
args args
name string
carbon Carbon
wantJD float64
wantMJD float64
}{
{
args: args{Parse("xxx")},
name: "case1",
carbon: Parse("xxx"),
wantJD: 0,
wantMJD: 0,
},
{
args: args{Parse("2024-01-24 12:00:00")},
name: "case2",
carbon: Parse("2024-01-24 12:00:00"),
wantJD: 2460334,
wantMJD: 60333.5,
},
{
args: args{CreateFromJulian(2460334)},
name: "case3",
carbon: CreateFromJulian(2460334),
wantJD: 2460334,
wantMJD: 60333.5,
},
{
args: args{CreateFromJulian(60333.5)},
name: "case4",
carbon: CreateFromJulian(60333.5),
wantJD: 2460334,
wantMJD: 60333.5,
},
}
for index, tt := range tests {
t.Run(strconv.Itoa(index), func(t *testing.T) {
assert.Equalf(t, tt.wantJD, tt.args.c.Julian().JD(), "args{%v}", tt.args.c)
assert.Equalf(t, tt.wantMJD, tt.args.c.Julian().MJD(), "args{%v}", tt.args.c)

for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.wantJD, tt.carbon.Julian().JD(), "JD()")
assert.Equalf(t, tt.wantMJD, tt.carbon.Julian().MJD(), "MJD()")
})
}
}

func TestCarbon_CreateFromJulian(t *testing.T) {
type args struct {
j float64
}
tests := []struct {
args args
want string
name string
carbon Carbon
want string
}{
{
args: args{j: 2460334},
want: "2024-01-24 12:00:00",
name: "case1",
carbon: CreateFromJulian(2460334),
want: "2024-01-24 12:00:00",
},
{
args: args{j: 60333.5},
want: "2024-01-24 12:00:00",
name: "case2",
carbon: CreateFromJulian(60333.5),
want: "2024-01-24 12:00:00",
},
}
for index, tt := range tests {
t.Run(strconv.Itoa(index), func(t *testing.T) {
assert.Equalf(t, tt.want, CreateFromJulian(tt.args.j).ToDateTimeString(), "args{%v}", tt.args.j)

for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.carbon.ToDateTimeString(), "CreateFromJulian()")
})
}
}

func TestCarbon_Persian(t *testing.T) {
type args struct {
c Carbon
}
tests := []struct {
args args
want string
name string
carbon Carbon
want string
}{
{
args: args{Parse("xxx")},
want: "",
name: "case1",
carbon: Parse("xxx", PRC),
want: "",
},
{
args: args{Parse("1800-01-01 00:00:00")},
want: "1178-10-11 00:00:00",
name: "case2",
carbon: Parse("1800-01-01 00:00:00", PRC),
want: "1178-10-11 00:00:00",
},
{
args: args{Parse("2020-08-05 13:14:15")},
want: "1399-05-15 13:14:15",
name: "case3",
carbon: Parse("2020-08-05 13:14:15", PRC),
want: "1399-05-15 13:14:15",
},
{
args: args{Parse("2024-01-01 00:00:00")},
want: "1402-10-11 00:00:00",
},
{
args: args{Parse("2024-08-05 12:00:00")},
want: "1403-05-15 12:00:00",
},
{
args: args{Parse("2024-12-31 23:59:59")},
want: "1403-10-11 23:59:59",
name: "case4",
carbon: Parse("2024-01-01 00:00:00", PRC),
want: "1402-10-11 00:00:00",
},
}
for index, tt := range tests {
t.Run(strconv.Itoa(index), func(t *testing.T) {
assert.Equalf(t, tt.want, tt.args.c.Persian().String(), "args{%v}", tt.args.c)

for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.carbon.Persian().String(), "Persian()")
})
}
}

func TestCarbon_CreateFromPersian(t *testing.T) {
type args struct {
year, month, day, hour, minute, second int
}
tests := []struct {
args args
want string
name string
carbon Carbon
want string
}{
{
args: args{year: 1178, month: 10, day: 11},
want: "1800-01-01 00:00:00",
},
{
args: args{year: 1402, month: 10, day: 11},
want: "2024-01-01 00:00:00",
name: "case1",
carbon: CreateFromPersian(1178, 10, 11, 0, 0, 0),
want: "1800-01-01 00:00:00",
},
{
args: args{year: 1403, month: 5, day: 15, hour: 12},
want: "2024-08-05 12:00:00",
name: "case2",
carbon: CreateFromPersian(1402, 10, 11, 0, 0, 0),
want: "2024-01-01 00:00:00",
},
{
args: args{year: 1403, month: 10, day: 11, hour: 23, minute: 59, second: 59},
want: "2024-12-31 23:59:59",
name: "case3",
carbon: CreateFromPersian(1403, 5, 15, 12, 0, 0),
want: "2024-08-05 12:00:00",
},
}
for index, tt := range tests {
t.Run(strconv.Itoa(index), func(t *testing.T) {
assert.Equalf(t, tt.want, CreateFromPersian(tt.args.year, tt.args.month, tt.args.day, tt.args.hour, tt.args.minute, tt.args.second).ToDateTimeString(), "args{%v}", tt.args)

for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.carbon.ToDateTimeString(), "CreateFromPersian()")
})
}
}
2,711 changes: 1,573 additions & 1,138 deletions comparer_unit_test.go

Large diffs are not rendered by default.

640 changes: 406 additions & 234 deletions constellation_unit_test.go

Large diffs are not rendered by default.

856 changes: 501 additions & 355 deletions creator_unit_test.go

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions difference_unit_test.go
Original file line number Diff line number Diff line change
@@ -482,8 +482,8 @@ func TestCarbon_DiffInDuration(t *testing.T) {
3: {now.AddYearsNoOverflow(10), "-87648h0m0s"},
4: {now.SubYearsNoOverflow(10), "87672h0m0s"},

5: {now.AddMonthsNoOverflow(1), "-744h0m0s"},
6: {now.SubMonthsNoOverflow(1), "696h0m0s"},
5: {now.AddMonthsNoOverflow(1), "-720h0m0s"},
6: {now.SubMonthsNoOverflow(1), "744h0m0s"},
7: {now.AddMonthsNoOverflow(10), "-7344h0m0s"},
8: {now.SubMonthsNoOverflow(10), "7320h0m0s"},

@@ -530,8 +530,8 @@ func TestCarbon_DiffAbsInDuration(t *testing.T) {
3: {now.AddYearsNoOverflow(10), "87648h0m0s"},
4: {now.SubYearsNoOverflow(10), "87672h0m0s"},

5: {now.AddMonthsNoOverflow(1), "744h0m0s"},
6: {now.SubMonthsNoOverflow(1), "696h0m0s"},
5: {now.AddMonthsNoOverflow(1), "720h0m0s"},
6: {now.SubMonthsNoOverflow(1), "744h0m0s"},
7: {now.AddMonthsNoOverflow(10), "7344h0m0s"},
8: {now.SubMonthsNoOverflow(10), "7320h0m0s"},

493 changes: 396 additions & 97 deletions encoding_unit_test.go

Large diffs are not rendered by default.

146 changes: 109 additions & 37 deletions extremum_unit_test.go
Original file line number Diff line number Diff line change
@@ -2,58 +2,130 @@ package carbon

import (
"github.com/stretchr/testify/assert"
"strconv"
"testing"
)

func TestCarbon_Closest(t *testing.T) {
assert := assert.New(t)

tests := []struct {
input1 string
input2 string
input3 string
expected string
name string
carbon1 Carbon
carbon2 Carbon
carbon3 Carbon
want string
}{
{"", "2023-03-28", "2023-04-16", "2023-03-28"},
{"2023-04-01", "", "2023-04-16", "2023-04-16"},
{"2023-04-01", "2023-03-28", "", "2023-03-28"},
{"2023-04-01", "", "", ""},

{"2023-04-01", "2023-03-28", "2023-03-28", "2023-03-28"},
{"2023-04-01", "2023-03-28", "2023-04-16", "2023-03-28"},
{
name: "case1",
carbon1: Parse(""),
carbon2: Parse("2023-03-28"),
carbon3: Parse("2023-04-16"),
want: "2023-03-28",
},
{
name: "case2",
carbon1: Parse("2023-04-01"),
carbon2: Parse(""),
carbon3: Parse("2023-04-16"),
want: "2023-04-16",
},
{
name: "case3",
carbon1: Parse("2023-04-01"),
carbon2: Parse("2023-03-28"),
carbon3: Parse(""),
want: "2023-03-28",
},
{
name: "case4",
carbon1: Parse("2023-04-01"),
carbon2: Parse(""),
carbon3: Parse(""),
want: "",
},
{
name: "case5",
carbon1: Parse("2023-04-01"),
carbon2: Parse("2023-03-28"),
carbon3: Parse("2023-03-28"),
want: "2023-03-28",
},
{
name: "case6",
carbon1: Parse("2023-04-01"),
carbon2: Parse("2023-03-28"),
carbon3: Parse("2023-04-16"),
want: "2023-03-28",
},
}

for index, test := range tests {
c := Parse(test.input1).Closest(Parse(test.input2), Parse(test.input3))
assert.Nil(c.Error)
assert.Equal(test.expected, c.ToDateString(), "Current test index is "+strconv.Itoa(index))
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.carbon1.Closest(tt.carbon2, tt.carbon3).ToDateString(), "Closest()")
})
}
}

func TestCarbon_Farthest(t *testing.T) {
assert := assert.New(t)

tests := []struct {
input1 string
input2 string
input3 string
expected string
name string
carbon1 Carbon
carbon2 Carbon
carbon3 Carbon
want string
}{
{"", "2023-03-28", "2023-04-16", "2023-04-16"},
{"2023-04-01", "", "2023-04-16", "2023-04-16"},
{"2023-04-01", "2023-03-28", "", "2023-03-28"},
{"2023-04-01", "", "", ""},

{"2023-04-01", "2023-03-28", "2023-03-28", "2023-03-28"},
{"2023-04-01", "2023-03-28", "2023-04-16", "2023-04-16"},
{"2023-04-01", "2023-04-05", "2023-04-02", "2023-04-05"},
{
name: "case1",
carbon1: Parse(""),
carbon2: Parse("2023-03-28"),
carbon3: Parse("2023-04-16"),
want: "2023-04-16",
},
{
name: "case2",
carbon1: Parse("2023-04-01"),
carbon2: Parse(""),
carbon3: Parse("2023-04-16"),
want: "2023-04-16",
},
{
name: "case3",
carbon1: Parse("2023-04-01"),
carbon2: Parse("2023-03-28"),
carbon3: Parse(""),
want: "2023-03-28",
},
{
name: "case4",
carbon1: Parse("2023-04-01"),
carbon2: Parse(""),
carbon3: Parse(""),
want: "",
},
{
name: "case5",
carbon1: Parse("2023-04-01"),
carbon2: Parse("2023-03-28"),
carbon3: Parse("2023-03-28"),
want: "2023-03-28",
},
{
name: "case6",
carbon1: Parse("2023-04-01"),
carbon2: Parse("2023-03-28"),
carbon3: Parse("2023-03-28"),
want: "2023-03-28",
},
{
name: "case7",
carbon1: Parse("2023-04-01"),
carbon2: Parse("2023-04-05"),
carbon3: Parse("2023-04-02"),
want: "2023-04-05",
},
}

for index, test := range tests {
c := Parse(test.input1).Farthest(Parse(test.input2), Parse(test.input3))
assert.Nil(c.Error)
assert.Equal(test.expected, c.ToDateString(), "Current test index is "+strconv.Itoa(index))
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tt.carbon1.Farthest(tt.carbon2, tt.carbon3).ToDateString(), "Farthest()")
})
}
}

2,259 changes: 1,384 additions & 875 deletions getter_unit_test.go

Large diffs are not rendered by default.

3,627 changes: 2,378 additions & 1,249 deletions outputer_unit_test.go

Large diffs are not rendered by default.

368 changes: 200 additions & 168 deletions parser_unit_test.go

Large diffs are not rendered by default.

486 changes: 299 additions & 187 deletions season_unit_test.go

Large diffs are not rendered by default.

1,243 changes: 835 additions & 408 deletions setter_unit_test.go

Large diffs are not rendered by default.

54 changes: 24 additions & 30 deletions test_unit_test.go
Original file line number Diff line number Diff line change
@@ -6,50 +6,44 @@ import (
)

func TestCarbon_SetTestNow(t *testing.T) {
assert := assert.New(t)

carbon := NewCarbon()
carbon.SetTestNow(Parse("2020-08-05"))

assert.Equal("2020-08-04", carbon.Yesterday().ToDateString(), "It should be equal to 2020-08-04")
assert.Equal("2020-08-05", carbon.Now().ToDateString(), "It should be equal to 2020-08-05")
assert.Equal("2020-08-06", carbon.Tomorrow().ToDateString(), "It should be equal to 2020-08-06")
assert.Equal(31, carbon.Parse("1989-08-05").Age(), "It should be equal to 31")
assert.Equal(int64(1), carbon.Parse("2020-07-05").DiffInMonths(), "It should be equal to 1")
assert.Equal(int64(1), carbon.Parse("2020-07-05").DiffAbsInMonths(), "It should be equal to 1")
assert.Equal(int64(4), carbon.Parse("2020-07-05").DiffInWeeks(), "It should be equal to 4")
assert.Equal(int64(4), carbon.Parse("2020-07-05").DiffAbsInWeeks(), "It should be equal to 4")
assert.Equal(int64(31), carbon.Parse("2020-07-05").DiffInDays(), "It should be equal to 31")
assert.Equal(int64(31), carbon.Parse("2020-07-05").DiffAbsInDays(), "It should be equal to 31")
assert.Equal(int64(-13), carbon.Parse("2020-08-05 13:14:15").DiffInHours(), "It should be equal to -13")
assert.Equal(int64(13), carbon.Parse("2020-08-05 13:14:15").DiffAbsInHours(), "It should be equal to 13")
assert.Equal(int64(-794), carbon.Parse("2020-08-05 13:14:15").DiffInMinutes(), "It should be equal to -794")
assert.Equal(int64(794), carbon.Parse("2020-08-05 13:14:15").DiffAbsInMinutes(), "It should be equal to 794")
assert.Equal(int64(-47655), carbon.Parse("2020-08-05 13:14:15").DiffInSeconds(), "It should be equal to -47655")
assert.Equal(int64(47655), carbon.Parse("2020-08-05 13:14:15").DiffAbsInSeconds(), "It should be equal to 47655")
assert.Equal("-13 hours", carbon.Parse("2020-08-05 13:14:15").DiffInString(), "It should be -13 hours")
assert.Equal("13 hours", carbon.Parse("2020-08-05 13:14:15").DiffAbsInString(), "It should be 13 hours")
assert.Equal("-13h0m0s", carbon.Parse("2020-08-05 13:00:00").DiffInDuration().String(), "It should be -13h0m0s")
assert.Equal("13h0m0s", carbon.Parse("2020-08-05 13:00:00").DiffAbsInDuration().String(), "It should be 13h0m0s")
assert.Equal("13 hours from now", carbon.Parse("2020-08-05 13:14:15").DiffForHumans(), "It should be 13 hours from now")
assert.Equal(t, "2020-08-04", carbon.Yesterday().ToDateString(), "It should be equal to 2020-08-04")
assert.Equal(t, "2020-08-05", carbon.Now().ToDateString(), "It should be equal to 2020-08-05")
assert.Equal(t, "2020-08-06", carbon.Tomorrow().ToDateString(), "It should be equal to 2020-08-06")
assert.Equal(t, 31, carbon.Parse("1989-08-05").Age(), "It should be equal to 31")
assert.Equal(t, int64(1), carbon.Parse("2020-07-05").DiffInMonths(), "It should be equal to 1")
assert.Equal(t, int64(1), carbon.Parse("2020-07-05").DiffAbsInMonths(), "It should be equal to 1")
assert.Equal(t, int64(4), carbon.Parse("2020-07-05").DiffInWeeks(), "It should be equal to 4")
assert.Equal(t, int64(4), carbon.Parse("2020-07-05").DiffAbsInWeeks(), "It should be equal to 4")
assert.Equal(t, int64(31), carbon.Parse("2020-07-05").DiffInDays(), "It should be equal to 31")
assert.Equal(t, int64(31), carbon.Parse("2020-07-05").DiffAbsInDays(), "It should be equal to 31")
assert.Equal(t, int64(-13), carbon.Parse("2020-08-05 13:14:15").DiffInHours(), "It should be equal to -13")
assert.Equal(t, int64(13), carbon.Parse("2020-08-05 13:14:15").DiffAbsInHours(), "It should be equal to 13")
assert.Equal(t, int64(-794), carbon.Parse("2020-08-05 13:14:15").DiffInMinutes(), "It should be equal to -794")
assert.Equal(t, int64(794), carbon.Parse("2020-08-05 13:14:15").DiffAbsInMinutes(), "It should be equal to 794")
assert.Equal(t, int64(-47655), carbon.Parse("2020-08-05 13:14:15").DiffInSeconds(), "It should be equal to -47655")
assert.Equal(t, int64(47655), carbon.Parse("2020-08-05 13:14:15").DiffAbsInSeconds(), "It should be equal to 47655")
assert.Equal(t, "-13 hours", carbon.Parse("2020-08-05 13:14:15").DiffInString(), "It should be -13 hours")
assert.Equal(t, "13 hours", carbon.Parse("2020-08-05 13:14:15").DiffAbsInString(), "It should be 13 hours")
assert.Equal(t, "-13h0m0s", carbon.Parse("2020-08-05 13:00:00").DiffInDuration().String(), "It should be -13h0m0s")
assert.Equal(t, "13h0m0s", carbon.Parse("2020-08-05 13:00:00").DiffAbsInDuration().String(), "It should be 13h0m0s")
assert.Equal(t, "13 hours from now", carbon.Parse("2020-08-05 13:14:15").DiffForHumans(), "It should be 13 hours from now")
}

func TestCarbon_UnSetTestNow(t *testing.T) {
assert := assert.New(t)

carbon := NewCarbon()
carbon.SetTestNow(Parse("2020-08-05"))
carbon.UnSetTestNow()

assert.Equal(Now().ToDateString(), carbon.Now().ToDateString())
assert.Equal(t, Now().ToDateString(), carbon.Now().ToDateString())
}

func TestCarbon_IsSetTestNow(t *testing.T) {
assert := assert.New(t)

carbon := NewCarbon()
assert.Equal(false, Now().IsSetTestNow(), "It should be equal to false")
assert.Equal(t, false, Now().IsSetTestNow(), "It should be equal to false")

carbon.SetTestNow(Parse("2020-08-05"))
assert.Equal(true, carbon.IsSetTestNow(), "It should be equal to true")
assert.Equal(t, true, carbon.IsSetTestNow(), "It should be equal to true")
}
4,062 changes: 2,500 additions & 1,562 deletions traveler_unit_test.go

Large diffs are not rendered by default.

0 comments on commit 7fa8fc7

Please sign in to comment.