Updated epsilon on unit test. Updated recording use statements on doctest

This commit is contained in:
Anne de Jong 2024-07-10 00:18:51 +02:00
parent 19484fd1cb
commit ed576df32d
2 changed files with 32 additions and 4 deletions

View File

@ -76,7 +76,7 @@ impl RecordSettings {
/// This struct lets a recording run on a stream, waits till the first data arrives and records for a given period of time. Usage: /// This struct lets a recording run on a stream, waits till the first data arrives and records for a given period of time. Usage:
/// ///
/// ``` /// ```
/// use lasprs::{RecordSettings, StreamMgr, Recording}; /// use lasprs::daq::{RecordSettings, StreamMgr, Recording};
/// use std::time::Duration; /// use std::time::Duration;
/// ///
/// fn main() -> anyhow::Result<()> { /// fn main() -> anyhow::Result<()> {

View File

@ -427,18 +427,46 @@ mod test {
assert!(false); assert!(false);
} }
} }
#[test]
fn test_tf2() {
let nfft = 4800;
let distr = Normal::new(1.0, 1.0).unwrap();
let mut timedata = Dmat::random((nfft, 1), distr);
timedata
.push_column(timedata.column(0).mapv(|a| 2. * a).view())
.unwrap();
// Negative reference channel
timedata
.push_column(timedata.column(0).mapv(|a| -1. * a).view())
.unwrap();
let mut aps = AvPowerSpectra::build(nfft, None, None, None).unwrap();
if let ApsResult::OnlyLastResult(v) = aps.compute_last(&timedata) {
let tf = v.tf(0, 1, Some(2));
assert_eq!((&tf - 2.0 * Cflt::ONE).sum().abs(), 0.0);
} else {
assert!(false);
}
}
#[test] #[test]
fn test_ap() { fn test_ap() {
let nfft = 256; let nfft = 256;
let distr = Normal::new(1.0, 1.0).unwrap(); let distr = Normal::new(1.0, 1.0).unwrap();
let timedata = Dmat::random((500 * nfft, 1), distr); let timedata = Dmat::random((100 * nfft, 1), distr);
let timedata_mean_square = (&timedata * &timedata).sum() / (timedata.len() as Flt); let timedata_mean_square = (&timedata * &timedata).sum() / (timedata.len() as Flt);
for wt in [Some(WindowType::Rect), Some(WindowType::Hann), Some(WindowType::Bartlett), Some(WindowType::Blackman), None] { for wt in [
Some(WindowType::Rect),
Some(WindowType::Hann),
Some(WindowType::Bartlett),
Some(WindowType::Blackman),
None,
] {
let mut aps = AvPowerSpectra::build(nfft, wt, None, None).unwrap(); let mut aps = AvPowerSpectra::build(nfft, wt, None, None).unwrap();
if let ApsResult::OnlyLastResult(v) = aps.compute_last(&timedata) { if let ApsResult::OnlyLastResult(v) = aps.compute_last(&timedata) {
let ap = v.ap(0); let ap = v.ap(0);
assert_abs_diff_eq!((&ap).sum().abs(), timedata_mean_square, epsilon = 4e-3); assert_abs_diff_eq!((&ap).sum().abs(), timedata_mean_square, epsilon = 8e-3);
} else { } else {
assert!(false); assert!(false);
} }