Skip to content

Commit 1f3b738

Browse files
authored
Add more tests for consistent outputs with varying type parameters (#31)
1 parent a1a2d7e commit 1f3b738

File tree

1 file changed

+44
-4
lines changed

1 file changed

+44
-4
lines changed

src/lib.rs

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -413,20 +413,60 @@ mod tests {
413413
}
414414
}
415415

416-
// NOTE: use for new test in future: /// Full PID operation with mixed signed integer checking to make sure they're equal
416+
/// Full PID operation with mixed signed integer checking to make sure they're equal
417417
/// PID operation with zero'd values, checking to see if different floats equal each other
418418
#[test]
419-
fn signed_integers_zeros() {
419+
fn signed_integers() {
420420
let mut pid_i8 = Pid::new(10i8, 100);
421421
pid_i8.p(0, 100).i(0, 100).d(0, 100);
422422

423+
let mut pid_i16 = Pid::new(10i16, 100i16);
424+
pid_i16.p(0i16, 100i16).i(0i16, 100i16).d(0i16, 100i16);
425+
423426
let mut pid_i32 = Pid::new(10i32, 100);
424427
pid_i32.p(0, 100).i(0, 100).d(0, 100);
425428

429+
let mut pid_i64 = Pid::new(10i64, 100);
430+
pid_i64.p(0, 100).i(0, 100).d(0, 100);
431+
432+
let mut pid_i128 = Pid::new(10i128, 100);
433+
pid_i128.p(0, 100).i(0, 100).d(0, 100);
434+
435+
for _ in 0..5 {
436+
assert_eq!(
437+
pid_i8.next_control_output(0i8).output as i16,
438+
pid_i16.next_control_output(0i16).output,
439+
);
440+
441+
assert_eq!(
442+
pid_i16.next_control_output(0i16).output as i32,
443+
pid_i32.next_control_output(0i32).output,
444+
);
445+
446+
assert_eq!(
447+
pid_i32.next_control_output(0i32).output as i64,
448+
pid_i64.next_control_output(0i64).output
449+
);
450+
451+
assert_eq!(
452+
pid_i64.next_control_output(0i64).output as i128,
453+
pid_i128.next_control_output(0i128).output
454+
);
455+
}
456+
}
457+
458+
#[test]
459+
fn float_match_integers() {
460+
let mut pid_i32 = Pid::new(10i32, 100);
461+
pid_i32.p(0, 100).i(0, 100).d(0, 100);
462+
463+
let mut pid_f32 = Pid::new(10.0f32, 100.0);
464+
pid_f32.p(0.0, 100.0).i(0.0, 100.0).d(0.0, 100.0);
465+
426466
for _ in 0..5 {
427467
assert_eq!(
428-
pid_i32.next_control_output(0).output,
429-
pid_i8.next_control_output(0i8).output as i32
468+
pid_i32.next_control_output(0i32).output as f32,
469+
pid_f32.next_control_output(0f32).output
430470
);
431471
}
432472
}

0 commit comments

Comments
 (0)