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(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
137        glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
138        glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
139        // GLWE Automorphism
140        glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
141        glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
142        // GLWE External Product
143        glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
144        glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
145        // GLWE Trace
146        glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
147        glwe_packing => crate::tests::test_suite::test_glwe_packing,
148        // GGLWE Encryption
149        gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
150        gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
151        gglwe_automorphisk_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphisk_key_encrypt_sk,
152        gglwe_automorphisk_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphisk_key_compressed_encrypt_sk,
153        gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
154        gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
155        // GGLWE Keyswitching
156        gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
157        gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
158        // GGLWE External Product
159        gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
160        gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
161        // GGLWE Automorphism
162        gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
163        gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
164        // GGSW Encryption
165        ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
166        ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
167        // GGSW Keyswitching
168        ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
169        ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
170        // GGSW External Product
171        ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
172        ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
173        // GGSW Automorphism
174        ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
175        ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
176        // LWE
177        lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
178        glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
179        lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
180    }
181);