use lox::dup_filter; use lox::BridgeDb; use curve25519_dalek::scalar::Scalar; #[test] fn test_openinvite() { let bdb = BridgeDb::new(20); let inv = bdb.invite(); println!("{:?}", inv); let res = BridgeDb::verify(inv, bdb.pubkey); println!("{:?}", res); } #[test] fn test_dup_filter() { let mut df1: dup_filter::DupFilter = Default::default(); let mut df2: dup_filter::DupFilter = Default::default(); let mut rng = rand::thread_rng(); let s1 = Scalar::random(&mut rng); let s2 = Scalar::random(&mut rng); let s3 = Scalar::random(&mut rng); let s4 = Scalar::random(&mut rng); let s5 = Scalar::random(&mut rng); // Check basic behaviour assert_eq!(df1.check(&s1), false); assert_eq!(df1.filter(&s1), Ok(())); assert_eq!(df1.check(&s1), true); assert_eq!(df1.filter(&s1), Err(())); // Ensure different instances of DupFilter have different tables assert_eq!(df2.check(&s1), false); assert_eq!(df2.filter(&s1), Ok(())); assert_eq!(df2.filter(&s1), Err(())); assert_eq!(df2.check(&s1), true); // Check multiple ids assert_eq!(df1.check(&s2), false); assert_eq!(df1.filter(&s3), Ok(())); assert_eq!(df1.filter(&s4), Ok(())); assert_eq!(df1.filter(&s3), Err(())); assert_eq!(df1.check(&s1), true); assert_eq!(df1.filter(&s1), Err(())); assert_eq!(df1.filter(&s5), Ok(())); println!("df1 = {:?}", df1); println!("df2 = {:?}", df2); }