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_ref,
12 backend = poulpy_backend::cpu_fft64_ref::FFT64Ref,
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 Base2k Conversion
21glwe_base2k_conv => crate::tests::test_suite::test_glwe_base2k_conversion,
22// GLWE Keyswitch
23glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
24glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
25// GLWE Automorphism
26glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
27glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
28// GLWE External Product
29glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
30glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
31// GLWE Trace
32glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
33glwe_packing => crate::tests::test_suite::test_glwe_packing,
34glwe_packer => crate::tests::test_suite::test_glwe_packer,
35// GGLWE Encryption
36gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
37gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
38gglwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_compressed_encrypt_sk,
39gglwe_automorphism_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_encrypt_sk,
40gglwe_automorphism_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_compressed_encrypt_sk,
41gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
42gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
43gglwe_to_ggsw_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_to_ggsw_key_encrypt_sk,
44// GGLWE Keyswitching
45gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
46gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
47// GGLWE External Product
48gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
49gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
50// GGLWE Automorphism
51gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
52gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
53// GGSW Encryption
54ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
55ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
56// GGSW Keyswitching
57ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
58ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
59// GGSW External Product
60ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
61ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
62// GGSW Automorphism
63ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
64ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
65// LWE
66lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
67glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
68lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
69}
70 );
71
72#[cfg(any(target_arch = "x86_64", target_arch = "x86"))]
73#[cfg(test)]
74backend_test_suite!(
75 mod cpu_avx,
76 backend = poulpy_backend::cpu_fft64_avx::FFT64Avx,
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
85glwe_base2k_conv => crate::tests::test_suite::test_glwe_base2k_conversion,
86// GLWE Keyswitch
87glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
88glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
89// GLWE Automorphism
90glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
91glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
92// GLWE External Product
93glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
94glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
95// GLWE Trace
96glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
97glwe_packing => crate::tests::test_suite::test_glwe_packing,
98glwe_packer => crate::tests::test_suite::test_glwe_packer,
99// GGLWE Encryption
100gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
101gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
102gglwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_compressed_encrypt_sk,
103gglwe_automorphism_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_encrypt_sk,
104gglwe_automorphism_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_compressed_encrypt_sk,
105gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
106gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
107// GGLWE Keyswitching
108gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
109gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
110// GGLWE External Product
111gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
112gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
113// GGLWE Automorphism
114gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
115gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
116// GGSW Encryption
117ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
118ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
119// GGSW Keyswitching
120ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
121ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
122// GGSW External Product
123ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
124ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
125// GGSW Automorphism
126ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
127ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
128// LWE
129lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
130glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
131lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
132}
133 );