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