tests.rs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. use lox::dup_filter;
  2. use lox::dup_filter::SeenType::{Fresh, Seen};
  3. use lox::BridgeDb;
  4. use curve25519_dalek::scalar::Scalar;
  5. #[test]
  6. fn test_bridgedb() {
  7. let bdb = BridgeDb::new(20);
  8. let inv = bdb.invite();
  9. println!("{:?}", inv);
  10. let res = BridgeDb::verify(inv, bdb.pubkey);
  11. println!("{:?}", res);
  12. }
  13. #[test]
  14. fn test_dup_filter() {
  15. let mut df1: dup_filter::DupFilter<Scalar> = Default::default();
  16. let mut df2: dup_filter::DupFilter<Scalar> = Default::default();
  17. let mut rng = rand::thread_rng();
  18. let s1 = Scalar::random(&mut rng);
  19. let s2 = Scalar::random(&mut rng);
  20. let s3 = Scalar::random(&mut rng);
  21. let s4 = Scalar::random(&mut rng);
  22. let s5 = Scalar::random(&mut rng);
  23. // Check basic behaviour
  24. assert_eq!(df1.check(&s1), Fresh);
  25. assert_eq!(df1.filter(&s1), Fresh);
  26. assert_eq!(df1.check(&s1), Seen);
  27. assert_eq!(df1.filter(&s1), Seen);
  28. // Ensure different instances of DupFilter have different tables
  29. assert_eq!(df2.check(&s1), Fresh);
  30. assert_eq!(df2.filter(&s1), Fresh);
  31. assert_eq!(df2.filter(&s1), Seen);
  32. assert_eq!(df2.check(&s1), Seen);
  33. // Check multiple ids
  34. assert_eq!(df1.check(&s2), Fresh);
  35. assert_eq!(df1.filter(&s3), Fresh);
  36. assert_eq!(df1.filter(&s4), Fresh);
  37. assert_eq!(df1.filter(&s3), Seen);
  38. assert_eq!(df1.check(&s1), Seen);
  39. assert_eq!(df1.filter(&s1), Seen);
  40. assert_eq!(df1.filter(&s5), Fresh);
  41. println!("df1 = {:?}", df1);
  42. println!("df2 = {:?}", df2);
  43. }