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