@@ -77,58 +77,81 @@ func Test_secsInYear(t *testing.T) {
7777 }
7878}
7979
80- func Test_findDateFraction (t * testing.T ) {
80+ func Test_findDateFactor (t * testing.T ) {
8181 type args struct {
8282 start_epoch string
8383 end_epoch string
8484 date float64
8585 }
8686 tests := []struct {
87- name string
88- args args
89- want float64
87+ name string
88+ args args
89+ want float64
90+ wantErr bool
9091 }{
9192 {
92- name : "Exact match (start epoch)" ,
93- args : args {start_epoch : "1900.0" , end_epoch : "1910.0" , date : 1900.0 },
94- want : 0.0 ,
93+ name : "Exact match (start epoch)" ,
94+ args : args {start_epoch : "1900.0" , end_epoch : "1910.0" , date : 1900.0 },
95+ want : 0.0 ,
96+ wantErr : false ,
9597 },
9698 {
97- name : "Exact match (end epoch)" ,
98- args : args {start_epoch : "1900.0" , end_epoch : "1910.0" , date : 1910.0 },
99- want : 0.0 ,
99+ name : "Exact match (end epoch)" ,
100+ args : args {start_epoch : "1900.0" , end_epoch : "1910.0" , date : 1910.0 },
101+ want : 0.0 ,
102+ wantErr : false ,
100103 },
101- // this generates os.Exit(1)
102- // {
103- // name: "End epoch is less than start epoch",
104- // args: args{start_epoch: "1910.0", end_epoch: "1900.0", date: 1910.0},
105- // want: 1.0,
106- // },
107104 {
108- name : "Middle" ,
109- args : args {start_epoch : "1900.0" , end_epoch : "1910.0" , date : 1905.0 },
110- want : 0.5 ,
105+ name : "End epoch is less than start epoch" ,
106+ args : args {start_epoch : "1910.0" , end_epoch : "1900.0" , date : 1910.0 },
107+ want : 0.0 ,
108+ wantErr : false ,
111109 },
112110 {
113- name : "1950.01" ,
114- args : args {start_epoch : "1950.0" , end_epoch : "1955.0" , date : 1950.01 },
115- want : 0.001998904709746265 ,
111+ name : "Middle" ,
112+ args : args {start_epoch : "1900.0" , end_epoch : "1910.0" , date : 1905.0 },
113+ want : 0.5 ,
114+ wantErr : false ,
116115 },
117116 {
118- name : "1950.99" ,
119- args : args {start_epoch : "1950.0" , end_epoch : "1955.0" , date : 1954.99 },
120- want : 0.9980010952902538 ,
117+ name : "1950.01" ,
118+ args : args {start_epoch : "1950.0" , end_epoch : "1955.0" , date : 1950.01 },
119+ want : 0.001998904709746265 ,
120+ wantErr : false ,
121121 },
122122 {
123- name : "2025.5" ,
124- args : args {start_epoch : "2020.0" , end_epoch : "2025.0" , date : 2025.5 },
125- want : 1.1 ,
123+ name : "1950.99" ,
124+ args : args {start_epoch : "1950.0" , end_epoch : "1955.0" , date : 1954.99 },
125+ want : 0.9980010952902538 ,
126+ wantErr : false ,
127+ },
128+ {
129+ name : "2025.5" ,
130+ args : args {start_epoch : "2020.0" , end_epoch : "2025.0" , date : 2025.5 },
131+ want : 1.1 ,
132+ wantErr : false ,
133+ },
134+ {
135+ name : "Incorrect start_epoch" ,
136+ args : args {start_epoch : "start_epoch" , end_epoch : "2025.0" , date : 2025.5 },
137+ want : - 999 ,
138+ wantErr : true ,
139+ },
140+ {
141+ name : "Incorrect end_epoch" ,
142+ args : args {start_epoch : "2020.0" , end_epoch : "end_epoch" , date : 2025.5 },
143+ want : - 999 ,
144+ wantErr : true ,
126145 },
127146 }
128147 for _ , tt := range tests {
129148 t .Run (tt .name , func (t * testing.T ) {
130- got := findDateFactor (tt .args .start_epoch , tt .args .end_epoch , tt .args .date )
131- if ! almostEqual (got , tt .want , 1e6 ) {
149+ got , err := findDateFactor (tt .args .start_epoch , tt .args .end_epoch , tt .args .date )
150+ if (err != nil ) && ! tt .wantErr {
151+ t .Errorf ("findDateFactor() error = %v, wantErr %v" , err , tt .wantErr )
152+ return
153+ }
154+ if ! almostEqual (got , tt .want , 1e8 ) {
132155 t .Errorf ("findDateFraction() = %v, want %v" , got , tt .want )
133156 }
134157 })
0 commit comments