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_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,
20glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
22glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
23glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
25glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
26glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
28glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
29glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
31glwe_packing => crate::tests::test_suite::test_glwe_packing,
32gglwe_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,
37gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
38gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
39gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
41gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
42gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
44gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
45gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
47gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
48ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
50ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
51ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
53ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
54ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
56ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
57ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
59ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
60lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
62glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
63lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
64}
65);
66#[cfg(test)]
67backend_test_suite!(
68 mod cpu_ref,
69 backend = poulpy_backend::cpu_fft64_ref::FFT64Ref,
70 size = 1<<8,
71 tests = {
72 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,
77glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
79glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
80glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
82glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
83glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
85glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
86glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
88glwe_packing => crate::tests::test_suite::test_glwe_packing,
89gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
91gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
92gglwe_automorphism_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_encrypt_sk,
93gglwe_automorphism_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_compressed_encrypt_sk,
94gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
95gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
96gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
98gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
99gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
101gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
102gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
104gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
105ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
107ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
108ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
110ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
111ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
113ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
114ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
116ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
117lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
119glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
120lwe_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)]
126backend_test_suite!(
127 mod cpu_avx,
128 backend = poulpy_backend::cpu_fft64_avx::FFT64Avx,
129 size = 1<<8,
130 tests = {
131 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,
136glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
138glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
139glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
141glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
142glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
144glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
145glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
147glwe_packing => crate::tests::test_suite::test_glwe_packing,
148gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
150gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
151gglwe_automorphism_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_encrypt_sk,
152gglwe_automorphism_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_compressed_encrypt_sk,
153gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
154gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
155gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
157gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
158gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
160gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
161gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
163gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
164ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
166ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
167ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
169ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
170ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
172ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
173ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
175ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
176lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
178glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
179lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
180}
181 );