WIP time bin chain test case
This commit is contained in:
@@ -1563,7 +1563,10 @@ where
|
||||
beg: self.offset * self.grid_spec.bin_t_len,
|
||||
end: (self.offset + self.bin_count) * self.grid_spec.bin_t_len,
|
||||
}*/
|
||||
err::todoval()
|
||||
let beg = self.bin_len.times(self.bin_off).as_u64();
|
||||
let end = self.bin_len.times(self.bin_off + self.bin_cnt).as_u64();
|
||||
warn!("TODO make generic for pulse");
|
||||
NanoRange { beg, end }
|
||||
}
|
||||
|
||||
pub fn edges_u64(&self) -> Vec<u64> {
|
||||
@@ -1641,7 +1644,7 @@ impl BinnedRangeEnum {
|
||||
match self {
|
||||
BinnedRangeEnum::Time(k) => {
|
||||
if (i as u64) < k.bin_cnt {
|
||||
let beg = k.bin_off + k.bin_len.0 * i as u64;
|
||||
let beg = k.bin_len.0 * (k.bin_off + i as u64);
|
||||
let x = SeriesRange::TimeRange(NanoRange {
|
||||
beg,
|
||||
end: beg + k.bin_len.0,
|
||||
@@ -1653,7 +1656,7 @@ impl BinnedRangeEnum {
|
||||
}
|
||||
BinnedRangeEnum::Pulse(k) => {
|
||||
if (i as u64) < k.bin_cnt {
|
||||
let beg = k.bin_off + k.bin_len.0 * i as u64;
|
||||
let beg = k.bin_len.0 * (k.bin_off + i as u64);
|
||||
let x = SeriesRange::PulseRange(PulseRange {
|
||||
beg,
|
||||
end: beg + k.bin_len.0,
|
||||
|
||||
@@ -25,4 +25,36 @@ fn test_binned_range_covering_00() {
|
||||
assert_eq!(a[0], TsNano((((10 * 60) + 10) * 60 + 0) * SEC));
|
||||
assert_eq!(a[1], TsNano((((10 * 60) + 11) * 60 + 0) * SEC));
|
||||
assert_eq!(a[10], TsNano((((10 * 60) + 20) * 60 + 0) * SEC));
|
||||
let x = r.range_at(2).unwrap();
|
||||
let y = SeriesRange::TimeRange(NanoRange {
|
||||
beg: (((10 * 60) + 12) * 60 + 0) * SEC,
|
||||
end: (((10 * 60) + 13) * 60 + 0) * SEC,
|
||||
});
|
||||
assert_eq!(x, y);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_binned_range_covering_01() {
|
||||
let range = SeriesRange::TimeRange(NanoRange::from_date_time(
|
||||
DateTime::parse_from_rfc3339("1970-01-01T00:20:04Z").unwrap().into(),
|
||||
DateTime::parse_from_rfc3339("1970-01-01T00:21:10Z").unwrap().into(),
|
||||
));
|
||||
let r = BinnedRangeEnum::covering_range(range, 9).unwrap();
|
||||
assert_eq!(r.bin_count(), 14);
|
||||
if let Dim0Kind::Time = r.dim0kind() {
|
||||
} else {
|
||||
panic!()
|
||||
}
|
||||
let r2 = r.binned_range_time();
|
||||
let a = r2.edges();
|
||||
assert_eq!(a.len(), 15);
|
||||
assert_eq!(a[0], TsNano((((0 * 60) + 20) * 60 + 0) * SEC));
|
||||
assert_eq!(a[1], TsNano((((0 * 60) + 20) * 60 + 5) * SEC));
|
||||
assert_eq!(a[14], TsNano((((0 * 60) + 21) * 60 + 10) * SEC));
|
||||
let x = r.range_at(0).unwrap();
|
||||
let y = SeriesRange::TimeRange(NanoRange {
|
||||
beg: (((0 * 60) + 20) * 60 + 0) * SEC,
|
||||
end: (((0 * 60) + 20) * 60 + 5) * SEC,
|
||||
});
|
||||
assert_eq!(x, y);
|
||||
}
|
||||
|
||||
@@ -107,8 +107,8 @@ impl SeriesRange {
|
||||
|
||||
pub fn end_u64(&self) -> u64 {
|
||||
match self {
|
||||
SeriesRange::TimeRange(x) => x.beg,
|
||||
SeriesRange::PulseRange(x) => x.beg,
|
||||
SeriesRange::TimeRange(x) => x.end,
|
||||
SeriesRange::PulseRange(x) => x.end,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user