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

Function test_stack

ciphercore-base/src/mpc/mpc_equivalence_class.rs:770–819  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

768
769 #[test]
770 fn test_stack() {
771 || -> Result<()> {
772 let c = create_unchecked_context()?;
773 let g = c.create_graph()?;
774 let t = array_type(vec![10], BIT);
775 let shared_tuple = g.input(tuple_type(vec![t.clone(), t.clone(), t.clone()]))?;
776 let public_array = g.input(t.clone())?;
777 let private_array = g.input(t.clone())?;
778
779 g.stack(vec![public_array.clone(), private_array.clone()], vec![2])?
780 .set_name("stack1")?;
781 g.stack(vec![public_array.clone(), public_array.clone()], vec![2])?
782 .set_name("stack2")?;
783 g.stack(
784 vec![shared_tuple.tuple_get(0)?, shared_tuple.tuple_get(1)?],
785 vec![2],
786 )?
787 .set_name("stack3")?;
788 g.stack(
789 vec![shared_tuple.tuple_get(0)?, shared_tuple.tuple_get(0)?],
790 vec![2],
791 )?
792 .set_name("stack4")?;
793
794 let result_classes = generate_equivalence_class(
795 c.clone(),
796 vec![vec![IOStatus::Shared, IOStatus::Public, IOStatus::Party(1)]],
797 )?;
798
799 assert_eq!(
800 get_class_from_name(&g, &result_classes, "stack1")?,
801 private_class()
802 );
803 assert_eq!(
804 get_class_from_name(&g, &result_classes, "stack2")?,
805 public_class()
806 );
807 assert_eq!(
808 get_class_from_name(&g, &result_classes, "stack3")?,
809 private_class()
810 );
811 assert_eq!(
812 get_class_from_name(&g, &result_classes, "stack4")?,
813 share0_class()
814 );
815
816 Ok(())
817 }()
818 .unwrap();
819 }
820
821 #[test]
822 fn test_vector_to_array() {

Callers

nothing calls this directly

Calls 9

create_unchecked_contextFunction · 0.85
cloneMethod · 0.80
array_typeFunction · 0.50
tuple_typeFunction · 0.50
create_graphMethod · 0.45
inputMethod · 0.45
set_nameMethod · 0.45
stackMethod · 0.45

Tested by

no test coverage detected