Get tests passing again
This commit is contained in:
parent
169032a637
commit
fa8391cea0
File diff suppressed because it is too large
Load Diff
|
@ -118,6 +118,7 @@ fn astronomia_eventa_desegno(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
fn page_template(
|
fn page_template(
|
||||||
fluent: Arc<fluent_ergonomics::FluentErgo>,
|
fluent: Arc<fluent_ergonomics::FluentErgo>,
|
||||||
today: IFC::IFC,
|
today: IFC::IFC,
|
||||||
|
@ -159,6 +160,7 @@ async fn page(
|
||||||
fluent, d, sun_moon, next_event,
|
fluent, d, sun_moon, next_event,
|
||||||
)))
|
)))
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
pub async fn main() {
|
pub async fn main() {
|
||||||
|
|
122
ifc/src/lib.rs
122
ifc/src/lib.rs
|
@ -152,7 +152,11 @@ impl IFC {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn day_of_week(&self) -> DayOfWeek {
|
pub fn month_ifc(&self) -> Month {
|
||||||
|
Month::from(self.month())
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn weekday_ifc(&self) -> DayOfWeek {
|
||||||
match *self {
|
match *self {
|
||||||
IFC::LeapDay(_) => DayOfWeek::LeapDay,
|
IFC::LeapDay(_) => DayOfWeek::LeapDay,
|
||||||
IFC::YearDay(_) => DayOfWeek::YearDay,
|
IFC::YearDay(_) => DayOfWeek::YearDay,
|
||||||
|
@ -247,37 +251,7 @@ impl From<IFC> for chrono::NaiveDate {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)]
|
|
||||||
pub struct IFC {
|
|
||||||
year: u32,
|
|
||||||
ordinal: u32,
|
|
||||||
leap_year: bool,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
impl IFC {
|
impl IFC {
|
||||||
pub fn ymd(year: u32, month: u8, day: u8) -> Self {
|
|
||||||
let leap_year = is_leap_year(year as i32 - 10000);
|
|
||||||
|
|
||||||
let ordinal = if is_leap_year(year as i32 - 10000) {
|
|
||||||
if month == 6 && day == 29 {
|
|
||||||
168
|
|
||||||
} else if month > 6 {
|
|
||||||
(month as u32 - 1) * 28 + (day as u32)
|
|
||||||
} else {
|
|
||||||
(month as u32 - 1) * 28 + (day as u32) - 1
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
(month as u32 - 1) * 28 + (day as u32) - 1
|
|
||||||
};
|
|
||||||
|
|
||||||
IFC {
|
|
||||||
year,
|
|
||||||
ordinal,
|
|
||||||
leap_year,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn year_day(year: u32) -> Self {
|
pub fn year_day(year: u32) -> Self {
|
||||||
Self {
|
Self {
|
||||||
year,
|
year,
|
||||||
|
@ -285,26 +259,6 @@ impl IFC {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn leap_day(year: u32) -> Result<IFC, Error> {
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn weekday(&self) -> DayOfWeek {
|
|
||||||
// if self.day.ordinal ==
|
|
||||||
match self.day() % 7 {
|
|
||||||
0 => DayOfWeek::Saturday,
|
|
||||||
1 => DayOfWeek::Sunday,
|
|
||||||
2 => DayOfWeek::Monday,
|
|
||||||
3 => DayOfWeek::Tuesday,
|
|
||||||
4 => DayOfWeek::Wednesday,
|
|
||||||
5 => DayOfWeek::Thursday,
|
|
||||||
6 => DayOfWeek::Friday,
|
|
||||||
_ => panic!("impossible condition"),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn month_ifc(&self) -> Month {
|
|
||||||
Month::from(self.month())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -333,15 +287,17 @@ impl From<chrono::NaiveDate> for IFC {
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
impl Datelike for IFC {
|
impl Datelike for IFC {
|
||||||
fn year(&self) -> i32 {
|
fn year(&self) -> i32 {
|
||||||
self.year as i32
|
// self.year as i32
|
||||||
|
unimplemented!()
|
||||||
}
|
}
|
||||||
fn month(&self) -> u32 {
|
fn month(&self) -> u32 {
|
||||||
self.month0() + 1
|
// self.month0() + 1
|
||||||
|
unimplemented!()
|
||||||
}
|
}
|
||||||
fn month0(&self) -> u32 {
|
fn month0(&self) -> u32 {
|
||||||
|
/*
|
||||||
if self.leap_year && self.ordinal == 365 {
|
if self.leap_year && self.ordinal == 365 {
|
||||||
12
|
12
|
||||||
} else if self.leap_year && self.ordinal == 168 {
|
} else if self.leap_year && self.ordinal == 168 {
|
||||||
|
@ -349,11 +305,15 @@ impl Datelike for IFC {
|
||||||
} else {
|
} else {
|
||||||
self.ordinal / 28
|
self.ordinal / 28
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
unimplemented!()
|
||||||
}
|
}
|
||||||
fn day(&self) -> u32 {
|
fn day(&self) -> u32 {
|
||||||
self.day0() + 1
|
// self.day0() + 1
|
||||||
|
unimplemented!()
|
||||||
}
|
}
|
||||||
fn day0(&self) -> u32 {
|
fn day0(&self) -> u32 {
|
||||||
|
/*
|
||||||
if self.leap_year {
|
if self.leap_year {
|
||||||
if self.ordinal == 365 {
|
if self.ordinal == 365 {
|
||||||
28
|
28
|
||||||
|
@ -371,12 +331,16 @@ impl Datelike for IFC {
|
||||||
self.ordinal.rem_euclid(28) as u32
|
self.ordinal.rem_euclid(28) as u32
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
unimplemented!()
|
||||||
}
|
}
|
||||||
fn ordinal(&self) -> u32 {
|
fn ordinal(&self) -> u32 {
|
||||||
self.ordinal + 1
|
// self.ordinal + 1
|
||||||
|
unimplemented!()
|
||||||
}
|
}
|
||||||
fn ordinal0(&self) -> u32 {
|
fn ordinal0(&self) -> u32 {
|
||||||
self.ordinal
|
// self.ordinal
|
||||||
|
unimplemented!()
|
||||||
}
|
}
|
||||||
fn weekday(&self) -> chrono::Weekday {
|
fn weekday(&self) -> chrono::Weekday {
|
||||||
if self.day0() == 28 {
|
if self.day0() == 28 {
|
||||||
|
@ -398,40 +362,52 @@ impl Datelike for IFC {
|
||||||
panic!("iso_week is not implemented because chrono does not expose any constructors for IsoWeek!");
|
panic!("iso_week is not implemented because chrono does not expose any constructors for IsoWeek!");
|
||||||
}
|
}
|
||||||
fn with_year(&self, year: i32) -> Option<IFC> {
|
fn with_year(&self, year: i32) -> Option<IFC> {
|
||||||
|
/*
|
||||||
Some(IFC {
|
Some(IFC {
|
||||||
year: (year as u32) + 10000,
|
year: (year as u32) + 10000,
|
||||||
ordinal: self.ordinal,
|
ordinal: self.ordinal,
|
||||||
leap_year: is_leap_year(year),
|
leap_year: is_leap_year(year),
|
||||||
})
|
})
|
||||||
|
*/
|
||||||
|
unimplemented!()
|
||||||
}
|
}
|
||||||
fn with_month(&self, month: u32) -> Option<IFC> {
|
fn with_month(&self, month: u32) -> Option<IFC> {
|
||||||
Some(IFC::ymd(self.year, month as u8, self.day() as u8))
|
// Some(IFC::ymd(self.year, month as u8, self.day() as u8))
|
||||||
|
unimplemented!()
|
||||||
}
|
}
|
||||||
fn with_month0(&self, month: u32) -> Option<IFC> {
|
fn with_month0(&self, month: u32) -> Option<IFC> {
|
||||||
Some(IFC::ymd(self.year, month as u8 + 1, self.day() as u8))
|
// Some(IFC::ymd(self.year, month as u8 + 1, self.day() as u8))
|
||||||
|
unimplemented!()
|
||||||
}
|
}
|
||||||
fn with_day(&self, day: u32) -> Option<IFC> {
|
fn with_day(&self, day: u32) -> Option<IFC> {
|
||||||
Some(IFC::ymd(self.year, self.month() as u8, day as u8))
|
// Some(IFC::ymd(self.year, self.month() as u8, day as u8))
|
||||||
|
unimplemented!()
|
||||||
}
|
}
|
||||||
fn with_day0(&self, day: u32) -> Option<IFC> {
|
fn with_day0(&self, day: u32) -> Option<IFC> {
|
||||||
Some(IFC::ymd(self.year, self.month() as u8, day as u8 + 1))
|
// Some(IFC::ymd(self.year, self.month() as u8, day as u8 + 1))
|
||||||
|
unimplemented!()
|
||||||
}
|
}
|
||||||
fn with_ordinal(&self, ordinal: u32) -> Option<IFC> {
|
fn with_ordinal(&self, ordinal: u32) -> Option<IFC> {
|
||||||
|
/*
|
||||||
Some(IFC {
|
Some(IFC {
|
||||||
year: self.year,
|
year: self.year,
|
||||||
ordinal,
|
ordinal,
|
||||||
leap_year: self.leap_year,
|
leap_year: self.leap_year,
|
||||||
})
|
})
|
||||||
|
*/
|
||||||
|
unimplemented!()
|
||||||
}
|
}
|
||||||
fn with_ordinal0(&self, ordinal: u32) -> Option<IFC> {
|
fn with_ordinal0(&self, ordinal: u32) -> Option<IFC> {
|
||||||
|
/*
|
||||||
Some(IFC {
|
Some(IFC {
|
||||||
year: self.year,
|
year: self.year,
|
||||||
ordinal: ordinal + 1,
|
ordinal: ordinal + 1,
|
||||||
leap_year: self.leap_year,
|
leap_year: self.leap_year,
|
||||||
})
|
})
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
*/
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
|
@ -463,40 +439,40 @@ mod tests {
|
||||||
#[test]
|
#[test]
|
||||||
fn it_expresses_day_of_week() {
|
fn it_expresses_day_of_week() {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
IFC::leap_day(12020).unwrap().day_of_week(),
|
IFC::leap_day(12020).unwrap().weekday_ifc(),
|
||||||
DayOfWeek::LeapDay
|
DayOfWeek::LeapDay
|
||||||
);
|
);
|
||||||
assert_eq!(IFC::year_day(12022).day_of_week(), DayOfWeek::YearDay);
|
assert_eq!(IFC::year_day(12022).weekday_ifc(), DayOfWeek::YearDay);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
IFC::ymd(12022, 1, 1).unwrap().day_of_week(),
|
IFC::ymd(12022, 1, 1).unwrap().weekday_ifc(),
|
||||||
DayOfWeek::Sunday
|
DayOfWeek::Sunday
|
||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
IFC::ymd(12022, 1, 2).unwrap().day_of_week(),
|
IFC::ymd(12022, 1, 2).unwrap().weekday_ifc(),
|
||||||
DayOfWeek::Monday
|
DayOfWeek::Monday
|
||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
IFC::ymd(12022, 1, 3).unwrap().day_of_week(),
|
IFC::ymd(12022, 1, 3).unwrap().weekday_ifc(),
|
||||||
DayOfWeek::Tuesday
|
DayOfWeek::Tuesday
|
||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
IFC::ymd(12022, 1, 4).unwrap().day_of_week(),
|
IFC::ymd(12022, 1, 4).unwrap().weekday_ifc(),
|
||||||
DayOfWeek::Wednesday
|
DayOfWeek::Wednesday
|
||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
IFC::ymd(12022, 1, 5).unwrap().day_of_week(),
|
IFC::ymd(12022, 1, 5).unwrap().weekday_ifc(),
|
||||||
DayOfWeek::Thursday
|
DayOfWeek::Thursday
|
||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
IFC::ymd(12022, 1, 6).unwrap().day_of_week(),
|
IFC::ymd(12022, 1, 6).unwrap().weekday_ifc(),
|
||||||
DayOfWeek::Friday
|
DayOfWeek::Friday
|
||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
IFC::ymd(12022, 1, 7).unwrap().day_of_week(),
|
IFC::ymd(12022, 1, 7).unwrap().weekday_ifc(),
|
||||||
DayOfWeek::Saturday
|
DayOfWeek::Saturday
|
||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
IFC::ymd(12022, 1, 8).unwrap().day_of_week(),
|
IFC::ymd(12022, 1, 8).unwrap().weekday_ifc(),
|
||||||
DayOfWeek::Sunday
|
DayOfWeek::Sunday
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue