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
33gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
34gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
35gglwe_automorphism_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_encrypt_sk,
36gglwe_automorphism_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_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// #[cfg(test)]
67// backend_test_suite!(
68// mod cpu_ref,
69// backend = poulpy_backend::cpu_fft64_ref::FFT64Ref,
70// size = 1<<8,
71// tests = {
72// GLWE Encryption
73// glwe_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_sk,
74// glwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_compressed_encrypt_sk,
75// glwe_encrypt_zero_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_zero_sk,
76// glwe_encrypt_pk => crate::tests::test_suite::encryption::test_glwe_encrypt_pk,
77// GLWE Keyswitch
78// glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
79// glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
80// GLWE Automorphism
81// glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
82// glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
83// GLWE External Product
84// glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
85// glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
86// GLWE Trace
87// glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
88// glwe_packing => crate::tests::test_suite::test_glwe_packing,
89// GGLWE Encryption
90// gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
91// gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
92// gglwe_automorphisk_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphisk_key_encrypt_sk,
93// gglwe_automorphisk_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphisk_key_compressed_encrypt_sk,
94// gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
95// gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
96// GGLWE Keyswitching
97// gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
98// gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
99// GGLWE External Product
100// gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
101// gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
102// GGLWE Automorphism
103// gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
104// gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
105// GGSW Encryption
106// ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
107// ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
108// GGSW Keyswitching
109// ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
110// ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
111// GGSW External Product
112// ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
113// ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
114// GGSW Automorphism
115// ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
116// ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
117// LWE
118// lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
119// glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
120// lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
121// }
122// );
123//
124// #[cfg(any(target_arch = "x86_64", target_arch = "x86"))]
125// #[cfg(test)]
126// backend_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// );