use crate::currency::Currency;
use crate::indexes::inflationindex::ZeroInflationIndex;
use crate::indexes::region::Region;
use crate::settings::Settings;
use crate::shared::Shared;
use crate::time::date::Date;
use crate::time::frequency::Frequency;
use crate::time::period::Period;
use crate::time::timeunit::TimeUnit;
pub struct UkHicp;
impl UkHicp {
#[allow(clippy::new_ret_no_self)]
pub fn new(settings: Shared<Settings<Date>>) -> ZeroInflationIndex {
ZeroInflationIndex::new(
"HICP".into(),
Region::uk(),
false,
Frequency::Monthly,
Period::new(1, TimeUnit::Months),
Currency::gbp(),
settings,
)
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::indexes::index::Index;
use crate::indexes::inflationindex::InflationIndex;
use crate::shared::shared;
#[test]
fn construction_matches_the_cpp_table() {
let index = UkHicp::new(shared(Settings::<Date>::new()));
assert_eq!(index.name(), "UK HICP");
assert_eq!(index.frequency(), Frequency::Monthly);
assert!(!index.revised());
assert_eq!(index.availability_lag(), Period::new(1, TimeUnit::Months));
assert_eq!(index.currency().code(), "GBP");
}
}