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)]
  7mod poulpy_core {
  8    use poulpy_hal::backend_test_suite;
  9
 10    #[cfg(any(target_arch = "x86_64", target_arch = "x86"))]
 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    #[cfg(not(any(target_arch = "x86_64", target_arch = "x86")))]
 74    backend_test_suite!(
 75    mod cpu_ref,
 76    backend = poulpy_cpu_ref::FFT64Ref,
 77    size = 1<<8,
 78    tests = {
 79        //GLWE Encryption
 80        glwe_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_sk,
 81        glwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_compressed_encrypt_sk,
 82        glwe_encrypt_zero_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_zero_sk,
 83        glwe_encrypt_pk => crate::tests::test_suite::encryption::test_glwe_encrypt_pk,
 84        // GLWE Base2k Conversion
 85        glwe_base2k_conv => crate::tests::test_suite::test_glwe_base2k_conversion,
 86        // GLWE Keyswitch
 87        glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
 88        glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
 89        // GLWE Automorphism
 90        glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
 91        glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
 92        // GLWE External Product
 93        glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
 94        glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
 95        // GLWE Trace
 96        glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
 97        glwe_packing => crate::tests::test_suite::test_glwe_packing,
 98        glwe_packer => crate::tests::test_suite::test_glwe_packer,
 99        // GGLWE Encryption
100        gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
101        gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
102        gglwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_compressed_encrypt_sk,
103        gglwe_automorphism_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_encrypt_sk,
104        gglwe_automorphism_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_compressed_encrypt_sk,
105        gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
106        gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
107        gglwe_to_ggsw_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_to_ggsw_key_encrypt_sk,
108        // GGLWE Keyswitching
109        gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
110        gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
111        // GGLWE External Product
112        gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
113        gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
114        // GGLWE Automorphism
115        gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
116        gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
117        // GGSW Encryption
118        ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
119        ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
120        // GGSW Keyswitching
121        ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
122        ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
123        // GGSW External Product
124        ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
125        ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
126        // GGSW Automorphism
127        ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
128        ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
129        // LWE
130        lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
131        glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
132        lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
133    }
134    );
135}