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