-
Notifications
You must be signed in to change notification settings - Fork 0
/
saka_test.go
169 lines (138 loc) · 2.92 KB
/
saka_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
/*
* Copyright (c) Portalnesia - All Rights Reserved
* Unauthorized copying of this file, via any medium is strictly prohibited
* Proprietary and confidential
* Written by Putu Aditya <[email protected]>
*/
package saka
import (
"fmt"
"testing"
"time"
"github.com/golang-module/carbon"
)
func TestEqual(t *testing.T) {
saka := New()
saka2 := New()
if saka.PancaWara != saka2.PancaWara {
t.Errorf("Saka and saka2 should be equal %s", saka.PancaWara.Name)
}
}
func TestInvalidFormat(t *testing.T) {
defer func() {
if r := recover(); r == nil {
t.Error("Saka must panic")
}
}()
_ = New("Invalid format")
t.Error("Saka must panic")
}
func TestStringFormat(t *testing.T) {
calendar := New("2023-03-22")
nyepi := false
rangeDay := []Data{}
checkNyepi:
for _, r := range calendar.Rahinan() {
rangeDay = append(rangeDay, r)
if r == Enum.Rahinan.Nyepi {
nyepi = true
break checkNyepi
}
}
if !nyepi {
t.Errorf("This date must nyepi, get %+v", rangeDay)
}
}
func TestBytesFormat(t *testing.T) {
calendar := New([]byte("2023-03-22"))
nyepi := false
rangeDay := []Data{}
checkNyepi:
for _, r := range calendar.Rahinan() {
rangeDay = append(rangeDay, r)
if r == Enum.Rahinan.Nyepi {
nyepi = true
break checkNyepi
}
}
if !nyepi {
t.Errorf("This date must nyepi, get %+v", rangeDay)
}
}
func TestTimeFormat(t *testing.T) {
loc, err := time.LoadLocation("Asia/Jakarta")
if err != nil {
t.Error(err)
}
calendar := New(time.Date(2023, 3, 22, 0, 0, 0, 0, loc))
nyepi := false
rangeDay := []Data{}
checkNyepi:
for _, r := range calendar.Rahinan() {
rangeDay = append(rangeDay, r)
if r == Enum.Rahinan.Nyepi {
nyepi = true
break checkNyepi
}
}
if !nyepi {
t.Errorf("This date must nyepi, get %+v", rangeDay)
}
}
func TestNyepi(t *testing.T) {
calendar := New(carbon.CreateFromDate(2023, 3, 22))
nyepi := false
checkNyepi:
for _, r := range calendar.Rahinan() {
if r == Enum.Rahinan.Nyepi {
nyepi = true
break checkNyepi
}
}
if !nyepi {
t.Error("This date must nyepi")
}
fmt.Printf("Nyepi saka %d\n", calendar.Saka)
}
func TestSiwaratri(t *testing.T) {
calendar := New(carbon.CreateFromDate(2023, 1, 20))
isTrue := false
check:
for _, r := range calendar.Rahinan() {
if r == Enum.Rahinan.SiwaRatri {
isTrue = true
break check
}
}
if !isTrue {
t.Error("This date must siwaratri")
}
}
func TestGalungan(t *testing.T) {
calendar := New(carbon.CreateFromDate(2023, 8, 2))
isTrue := false
check:
for _, r := range calendar.Rahinan() {
if r == Enum.Rahinan.Galungan {
isTrue = true
break check
}
}
if !isTrue {
t.Error("This date must galungan")
}
}
func TestKuningan(t *testing.T) {
calendar := New(carbon.CreateFromDate(2023, 8, 12))
isTrue := false
check:
for _, r := range calendar.Rahinan() {
if r == Enum.Rahinan.Kuningan {
isTrue = true
break check
}
}
if !isTrue {
t.Error("This date must kuningan")
}
}