poulpy_core/tests/
mod.rs

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