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 Tensoring
 24        test_glwe_tensoring => crate::tests::test_suite::glwe_tensor::test_glwe_tensoring,
 25        test_glwe_mul_plain => crate::tests::test_suite::glwe_tensor::test_glwe_mul_plain,
 26        test_glwe_mul_const => crate::tests::test_suite::glwe_tensor::test_glwe_mul_const,
 27        // GLWE Keyswitch
 28        glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
 29        glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
 30        // GLWE Automorphism
 31        glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
 32        glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
 33        // GLWE External Product
 34        glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
 35        glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
 36        // GLWE Trace
 37        glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
 38        glwe_packing => crate::tests::test_suite::test_glwe_packing,
 39        glwe_packer => crate::tests::test_suite::test_glwe_packer,
 40        // GGLWE Encryption
 41        gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
 42        gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
 43        gglwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_compressed_encrypt_sk,
 44        gglwe_automorphism_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_encrypt_sk,
 45        gglwe_automorphism_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_compressed_encrypt_sk,
 46        gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
 47        gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
 48        gglwe_to_ggsw_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_to_ggsw_key_encrypt_sk,
 49        // GGLWE Keyswitching
 50        gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
 51        gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
 52        // GGLWE External Product
 53        gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
 54        gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
 55        // GGLWE Automorphism
 56        gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
 57        gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
 58        // GGSW Encryption
 59        ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
 60        ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
 61        // GGSW Keyswitching
 62        ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
 63        ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
 64        // GGSW External Product
 65        ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
 66        ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
 67        // GGSW Automorphism
 68        ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
 69        ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
 70        // LWE
 71        lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
 72        glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
 73        lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
 74    }
 75    );
 76}
 77
 78#[cfg(test)]
 79#[cfg(not(all(feature = "enable-avx", target_arch = "x86_64")))]
 80mod poulpy_core {
 81    use poulpy_hal::backend_test_suite;
 82
 83    backend_test_suite!(
 84    mod cpu_ref,
 85    backend = poulpy_cpu_ref::FFT64Ref,
 86    size = 1<<8,
 87    tests = {
 88        //GLWE Encryption
 89        glwe_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_sk,
 90        glwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_glwe_compressed_encrypt_sk,
 91        glwe_encrypt_zero_sk => crate::tests::test_suite::encryption::test_glwe_encrypt_zero_sk,
 92        glwe_encrypt_pk => crate::tests::test_suite::encryption::test_glwe_encrypt_pk,
 93        // GLWE Base2k Conversion
 94        glwe_base2k_conv => crate::tests::test_suite::test_glwe_base2k_conversion,
 95        // GLWE Tensoring
 96        test_glwe_tensoring => crate::tests::test_suite::glwe_tensor::test_glwe_tensoring,
 97        test_glwe_mul_plain => crate::tests::test_suite::glwe_tensor::test_glwe_mul_plain,
 98        test_glwe_mul_const => crate::tests::test_suite::glwe_tensor::test_glwe_mul_const,
 99        // GLWE Keyswitch
100        glwe_keyswitch => crate::tests::test_suite::keyswitch::test_glwe_keyswitch,
101        glwe_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_glwe_keyswitch_inplace,
102        // GLWE Automorphism
103        glwe_automorphism => crate::tests::test_suite::automorphism::test_glwe_automorphism,
104        glwe_automorphism_inplace => crate::tests::test_suite::automorphism::test_glwe_automorphism_inplace,
105        // GLWE External Product
106        glwe_external_product => crate::tests::test_suite::external_product::test_glwe_external_product,
107        glwe_external_product_inplace => crate::tests::test_suite::external_product::test_glwe_external_product_inplace,
108        // GLWE Trace
109        glwe_trace_inplace => crate::tests::test_suite::test_glwe_trace_inplace,
110        glwe_packing => crate::tests::test_suite::test_glwe_packing,
111        glwe_packer => crate::tests::test_suite::test_glwe_packer,
112        // GGLWE Encryption
113        gglwe_switching_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_encrypt_sk,
114        gglwe_switching_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_switching_key_compressed_encrypt_sk,
115        gglwe_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_compressed_encrypt_sk,
116        gglwe_automorphism_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_encrypt_sk,
117        gglwe_automorphism_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_automorphism_key_compressed_encrypt_sk,
118        gglwe_tensor_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_encrypt_sk,
119        gglwe_tensor_key_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_tensor_key_compressed_encrypt_sk,
120        gglwe_to_ggsw_key_encrypt_sk => crate::tests::test_suite::encryption::test_gglwe_to_ggsw_key_encrypt_sk,
121        // GGLWE Keyswitching
122        gglwe_switching_key_keyswitch => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch,
123        gglwe_switching_key_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_gglwe_switching_key_keyswitch_inplace,
124        // GGLWE External Product
125        gglwe_switching_key_external_product => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product,
126        gglwe_switching_key_external_product_inplace => crate::tests::test_suite::external_product::test_gglwe_switching_key_external_product_inplace,
127        // GGLWE Automorphism
128        gglwe_automorphism_key_automorphism => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism,
129        gglwe_automorphism_key_automorphism_inplace => crate::tests::test_suite::automorphism::test_gglwe_automorphism_key_automorphism_inplace,
130        // GGSW Encryption
131        ggsw_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_encrypt_sk,
132        ggsw_compressed_encrypt_sk => crate::tests::test_suite::encryption::test_ggsw_compressed_encrypt_sk,
133        // GGSW Keyswitching
134        ggsw_keyswitch => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch,
135        ggsw_keyswitch_inplace => crate::tests::test_suite::keyswitch::test_ggsw_keyswitch_inplace,
136        // GGSW External Product
137        ggsw_external_product => crate::tests::test_suite::external_product::test_ggsw_external_product,
138        ggsw_external_product_inplace => crate::tests::test_suite::external_product::test_ggsw_external_product_inplace,
139        // GGSW Automorphism
140        ggsw_automorphism => crate::tests::test_suite::automorphism::test_ggsw_automorphism,
141        ggsw_automorphism_inplace => crate::tests::test_suite::automorphism::test_ggsw_automorphism_inplace,
142        // LWE
143        lwe_keyswitch => crate::tests::test_suite::keyswitch::test_lwe_keyswitch,
144        glwe_to_lwe => crate::tests::test_suite::test_glwe_to_lwe,
145        lwe_to_glwe => crate::tests::test_suite::test_lwe_to_glwe,
146    }
147    );
148}