@@ -1168,4 +1168,52 @@ mod test {
1168
1168
assert_eq ! ( coord1. index_of( & coord1. from_index( i) . unwrap( ) ) . unwrap( ) , i) ;
1169
1169
}
1170
1170
}
1171
+
1172
+ #[ test]
1173
+ fn test_datetime_with_unmap ( ) {
1174
+ let start_time = Utc . ymd ( 2021 , 1 , 1 ) . and_hms ( 8 , 0 , 0 ) ;
1175
+ let end_time = Utc . ymd ( 2023 , 1 , 1 , ) . and_hms ( 8 , 0 , 0 ) ;
1176
+ let mid = Utc . ymd ( 2022 , 1 , 1 ) . and_hms ( 8 , 0 , 0 ) ;
1177
+ let coord: RangedDate < chrono:: DateTime < _ > > = ( start_time..end_time) . into ( ) ;
1178
+ let pos = coord. map ( & mid, ( 1000 , 2000 ) ) ;
1179
+ assert_eq ! ( pos, 1500 ) ;
1180
+ let value = coord. unmap ( pos, ( 1000 , 2000 ) ) ;
1181
+ assert_eq ! ( value, Some ( mid) ) ;
1182
+ }
1183
+
1184
+ #[ test]
1185
+ fn test_naivedatetime_with_unmap ( ) {
1186
+ let start_time = chrono:: NaiveDate :: from_ymd ( 2021 , 1 , 1 ) . and_hms_milli ( 8 , 0 , 0 , 0 ) ;
1187
+ let end_time = chrono:: NaiveDate :: from_ymd ( 2023 , 1 , 1 , ) . and_hms_milli ( 8 , 0 , 0 , 0 ) ;
1188
+ let mid = chrono:: NaiveDate :: from_ymd ( 2022 , 1 , 1 ) . and_hms_milli ( 8 , 0 , 0 , 0 ) ;
1189
+ let coord: RangedDate < chrono:: NaiveDateTime > = ( start_time..end_time) . into ( ) ;
1190
+ let pos = coord. map ( & mid, ( 1000 , 2000 ) ) ;
1191
+ assert_eq ! ( pos, 1500 ) ;
1192
+ let value = coord. unmap ( pos, ( 1000 , 2000 ) ) ;
1193
+ assert_eq ! ( value, Some ( mid) ) ;
1194
+ }
1195
+
1196
+ #[ test]
1197
+ fn test_date_with_unmap ( ) {
1198
+ let start_date = Utc . ymd ( 2021 , 1 , 1 ) ;
1199
+ let end_date= Utc . ymd ( 2023 , 1 , 1 , ) ;
1200
+ let mid = Utc . ymd ( 2022 , 1 , 1 ) ;
1201
+ let coord: RangedDate < chrono:: Date < _ > > = ( start_date..end_date) . into ( ) ;
1202
+ let pos = coord. map ( & mid, ( 1000 , 2000 ) ) ;
1203
+ assert_eq ! ( pos, 1500 ) ;
1204
+ let value = coord. unmap ( pos, ( 1000 , 2000 ) ) ;
1205
+ assert_eq ! ( value, Some ( mid) ) ;
1206
+ }
1207
+
1208
+ #[ test]
1209
+ fn test_naivedate_with_unmap ( ) {
1210
+ let start_date = chrono:: NaiveDate :: from_ymd ( 2021 , 1 , 1 ) ;
1211
+ let end_date= chrono:: NaiveDate :: from_ymd ( 2023 , 1 , 1 , ) ;
1212
+ let mid = chrono:: NaiveDate :: from_ymd ( 2022 , 1 , 1 ) ;
1213
+ let coord: RangedDate < chrono:: NaiveDate > = ( start_date..end_date) . into ( ) ;
1214
+ let pos = coord. map ( & mid, ( 1000 , 2000 ) ) ;
1215
+ assert_eq ! ( pos, 1500 ) ;
1216
+ let value = coord. unmap ( pos, ( 1000 , 2000 ) ) ;
1217
+ assert_eq ! ( value, Some ( mid) ) ;
1218
+ }
1171
1219
}
0 commit comments