poulpy/poulpy-core/src/tests/mod.rs
poulpy-core/src/tests/mod.rsRaw
1pub mod test_suite;
2
3#[cfg(test)]
4mod serialization;
5
6#[cfg(test)]
7mod poulpy_core {
8 use poulpy_hal::backend_test_suite;
9
10 #[cfg(any(target_arch = "x86_64", target_arch = "x86"))]
11 backend_test_suite!(
12 mod cpu_avx,
13 backend = poulpy_cpu_avx::FFT64Avx,
14 size = 1<<8,
15 tests = {
16 //GLWE Encryption
17 glwe_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_sk,
18 glwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_compressed_encrypt_sk,
19 glwe_encrypt_zero_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_zero_sk,
20 glwe_encrypt_pk => crate::tests::test_suite::encryption::test_glwe_encrypt_pk,
21 // GLWE Base2k Conversion
22 glwe_base2k_conv => crate::tests::test_suite::test_glwe_base2k_conversion,
23 // GLWE Keyswitch
24 glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
25 glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
26 // GLWE Automorphism
27 glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
28 glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
29 // GLWE External Product
30 glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
31 glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
32 // GLWE Trace
33 glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
34 glwe_packing => crate::tests::test_suite::test_glwe_packing,
35 glwe_packer => crate::tests::test_suite::test_glwe_packer,
36 // GGLWE Encryption
37 gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
38 gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
39 gglwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_compressed_encrypt_sk,
40 gglwe_automorphism_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_encrypt_sk,
41 gglwe_automorphism_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_compressed_encrypt_sk,
42 gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
43 gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
44 gglwe_to_ggsw_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_to_ggsw_key_encrypt_sk,
45 // GGLWE Keyswitching
46 gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
47 gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
48 // GGLWE External Product
49 gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
50 gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
51 // GGLWE Automorphism
52 gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
53 gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
54 // GGSW Encryption
55 ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
56 ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
57 // GGSW Keyswitching
58 ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
59 ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
60 // GGSW External Product
61 ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
62 ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
63 // GGSW Automorphism
64 ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
65 ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
66 // LWE
67 lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
68 glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
69 lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
70 }
71 );
72
73 #[cfg(not(any(target_arch = "x86_64", target_arch = "x86")))]
74 backend_test_suite!(
75 mod cpu_ref,
76 backend = poulpy_cpu_ref::FFT64Ref,
77 size = 1<<8,
78 tests = {
79 //GLWE Encryption
80 glwe_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_sk,
81 glwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_compressed_encrypt_sk,
82 glwe_encrypt_zero_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_zero_sk,
83 glwe_encrypt_pk => crate::tests::test_suite::encryption::test_glwe_encrypt_pk,
84 // GLWE Base2k Conversion
85 glwe_base2k_conv => crate::tests::test_suite::test_glwe_base2k_conversion,
86 // GLWE Keyswitch
87 glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
88 glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
89 // GLWE Automorphism
90 glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
91 glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
92 // GLWE External Product
93 glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
94 glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
95 // GLWE Trace
96 glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
97 glwe_packing => crate::tests::test_suite::test_glwe_packing,
98 glwe_packer => crate::tests::test_suite::test_glwe_packer,
99 // GGLWE Encryption
100 gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
101 gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
102 gglwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_compressed_encrypt_sk,
103 gglwe_automorphism_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_encrypt_sk,
104 gglwe_automorphism_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_compressed_encrypt_sk,
105 gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
106 gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
107 gglwe_to_ggsw_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_to_ggsw_key_encrypt_sk,
108 // GGLWE Keyswitching
109 gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
110 gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
111 // GGLWE External Product
112 gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
113 gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
114 // GGLWE Automorphism
115 gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
116 gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
117 // GGSW Encryption
118 ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
119 ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
120 // GGSW Keyswitching
121 ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
122 ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
123 // GGSW External Product
124 ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
125 ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
126 // GGSW Automorphism
127 ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
128 ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
129 // LWE
130 lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
131 glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
132 lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
133 }
134 );
135}