MCPcopy Create free account
hub / github.com/ciphermodelabs/ciphercore / test_prf

Function test_prf

ciphercore-base/src/evaluators/simple_evaluator.rs:1481–1527  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1479
1480 #[test]
1481 fn test_prf() {
1482 let helper = |iv: u64, t: Type| -> Result<()> {
1483 let c = simple_context(|g| {
1484 let i1 = g.random(array_type(vec![128], BIT))?;
1485 let i2 = g.random(array_type(vec![128], BIT))?;
1486 let p1 = g.prf(i1.clone(), iv, t.clone())?;
1487 let p2 = g.prf(i2, iv, t.clone())?;
1488 let p3 = g.prf(i1, iv, t.clone())?;
1489 g.create_vector(t.clone(), vec![p1, p2, p3])
1490 })?;
1491 let mut evaluator = SimpleEvaluator {
1492 prng: PRNG::new(None)?,
1493 prfs: HashMap::new(),
1494 };
1495 let v = evaluator.evaluate_context(c, Vec::new())?;
1496 let ot = vector_type(3, t.clone());
1497 assert_eq!(evaluator.prfs.len(), 2);
1498 assert!(v.check_type(ot)?);
1499 Ok(())
1500 };
1501 || -> Result<()> {
1502 helper(0, scalar_type(BIT))?;
1503 helper(1, scalar_type(UINT8))?;
1504 helper(2, scalar_type(INT32))?;
1505 helper(3, array_type(vec![2, 5], BIT))?;
1506 helper(4, array_type(vec![2, 5], UINT8))?;
1507 helper(5, array_type(vec![2, 5], INT32))?;
1508 helper(6, tuple_type(vec![scalar_type(BIT), scalar_type(INT32)]))?;
1509 helper(
1510 7,
1511 tuple_type(vec![
1512 vector_type(3, scalar_type(BIT)),
1513 vector_type(5, scalar_type(BIT)),
1514 scalar_type(BIT),
1515 scalar_type(INT32),
1516 ]),
1517 )?;
1518 helper(
1519 8,
1520 named_tuple_type(vec![
1521 ("field 1".to_owned(), scalar_type(BIT)),
1522 ("field 2".to_owned(), scalar_type(INT32)),
1523 ]),
1524 )
1525 }()
1526 .unwrap()
1527 }
1528
1529 fn cuckoo_helper(
1530 input_shape: ArrayShape,

Callers

nothing calls this directly

Calls 11

simple_contextFunction · 0.85
cloneMethod · 0.80
evaluate_contextMethod · 0.80
array_typeFunction · 0.50
vector_typeFunction · 0.50
scalar_typeFunction · 0.50
tuple_typeFunction · 0.50
named_tuple_typeFunction · 0.50
randomMethod · 0.45
prfMethod · 0.45
create_vectorMethod · 0.45

Tested by

no test coverage detected