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#[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}