tests.rs 1.4 KB

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