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,
 39// GGLWE Keyswitching
 40gglwe_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,
 42// GGLWE External Product
 43gglwe_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,
 45// GGLWE Automorphism
 46gglwe_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,
 48// GGSW Encryption
 49ggsw_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,
 51// GGSW Keyswitching
 52ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
 53ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
 54// GGSW External Product
 55ggsw_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,
 57// GGSW Automorphism
 58ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
 59ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
 60// LWE
 61lwe_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 Encryption
 73 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,
 77// GLWE Keyswitch
 78    glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
 79glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
 80// GLWE Automorphism
 81glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
 82glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
 83// GLWE External Product
 84glwe_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,
 86// GLWE Trace
 87glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
 88glwe_packing => crate::tests::test_suite::test_glwe_packing,
 89// GGLWE Encryption
 90gglwe_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,
 96// GGLWE Keyswitching
 97gglwe_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,
 99// GGLWE External Product
100gglwe_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,
102// GGLWE Automorphism
103gglwe_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,
105// GGSW Encryption
106ggsw_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,
108// GGSW Keyswitching
109ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
110ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
111// GGSW External Product
112ggsw_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,
114// GGSW Automorphism
115ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
116ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
117// LWE
118lwe_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 Encryption
132 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,
136// GLWE Keyswitch
137glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
138glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
139// GLWE Automorphism
140glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
141glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
142// GLWE External Product
143glwe_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,
145// GLWE Trace
146glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
147glwe_packing => crate::tests::test_suite::test_glwe_packing,
148// GGLWE Encryption
149gglwe_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,
155// GGLWE Keyswitching
156gglwe_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,
158// GGLWE External Product
159gglwe_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,
161// GGLWE Automorphism
162gglwe_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,
164// GGSW Encryption
165ggsw_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,
167// GGSW Keyswitching
168ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
169ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
170// GGSW External Product
171ggsw_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,
173// GGSW Automorphism
174ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
175ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
176// LWE
177lwe_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 );