Adapt tests to ST data

This commit is contained in:
Dominik Werder
2021-11-12 19:14:32 +01:00
parent 9dc4fb05db
commit c39af81097
2 changed files with 139 additions and 134 deletions

View File

@@ -454,6 +454,7 @@ mod test {
use super::*;
use crate::archeng::blockrefstream::blockref_stream;
use crate::archeng::indexfiles::index_file_path_list;
use chrono::{DateTime, Utc};
use futures_util::StreamExt;
use items::{LogItem, RangeCompletableItem, StreamItem};
use netpod::{timeunits::SEC, Channel, Database};
@@ -482,7 +483,8 @@ mod test {
async fn count_events(range: NanoRange, expand: bool, collect_ts: bool) -> Result<EventCount, Error> {
let channel = Channel {
backend: "sls-archive".into(),
name: "X05DA-FE-WI1:TC1".into(),
//name: "X05DA-FE-WI1:TC1".into(),
name: "ARIDI-PCT:CURRENT".into(),
};
let dbconf = Database {
host: "localhost".into(),
@@ -516,6 +518,7 @@ mod test {
let n = item.len();
for i in 0..n {
let ts = item.ts(i);
//info!("See event {}", ts);
if ts < range.beg {
ret.pre += 1;
} else if ts < range.end {
@@ -540,135 +543,149 @@ mod test {
Ok(ret)
}
fn tons(dt: &DateTime<Utc>) -> u64 {
dt.timestamp() as u64 * SEC + dt.timestamp_subsec_nanos() as u64
}
/*
See event 1636498894380250805
See event 1636499776028981476
See event 1636413555754299959
See event 1636413555908344145
See event 1636498896546533901
See event 1636498896546540966
See event 1636499855546054375
See event 1636499914581647548
See event 1636537592102377806
See event 1636545517217768432
See event 1636560318439777562
See event 1636585292173222036
See event 1636585292173229436
*/
#[test]
fn read_blocks_one_event() -> Result<(), Error> {
fn read_blocks_one_event_basic() -> Result<(), Error> {
//let ta = "2021-11-09T10:00:00Z";
//let tb = "2021-11-09T11:00:00Z";
let _ev1 = "2021-10-03T09:57:59.939651334Z";
let _ev2 = "2021-10-03T09:58:59.940910313Z";
let _ev3 = "2021-10-03T09:59:59.940112431Z";
let ev1ts = 1633255079939651334;
let ev2ts = 1633255139940910313;
// This is from bl SH index:
//let ev1ts = 1633255079939651334;
//let ev2ts = 1633255139940910313;
// [ev1..ev2]
let range = NanoRange { beg: ev1ts, end: ev2ts };
//let beg = tons(&ta.parse()?);
//let end = tons(&tb.parse()?);
//let ev1ts = 1636498896546533901;
//let ev2ts = 1636498896546540966;
let beg = 1636455492985809049;
let end = 1636455493306756248;
let range = NanoRange { beg, end };
let res = taskrun::run(count_events(range, false, true))?;
assert_eq!(res.pre, 0);
assert_eq!(res.inside, 1);
assert_eq!(res.post, 0);
assert_eq!(res.tss[0], ev1ts);
assert_eq!(res.tss[0], beg);
assert_eq!(res.raco, 1);
Ok(())
}
#[test]
fn read_blocks_one_event_expand() -> Result<(), Error> {
let ev1ts = 1633255079939651334;
let ev2ts = 1633255139940910313;
let range = NanoRange { beg: ev1ts, end: ev2ts };
// This is from bl SH index:
//let ev1ts = 1633255079939651334;
//let ev2ts = 1633255139940910313;
let beg = 1636455492985809049;
let end = 1636455493306756248;
let range = NanoRange { beg, end };
let res = taskrun::run(count_events(range, true, true))?;
assert_eq!(res.pre, 1);
assert_eq!(res.inside, 1);
assert_eq!(res.post, 1);
assert_eq!(res.tss[1], ev1ts);
assert_eq!(res.tss[1], beg);
assert_eq!(res.raco, 1);
Ok(())
}
#[test]
fn read_blocks_two_events() -> Result<(), Error> {
let ev1ts = 1633255079939651334;
let ev2ts = 1633255139940910313;
let range = NanoRange {
beg: ev1ts,
end: ev2ts + 1,
};
fn read_blocks_two_events_basic() -> Result<(), Error> {
let beg = 1636455492985809049;
let end = 1636455493306756248;
let range = NanoRange { beg: beg, end: end + 1 };
let res = taskrun::run(count_events(range, false, true))?;
assert_eq!(res.pre, 0);
assert_eq!(res.inside, 2);
assert_eq!(res.post, 0);
assert_eq!(res.tss[0], ev1ts);
assert_eq!(res.tss[1], ev2ts);
assert_eq!(res.tss[0], beg);
assert_eq!(res.tss[1], end);
assert_eq!(res.raco, 1);
Ok(())
}
#[test]
fn read_blocks_two_events_expand() -> Result<(), Error> {
let ev1ts = 1633255079939651334;
let ev2ts = 1633255139940910313;
let range = NanoRange {
beg: ev1ts,
end: ev2ts + 1,
};
let beg = 1636455492985809049;
let end = 1636455493306756248;
let range = NanoRange { beg: beg, end: end + 1 };
let res = taskrun::run(count_events(range, true, true))?;
assert_eq!(res.pre, 1);
assert_eq!(res.inside, 2);
assert_eq!(res.post, 1);
assert_eq!(res.tss[1], ev1ts);
assert_eq!(res.tss[2], ev2ts);
assert_eq!(res.tss[1], beg);
assert_eq!(res.tss[2], end);
assert_eq!(res.raco, 1);
Ok(())
}
#[test]
fn read_blocks_many_1() -> Result<(), Error> {
use chrono::{DateTime, Utc};
let _early = "2021-10-06T00:00:00Z";
let _late = "2021-10-07T00:00:00Z";
let dtbeg: DateTime<Utc> = _early.parse()?;
let dtend: DateTime<Utc> = _late.parse()?;
fn tons(dt: &DateTime<Utc>) -> u64 {
dt.timestamp() as u64 * SEC + dt.timestamp_subsec_nanos() as u64
}
fn read_blocks_many_1_basic() -> Result<(), Error> {
let dtbeg = "2021-11-09T10:00:00Z";
let dtend = "2021-11-09T11:00:00Z";
let dtbeg: DateTime<Utc> = dtbeg.parse()?;
let dtend: DateTime<Utc> = dtend.parse()?;
let range = NanoRange {
beg: tons(&dtbeg),
end: tons(&dtend),
};
let res = taskrun::run(count_events(range, false, false))?;
assert_eq!(res.pre, 0);
assert_eq!(res.inside, 77);
assert_eq!(res.inside, 726);
assert_eq!(res.post, 0);
assert_eq!(res.raco, 1);
Ok(())
}
#[test]
fn read_blocks_many_2() -> Result<(), Error> {
use chrono::{DateTime, Utc};
let _early = "2021-09-01T00:00:00Z";
let _late = "2021-10-07T00:00:00Z";
let dtbeg: DateTime<Utc> = _early.parse()?;
let dtend: DateTime<Utc> = _late.parse()?;
fn tons(dt: &DateTime<Utc>) -> u64 {
dt.timestamp() as u64 * SEC + dt.timestamp_subsec_nanos() as u64
}
fn read_blocks_many_1_expand() -> Result<(), Error> {
let dtbeg = "2021-11-09T10:00:00Z";
let dtend = "2021-11-09T11:00:00Z";
let dtbeg: DateTime<Utc> = dtbeg.parse()?;
let dtend: DateTime<Utc> = dtend.parse()?;
let range = NanoRange {
beg: tons(&dtbeg),
end: tons(&dtend),
};
let res = taskrun::run(count_events(range, false, false))?;
assert_eq!(res.pre, 0);
assert_eq!(res.inside, 20328);
assert_eq!(res.post, 0);
let res = taskrun::run(count_events(range, true, false))?;
assert_eq!(res.pre, 1);
assert_eq!(res.inside, 726);
assert_eq!(res.post, 1);
assert_eq!(res.raco, 1);
Ok(())
}
#[test]
fn read_blocks_many_3() -> Result<(), Error> {
use chrono::{DateTime, Utc};
let _early = "2021-08-01T00:00:00Z";
let _late = "2021-10-07T00:00:00Z";
let dtbeg: DateTime<Utc> = _early.parse()?;
let dtend: DateTime<Utc> = _late.parse()?;
fn tons(dt: &DateTime<Utc>) -> u64 {
dt.timestamp() as u64 * SEC + dt.timestamp_subsec_nanos() as u64
}
fn read_blocks_many_3_basic() -> Result<(), Error> {
let dtbeg = "2021-11-09T10:00:00Z";
let dtend = "2021-11-09T13:00:00Z";
let range = NanoRange {
beg: tons(&dtbeg),
end: tons(&dtend),
beg: tons(&dtbeg.parse()?),
end: tons(&dtend.parse()?),
};
let res = taskrun::run(count_events(range, false, false))?;
assert_eq!(res.pre, 0);
assert_eq!(res.inside, 35438);
assert_eq!(res.inside, 2089);
assert_eq!(res.post, 0);
assert_eq!(res.raco, 1);
Ok(())
@@ -676,43 +693,31 @@ mod test {
#[test]
fn read_blocks_many_3_expand() -> Result<(), Error> {
use chrono::{DateTime, Utc};
let _early = "2021-08-01T00:00:00Z";
let _late = "2021-10-07T00:00:00Z";
let dtbeg: DateTime<Utc> = _early.parse()?;
let dtend: DateTime<Utc> = _late.parse()?;
fn tons(dt: &DateTime<Utc>) -> u64 {
dt.timestamp() as u64 * SEC + dt.timestamp_subsec_nanos() as u64
}
let dtbeg = "2021-11-09T10:00:00Z";
let dtend = "2021-11-09T13:00:00Z";
let range = NanoRange {
beg: tons(&dtbeg),
end: tons(&dtend),
beg: tons(&dtbeg.parse()?),
end: tons(&dtend.parse()?),
};
let res = taskrun::run(count_events(range, true, false))?;
assert_eq!(res.pre, 1);
assert_eq!(res.inside, 35438);
assert_eq!(res.inside, 2089);
assert_eq!(res.post, 1);
assert_eq!(res.raco, 1);
Ok(())
}
#[test]
fn read_blocks_many_4() -> Result<(), Error> {
use chrono::{DateTime, Utc};
let _early = "2020-01-01T00:00:00Z";
let _late = "2021-10-07T00:00:00Z";
let dtbeg: DateTime<Utc> = _early.parse()?;
let dtend: DateTime<Utc> = _late.parse()?;
fn tons(dt: &DateTime<Utc>) -> u64 {
dt.timestamp() as u64 * SEC + dt.timestamp_subsec_nanos() as u64
}
fn read_blocks_many_4_basic() -> Result<(), Error> {
let dtbeg = "2020-11-09T10:00:00Z";
let dtend = "2021-11-09T13:00:00Z";
let range = NanoRange {
beg: tons(&dtbeg),
end: tons(&dtend),
beg: tons(&dtbeg.parse()?),
end: tons(&dtend.parse()?),
};
let res = taskrun::run(count_events(range, false, false))?;
assert_eq!(res.pre, 0);
assert_eq!(res.inside, 71146);
assert_eq!(res.inside, 9518);
assert_eq!(res.post, 0);
assert_eq!(res.raco, 1);
Ok(())
@@ -720,43 +725,31 @@ mod test {
#[test]
fn read_blocks_many_4_expand() -> Result<(), Error> {
use chrono::{DateTime, Utc};
let _early = "2020-01-01T00:00:00Z";
let _late = "2021-10-07T00:00:00Z";
let dtbeg: DateTime<Utc> = _early.parse()?;
let dtend: DateTime<Utc> = _late.parse()?;
fn tons(dt: &DateTime<Utc>) -> u64 {
dt.timestamp() as u64 * SEC + dt.timestamp_subsec_nanos() as u64
}
let dtbeg = "2020-11-09T10:00:00Z";
let dtend = "2021-11-09T13:00:00Z";
let range = NanoRange {
beg: tons(&dtbeg),
end: tons(&dtend),
beg: tons(&dtbeg.parse()?),
end: tons(&dtend.parse()?),
};
let res = taskrun::run(count_events(range, true, false))?;
assert_eq!(res.pre, 0);
assert_eq!(res.inside, 71146);
assert_eq!(res.inside, 9518);
assert_eq!(res.post, 1);
assert_eq!(res.raco, 1);
Ok(())
}
#[test]
fn read_blocks_late() -> Result<(), Error> {
use chrono::{DateTime, Utc};
let _early = "2021-10-01T00:00:00Z";
let _late = "2021-12-01T00:00:00Z";
let dtbeg: DateTime<Utc> = _early.parse()?;
let dtend: DateTime<Utc> = _late.parse()?;
fn tons(dt: &DateTime<Utc>) -> u64 {
dt.timestamp() as u64 * SEC + dt.timestamp_subsec_nanos() as u64
}
fn read_blocks_late_basic() -> Result<(), Error> {
let dtbeg = "2021-11-09T10:00:00Z";
let dtend = "2022-11-09T13:00:00Z";
let range = NanoRange {
beg: tons(&dtbeg),
end: tons(&dtend),
beg: tons(&dtbeg.parse()?),
end: tons(&dtend.parse()?),
};
let res = taskrun::run(count_events(range, false, false))?;
assert_eq!(res.pre, 0);
assert_eq!(res.inside, 3000);
assert_eq!(res.inside, 12689);
assert_eq!(res.post, 0);
assert_eq!(res.raco, 0);
Ok(())
@@ -764,21 +757,15 @@ mod test {
#[test]
fn read_blocks_late_expand() -> Result<(), Error> {
use chrono::{DateTime, Utc};
let _early = "2021-10-01T00:00:00Z";
let _late = "2021-12-01T00:00:00Z";
let dtbeg: DateTime<Utc> = _early.parse()?;
let dtend: DateTime<Utc> = _late.parse()?;
fn tons(dt: &DateTime<Utc>) -> u64 {
dt.timestamp() as u64 * SEC + dt.timestamp_subsec_nanos() as u64
}
let dtbeg = "2021-11-09T10:00:00Z";
let dtend = "2022-11-09T13:00:00Z";
let range = NanoRange {
beg: tons(&dtbeg),
end: tons(&dtend),
beg: tons(&dtbeg.parse()?),
end: tons(&dtend.parse()?),
};
let res = taskrun::run(count_events(range, true, false))?;
assert_eq!(res.pre, 1);
assert_eq!(res.inside, 3000);
assert_eq!(res.inside, 12689);
assert_eq!(res.post, 0);
assert_eq!(res.raco, 0);
Ok(())

View File

@@ -74,6 +74,20 @@ async fn get_binned_json_2_inner() -> Result<(), Error> {
.await
}
fn check_close(a: &BinnedResponse, b: &BinnedResponse, jsstr: &String) -> Result<(), Error> {
match a.is_close(b) {
Ok(true) => Ok(()),
Ok(false) => {
error!("Mismatch, original JSON:\n{}", jsstr);
Err(Error::with_msg_no_trace("mismatch"))
}
Err(e) => {
error!("Mismatch, original JSON:\n{}", jsstr);
Err(e)
}
}
}
#[test]
fn get_sls_archive_1() -> Result<(), Error> {
let fut = async move {
@@ -85,10 +99,11 @@ fn get_sls_archive_1() -> Result<(), Error> {
};
let begstr = "2021-11-10T01:00:00Z";
let endstr = "2021-11-10T01:01:00Z";
let res = get_binned_json_common_res(channel, begstr, endstr, 10, AggKind::TimeWeightedScalar, cluster).await?;
let (res, jsstr) =
get_binned_json_common_res(channel, begstr, endstr, 10, AggKind::TimeWeightedScalar, cluster).await?;
let exp = r##"{"avgs":[24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875],"counts":[0,0,0,0,0,0,0,0,0,0,0,0],"finalisedRange":true,"maxs":[24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875],"mins":[24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875,24.37225341796875],"tsAnchor":1636506000,"tsMs":[0,5000,10000,15000,20000,25000,30000,35000,40000,45000,50000,55000,60000],"tsNs":[0,0,0,0,0,0,0,0,0,0,0,0,0]}"##;
let exp: BinnedResponse = serde_json::from_str(exp).unwrap();
res.is_close(&exp)?;
check_close(&res, &exp, &jsstr)?;
Ok(())
};
taskrun::run(fut)
@@ -105,10 +120,11 @@ fn get_sls_archive_2() -> Result<(), Error> {
};
let begstr = "2021-11-10T00:00:00Z";
let endstr = "2021-11-10T00:10:00Z";
let res = get_binned_json_common_res(channel, begstr, endstr, 10, AggKind::TimeWeightedScalar, cluster).await?;
let (res, jsstr) =
get_binned_json_common_res(channel, begstr, endstr, 10, AggKind::TimeWeightedScalar, cluster).await?;
let exp = r##"{"avgs":[401.1745910644531,401.5135498046875,400.8823547363281,400.66156005859375,401.8301086425781,401.19305419921875,400.5584411621094,401.4371337890625,401.4137268066406,400.77880859375],"counts":[19,6,6,19,6,6,6,19,6,6],"finalisedRange":true,"maxs":[402.04977411361034,401.8439029736943,401.22628955394583,402.1298351124666,402.1298351124666,401.5084092642013,400.8869834159359,402.05358654212733,401.74477983225313,401.1271664125047],"mins":[400.08256099885625,401.22628955394583,400.60867613419754,400.0939982844072,401.5084092642013,400.8869834159359,400.2693699961876,400.05968642775446,401.1271664125047,400.50574056423943],"tsAnchor":1636502400,"tsMs":[0,60000,120000,180000,240000,300000,360000,420000,480000,540000,600000],"tsNs":[0,0,0,0,0,0,0,0,0,0,0]}"##;
let exp: BinnedResponse = serde_json::from_str(exp).unwrap();
res.is_close(&exp)?;
check_close(&res, &exp, &jsstr)?;
Ok(())
};
taskrun::run(fut)
@@ -125,10 +141,11 @@ fn get_sls_archive_3() -> Result<(), Error> {
};
let begstr = "2021-11-09T00:00:00Z";
let endstr = "2021-11-11T00:10:00Z";
let res = get_binned_json_common_res(channel, begstr, endstr, 10, AggKind::TimeWeightedScalar, cluster).await?;
let (res, jsstr) =
get_binned_json_common_res(channel, begstr, endstr, 10, AggKind::TimeWeightedScalar, cluster).await?;
let exp = r##"{"avgs":[401.1354675292969,401.1296081542969,401.1314392089844,401.134765625,401.1371154785156,376.5816345214844,401.13775634765625,209.2684783935547,-0.06278431415557861,-0.06278431415557861,-0.06278431415557861,-0.047479934990406036,0.0],"counts":[2772,2731,2811,2689,2803,2203,2355,1232,0,0,0,2,0],"maxs":[402.1717718261533,402.18702154022117,402.1908339687381,402.198458825772,402.17939668318724,402.194646397255,402.1908339687381,402.1908339687381,-0.06278431346925281,-0.06278431346925281,-0.06278431346925281,0.0,0.0],"mins":[400.0291869996188,400.02537457110185,400.0291869996188,400.0329994281358,400.0291869996188,0.0,400.0444367136866,-0.06278431346925281,-0.06278431346925281,-0.06278431346925281,-0.06278431346925281,-0.06278431346925281,0.0],"tsAnchor":1636416000,"tsMs":[0,14400000,28800000,43200000,57600000,72000000,86400000,100800000,115200000,129600000,144000000,158400000,172800000,187200000],"tsNs":[0,0,0,0,0,0,0,0,0,0,0,0,0,0]}"##;
let exp: BinnedResponse = serde_json::from_str(exp).unwrap();
res.is_close(&exp)?;
check_close(&res, &exp, &jsstr)?;
Ok(())
};
taskrun::run(fut)
@@ -145,10 +162,11 @@ fn get_sls_archive_wave_1() -> Result<(), Error> {
};
let begstr = "2021-11-09T00:00:00Z";
let endstr = "2021-11-11T00:10:00Z";
let res = get_binned_json_common_res(channel, begstr, endstr, 10, AggKind::TimeWeightedScalar, cluster).await?;
let (res, jsstr) =
get_binned_json_common_res(channel, begstr, endstr, 10, AggKind::TimeWeightedScalar, cluster).await?;
let exp = r##"{"avgs":[401.1354675292969,401.1296081542969,401.1314392089844,401.134765625,401.1371154785156,376.5816345214844,401.13775634765625,209.2684783935547,-0.06278431415557861,-0.06278431415557861,-0.06278431415557861,-0.047479934990406036,0.0],"counts":[2772,2731,2811,2689,2803,2203,2355,1232,0,0,0,2,0],"maxs":[402.1717718261533,402.18702154022117,402.1908339687381,402.198458825772,402.17939668318724,402.194646397255,402.1908339687381,402.1908339687381,-0.06278431346925281,-0.06278431346925281,-0.06278431346925281,0.0,0.0],"mins":[400.0291869996188,400.02537457110185,400.0291869996188,400.0329994281358,400.0291869996188,0.0,400.0444367136866,-0.06278431346925281,-0.06278431346925281,-0.06278431346925281,-0.06278431346925281,-0.06278431346925281,0.0],"tsAnchor":1636416000,"tsMs":[0,14400000,28800000,43200000,57600000,72000000,86400000,100800000,115200000,129600000,144000000,158400000,172800000,187200000],"tsNs":[0,0,0,0,0,0,0,0,0,0,0,0,0,0]}"##;
let exp: BinnedResponse = serde_json::from_str(exp).unwrap();
res.is_close(&exp)?;
check_close(&res, &exp, &jsstr)?;
Ok(())
};
taskrun::run(fut)
@@ -165,10 +183,11 @@ fn get_sls_archive_wave_2() -> Result<(), Error> {
};
let begstr = "2021-11-09T10:00:00Z";
let endstr = "2021-11-10T06:00:00Z";
let res = get_binned_json_common_res(channel, begstr, endstr, 10, AggKind::TimeWeightedScalar, cluster).await?;
let exp = r##"{"avgs":[0.00014690558600705117,0.00014207433559931815,0.0001436264137737453,0.00014572929649148136,0.00015340493700932711,0.00014388437557499856,0.00012792187044396996,0.00014416234625969082,0.0001486341789131984,0.000145719779538922],"counts":[209,214,210,219,209,192,171,307,285,232],"maxs":[0.001784245832823217,0.0016909628175199032,0.0017036109929904342,0.0016926786629483104,0.001760474289767444,0.0018568832892924547,0.001740367733873427,0.0017931810580193996,0.0017676990246400237,0.002342566382139921],"mins":[0.000040829672798281536,0.00004028259718324989,0.000037641591916326433,0.000039788486901670694,0.00004028418697998859,0.00003767738598980941,0.0,0.00004095739495824091,0.00004668773908633739,0.00003859612115775235],"tsAnchor":1636452000,"tsMs":[0,7200000,14400000,21600000,28800000,36000000,43200000,50400000,57600000,64800000,72000000],"tsNs":[0,0,0,0,0,0,0,0,0,0,0]}"##;
let (res, jsstr) =
get_binned_json_common_res(channel, begstr, endstr, 10, AggKind::TimeWeightedScalar, cluster).await?;
let exp = r##"{"avgs":[2.0403556177939208e-8,1.9732556921780997e-8,1.9948116047885378e-8,2.024017220492169e-8,2.1306243880303555e-8,1.998394871804976e-8,1.776692748478581e-8,2.002254362309941e-8,2.0643645015638867e-8,2.0238848819076338e-8],"counts":[209,214,210,219,209,192,171,307,285,232],"maxs":[0.001784245832823217,0.0016909628175199032,0.0017036109929904342,0.0016926786629483104,0.0017604742897674441,0.0018568832892924547,0.001740367733873427,0.0017931810580193996,0.0017676990246400237,0.002342566382139921],"mins":[0.000040829672798281536,0.00004028259718324989,0.000037641591916326433,0.000039788486901670694,0.00004028418697998859,0.00003767738598980941,0.0,0.00004095739495824091,0.00004668773908633739,0.00003859612115775235],"tsAnchor":1636452000,"tsMs":[0,7200000,14400000,21600000,28800000,36000000,43200000,50400000,57600000,64800000,72000000],"tsNs":[0,0,0,0,0,0,0,0,0,0,0]}"##;
let exp: BinnedResponse = serde_json::from_str(exp).unwrap();
res.is_close(&exp)?;
check_close(&res, &exp, &jsstr)?;
Ok(())
};
taskrun::run(fut)
@@ -317,7 +336,7 @@ async fn get_binned_json_common_res(
bin_count: u32,
agg_kind: AggKind,
cluster: &Cluster,
) -> Result<BinnedResponse, Error> {
) -> Result<(BinnedResponse, String), Error> {
let t1 = Utc::now();
let node0 = &cluster.nodes[0];
let beg_date: DateTime<Utc> = beg_date.parse()?;
@@ -344,7 +363,6 @@ async fn get_binned_json_common_res(
let t2 = chrono::Utc::now();
let _ms = t2.signed_duration_since(t1).num_milliseconds() as u64;
let res = String::from_utf8_lossy(&res).to_string();
info!("GOT: {}", res);
let res: BinnedResponse = serde_json::from_str(res.as_str())?;
Ok(res)
let ret: BinnedResponse = serde_json::from_str(res.as_str())?;
Ok((ret, res))
}