arnaucube
arnaucube/poulpyPublic Self-hosted repository
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
 21glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
 22glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
 23// GLWE Automorphism
 24glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
 25glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
 26// GLWE External Product
 27glwe_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,
 29// GLWE Trace
 30glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
 31glwe_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,
 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_to_ggsw_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_to_ggsw_key_encrypt_sk,
 40// GGLWE Keyswitching
 41gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
 42gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
 43// GGLWE External Product
 44gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
 45gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
 46// GGLWE Automorphism
 47gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
 48gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
 49// GGSW Encryption
 50ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
 51ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
 52// GGSW Keyswitching
 53ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
 54ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
 55// GGSW External Product
 56ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
 57ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
 58// GGSW Automorphism
 59ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
 60ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
 61// LWE
 62lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
 63glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
 64lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
 65}
 66);
 67#[cfg(test)]
 68backend_test_suite!(
 69 mod cpu_ref,
 70 backend = poulpy_backend::cpu_fft64_ref::FFT64Ref,
 71 size = 1<<8,
 72 tests = {
 73 //GLWE Encryption
 74 glwe_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_sk,
 75 glwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_compressed_encrypt_sk,
 76 glwe_encrypt_zero_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_zero_sk,
 77 glwe_encrypt_pk => crate::tests::test_suite::encryption::test_glwe_encrypt_pk,
 78// GLWE Keyswitch
 79glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
 80glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
 81// GLWE Automorphism
 82glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
 83glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
 84// GLWE External Product
 85glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
 86glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
 87// GLWE Trace
 88glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
 89glwe_packing => crate::tests::test_suite::test_glwe_packing,
 90// GGLWE Encryption
 91gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
 92gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
 93gglwe_automorphism_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_encrypt_sk,
 94gglwe_automorphism_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_compressed_encrypt_sk,
 95gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
 96gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
 97gglwe_to_ggsw_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_to_ggsw_key_encrypt_sk,
 98// GGLWE Keyswitching
 99gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
100gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
101// GGLWE External Product
102gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
103gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
104// GGLWE Automorphism
105gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
106gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
107// GGSW Encryption
108ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
109ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
110// GGSW Keyswitching
111ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
112ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
113// GGSW External Product
114ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
115ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
116// GGSW Automorphism
117ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
118ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
119// LWE
120lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
121glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
122lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
123}
124 );
125
126#[cfg(any(target_arch = "x86_64", target_arch = "x86"))]
127#[cfg(test)]
128backend_test_suite!(
129 mod cpu_avx,
130 backend = poulpy_backend::cpu_fft64_avx::FFT64Avx,
131 size = 1<<8,
132 tests = {
133 //GLWE Encryption
134 glwe_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_sk,
135 glwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_compressed_encrypt_sk,
136 glwe_encrypt_zero_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_zero_sk,
137 glwe_encrypt_pk => crate::tests::test_suite::encryption::test_glwe_encrypt_pk,
138// GLWE Keyswitch
139glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
140glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
141// GLWE Automorphism
142glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
143glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
144// GLWE External Product
145glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
146glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
147// GLWE Trace
148glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
149glwe_packing => crate::tests::test_suite::test_glwe_packing,
150// GGLWE Encryption
151gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
152gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
153gglwe_automorphism_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_encrypt_sk,
154gglwe_automorphism_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_compressed_encrypt_sk,
155gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
156gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
157// GGLWE Keyswitching
158gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
159gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
160// GGLWE External Product
161gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
162gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
163// GGLWE Automorphism
164gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
165gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
166// GGSW Encryption
167ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
168ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
169// GGSW Keyswitching
170ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
171ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
172// GGSW External Product
173ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
174ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
175// GGSW Automorphism
176ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
177ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
178// LWE
179lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
180glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
181lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
182}
183 );