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#[allow(unused_imports)]
7use poulpy_hal::backend_test_suite;
8
9#[cfg(test)]
10backend_test_suite!(
11 mod cpu_spqlios,
12 backend = poulpy_backend::cpu_spqlios::FFT64Spqlios,
13 size = 1<<8,
14 tests = {
15 // GLWE Encryption
16 glwe_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_sk,
17 glwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_compressed_encrypt_sk,
18 glwe_encrypt_zero_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_zero_sk,
19 glwe_encrypt_pk => crate::tests::test_suite::encryption::test_glwe_encrypt_pk,
20 // GLWE Keyswitch
21 glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
22 glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
23 // GLWE Automorphism
24 glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
25 glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
26 // GLWE External Product
27 glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
28 glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
29 // GLWE Trace
30 glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
31 glwe_packing => crate::tests::test_suite::test_glwe_packing,
32 // GGLWE Encryption
33 gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
34 gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
35 gglwe_automorphisk_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphisk_key_encrypt_sk,
36 gglwe_automorphisk_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphisk_key_compressed_encrypt_sk,
37 gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
38 gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
39 // GGLWE Keyswitching
40 gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
41 gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
42 // GGLWE External Product
43 gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
44 gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
45 // GGLWE Automorphism
46 gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
47 gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
48 // GGSW Encryption
49 ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
50 ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
51 // GGSW Keyswitching
52 ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
53 ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
54 // GGSW External Product
55 ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
56 ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
57 // GGSW Automorphism
58 ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
59 ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
60 // LWE
61 lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
62 glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
63 lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
64 }
65);
66
67#[cfg(test)]
68backend_test_suite!(
69 mod cpu_ref,
70 backend = poulpy_backend::cpu_fft64_ref::FFT64Ref,
71 size = 1<<8,
72 tests = {
73 // GLWE Encryption
74 glwe_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_sk,
75 glwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_compressed_encrypt_sk,
76 glwe_encrypt_zero_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_zero_sk,
77 glwe_encrypt_pk => crate::tests::test_suite::encryption::test_glwe_encrypt_pk,
78 // GLWE Keyswitch
79 glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
80 glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
81 // GLWE Automorphism
82 glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
83 glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
84 // GLWE External Product
85 glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
86 glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
87 // GLWE Trace
88 glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
89 glwe_packing => crate::tests::test_suite::test_glwe_packing,
90 // GGLWE Encryption
91 gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
92 gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
93 gglwe_automorphisk_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphisk_key_encrypt_sk,
94 gglwe_automorphisk_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphisk_key_compressed_encrypt_sk,
95 gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
96 gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
97 // GGLWE Keyswitching
98 gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
99 gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
100 // GGLWE External Product
101 gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
102 gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
103 // GGLWE Automorphism
104 gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
105 gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
106 // GGSW Encryption
107 ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
108 ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
109 // GGSW Keyswitching
110 ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
111 ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
112 // GGSW External Product
113 ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
114 ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
115 // GGSW Automorphism
116 ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
117 ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
118 // LWE
119 lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
120 glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
121 lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
122 }
123);
124
125#[cfg(test)]
126backend_test_suite!(
127 mod cpu_avx,
128 backend = poulpy_backend::cpu_fft64_avx::FFT64Avx,
129 size = 1<<8,
130 tests = {
131 // GLWE Encryption
132 glwe_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_sk,
133 glwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_compressed_encrypt_sk,
134 glwe_encrypt_zero_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_zero_sk,
135 glwe_encrypt_pk => crate::tests::test_suite::encryption::test_glwe_encrypt_pk,
136 // GLWE Keyswitch
137 glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
138 glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
139 // GLWE Automorphism
140 glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
141 glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
142 // GLWE External Product
143 glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
144 glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
145 // GLWE Trace
146 glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
147 glwe_packing => crate::tests::test_suite::test_glwe_packing,
148 // GGLWE Encryption
149 gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
150 gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
151 gglwe_automorphisk_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphisk_key_encrypt_sk,
152 gglwe_automorphisk_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphisk_key_compressed_encrypt_sk,
153 gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
154 gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
155 // GGLWE Keyswitching
156 gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
157 gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
158 // GGLWE External Product
159 gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
160 gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
161 // GGLWE Automorphism
162 gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
163 gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
164 // GGSW Encryption
165 ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
166 ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
167 // GGSW Keyswitching
168 ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
169 ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
170 // GGSW External Product
171 ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
172 ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
173 // GGSW Automorphism
174 ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
175 ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
176 // LWE
177 lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
178 glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
179 lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
180 }
181);