tests.rs 1.6 KB

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