Now with tests for the basic algorithms.

This commit is contained in:
2018-09-28 17:48:35 -05:00
parent 3b68363b49
commit 304d009a67
95 changed files with 271012 additions and 270361 deletions

View File

@@ -1229,57 +1229,470 @@ conversion_impls!(U32896, U61568);
mod tests {
mod base {
use super::super::*;
use testing::run_test;
generate_base_tests!(U192);
generate_base_tests!(U256);
generate_base_tests!(U320);
generate_base_tests!(U384);
generate_base_tests!(U448);
generate_base_tests!(U512);
generate_base_tests!(U576);
generate_base_tests!(U640);
generate_base_tests!(U704);
generate_base_tests!(U768);
generate_base_tests!(U832);
generate_base_tests!(U896);
generate_base_tests!(U1024);
generate_base_tests!(U1088);
generate_base_tests!(U1152);
generate_base_tests!(U1216);
generate_base_tests!(U1280);
generate_base_tests!(U1664);
generate_base_tests!(U2048);
generate_base_tests!(U2112);
generate_base_tests!(U2176);
generate_base_tests!(U2432);
generate_base_tests!(U3072);
generate_base_tests!(U3136);
generate_base_tests!(U3200);
generate_base_tests!(U4096);
generate_base_tests!(U4160);
generate_base_tests!(U4224);
generate_base_tests!(U6144);
generate_base_tests!(U6208);
generate_base_tests!(U6272);
generate_base_tests!(U7680);
generate_base_tests!(U7744);
generate_base_tests!(U7808);
generate_base_tests!(U8192);
generate_base_tests!(U8256);
generate_base_tests!(U8320);
generate_base_tests!(U12416);
generate_base_tests!(U15360);
generate_base_tests!(U15424);
generate_base_tests!(U15488);
generate_base_tests!(U16384);
generate_base_tests!(U16448);
generate_base_tests!(U16512);
generate_base_tests!(U30720);
generate_base_tests!(U30784);
generate_base_tests!(U30848);
generate_base_tests!(U32896);
generate_base_tests!(U61568);
generate_base_tests!(U192, u192);
generate_base_tests!(U256, u256);
generate_base_tests!(U320, u320);
generate_base_tests!(U384, u384);
generate_base_tests!(U448, u448);
generate_base_tests!(U512, u512);
generate_base_tests!(U576, u576);
generate_base_tests!(U640, u640);
generate_base_tests!(U704, u704);
generate_base_tests!(U768, u768);
generate_base_tests!(U832, u832);
generate_base_tests!(U896, u896);
generate_base_tests!(U1024, u1024);
generate_base_tests!(U1088, u1088);
generate_base_tests!(U1152, u1152);
generate_base_tests!(U1216, u1216);
generate_base_tests!(U1280, u1280);
generate_base_tests!(U1664, u1664);
generate_base_tests!(U2048, u2048);
generate_base_tests!(U2112, u2112);
generate_base_tests!(U2176, u2176);
generate_base_tests!(U2432, u2432);
generate_base_tests!(U3072, u3072);
generate_base_tests!(U3136, u3136);
generate_base_tests!(U3200, u3200);
generate_base_tests!(U4096, u4096);
generate_base_tests!(U4160, u4160);
generate_base_tests!(U4224, u4224);
generate_base_tests!(U6144, u6144);
generate_base_tests!(U6208, u6208);
generate_base_tests!(U6272, u6272);
generate_base_tests!(U7680, u7680);
generate_base_tests!(U7744, u7744);
generate_base_tests!(U7808, u7808);
generate_base_tests!(U8192, u8192);
generate_base_tests!(U8256, u8256);
generate_base_tests!(U8320, u8320);
generate_base_tests!(U12416, u12416);
generate_base_tests!(U15360, u15360);
generate_base_tests!(U15424, u15424);
generate_base_tests!(U15488, u15488);
generate_base_tests!(U16384, u16384);
generate_base_tests!(U16448, u16448);
generate_base_tests!(U16512, u16512);
generate_base_tests!(U30720, u30720);
generate_base_tests!(U30784, u30784);
generate_base_tests!(U30848, u30848);
generate_base_tests!(U32896, u32896);
generate_base_tests!(U61568, u61568);
}
mod conversion {
generate_conversion_tests!(U192, u192);
generate_conversion_tests!(U256, u256);
generate_conversion_tests!(U320, u320);
generate_conversion_tests!(U384, u384);
generate_conversion_tests!(U448, u448);
generate_conversion_tests!(U512, u512);
generate_conversion_tests!(U576, u576);
generate_conversion_tests!(U640, u640);
generate_conversion_tests!(U704, u704);
generate_conversion_tests!(U768, u768);
generate_conversion_tests!(U832, u832);
generate_conversion_tests!(U896, u896);
generate_conversion_tests!(U1024, u1024);
generate_conversion_tests!(U1088, u1088);
generate_conversion_tests!(U1152, u1152);
generate_conversion_tests!(U1216, u1216);
generate_conversion_tests!(U1280, u1280);
generate_conversion_tests!(U1664, u1664);
generate_conversion_tests!(U2048, u2048);
generate_conversion_tests!(U2112, u2112);
generate_conversion_tests!(U2176, u2176);
generate_conversion_tests!(U2432, u2432);
generate_conversion_tests!(U3072, u3072);
generate_conversion_tests!(U3136, u3136);
generate_conversion_tests!(U3200, u3200);
generate_conversion_tests!(U4096, u4096);
generate_conversion_tests!(U4160, u4160);
generate_conversion_tests!(U4224, u4224);
generate_conversion_tests!(U6144, u6144);
generate_conversion_tests!(U6208, u6208);
generate_conversion_tests!(U6272, u6272);
generate_conversion_tests!(U7680, u7680);
generate_conversion_tests!(U7744, u7744);
generate_conversion_tests!(U7808, u7808);
generate_conversion_tests!(U8192, u8192);
generate_conversion_tests!(U8256, u8256);
generate_conversion_tests!(U8320, u8320);
generate_conversion_tests!(U12416, u12416);
generate_conversion_tests!(U15360, u15360);
generate_conversion_tests!(U15424, u15424);
generate_conversion_tests!(U15488, u15488);
generate_conversion_tests!(U16384, u16384);
generate_conversion_tests!(U16448, u16448);
generate_conversion_tests!(U16512, u16512);
generate_conversion_tests!(U30720, u30720);
generate_conversion_tests!(U30784, u30784);
generate_conversion_tests!(U30848, u30848);
generate_conversion_tests!(U32896, u32896);
generate_conversion_tests!(U61568, u61568);
}
mod codec {
generate_codec_tests!(U192, u192);
generate_codec_tests!(U256, u256);
generate_codec_tests!(U320, u320);
generate_codec_tests!(U384, u384);
generate_codec_tests!(U448, u448);
generate_codec_tests!(U512, u512);
generate_codec_tests!(U576, u576);
generate_codec_tests!(U640, u640);
generate_codec_tests!(U704, u704);
generate_codec_tests!(U768, u768);
generate_codec_tests!(U832, u832);
generate_codec_tests!(U896, u896);
generate_codec_tests!(U1024, u1024);
generate_codec_tests!(U1088, u1088);
generate_codec_tests!(U1152, u1152);
generate_codec_tests!(U1216, u1216);
generate_codec_tests!(U1280, u1280);
generate_codec_tests!(U1664, u1664);
generate_codec_tests!(U2048, u2048);
generate_codec_tests!(U2112, u2112);
generate_codec_tests!(U2176, u2176);
generate_codec_tests!(U2432, u2432);
generate_codec_tests!(U3072, u3072);
generate_codec_tests!(U3136, u3136);
generate_codec_tests!(U3200, u3200);
generate_codec_tests!(U4096, u4096);
generate_codec_tests!(U4160, u4160);
generate_codec_tests!(U4224, u4224);
generate_codec_tests!(U6144, u6144);
generate_codec_tests!(U6208, u6208);
generate_codec_tests!(U6272, u6272);
generate_codec_tests!(U7680, u7680);
generate_codec_tests!(U7744, u7744);
generate_codec_tests!(U7808, u7808);
generate_codec_tests!(U8192, u8192);
generate_codec_tests!(U8256, u8256);
generate_codec_tests!(U8320, u8320);
generate_codec_tests!(U12416, u12416);
generate_codec_tests!(U15360, u15360);
generate_codec_tests!(U15424, u15424);
generate_codec_tests!(U15488, u15488);
generate_codec_tests!(U16384, u16384);
generate_codec_tests!(U16448, u16448);
generate_codec_tests!(U16512, u16512);
generate_codec_tests!(U30720, u30720);
generate_codec_tests!(U30784, u30784);
generate_codec_tests!(U30848, u30848);
generate_codec_tests!(U32896, u32896);
generate_codec_tests!(U61568, u61568);
}
mod cmp {
use super::super::*;
use testing::run_test;
generate_cmp_tests!(U192, u192);
generate_cmp_tests!(U256, u256);
generate_cmp_tests!(U320, u320);
generate_cmp_tests!(U384, u384);
generate_cmp_tests!(U448, u448);
generate_cmp_tests!(U512, u512);
generate_cmp_tests!(U576, u576);
generate_cmp_tests!(U640, u640);
generate_cmp_tests!(U704, u704);
generate_cmp_tests!(U768, u768);
generate_cmp_tests!(U832, u832);
generate_cmp_tests!(U896, u896);
generate_cmp_tests!(U1024, u1024);
generate_cmp_tests!(U1088, u1088);
generate_cmp_tests!(U1152, u1152);
generate_cmp_tests!(U1216, u1216);
generate_cmp_tests!(U1280, u1280);
generate_cmp_tests!(U1664, u1664);
generate_cmp_tests!(U2048, u2048);
generate_cmp_tests!(U2112, u2112);
generate_cmp_tests!(U2176, u2176);
generate_cmp_tests!(U2432, u2432);
generate_cmp_tests!(U3072, u3072);
generate_cmp_tests!(U3136, u3136);
generate_cmp_tests!(U3200, u3200);
generate_cmp_tests!(U4096, u4096);
generate_cmp_tests!(U4160, u4160);
generate_cmp_tests!(U4224, u4224);
generate_cmp_tests!(U6144, u6144);
generate_cmp_tests!(U6208, u6208);
generate_cmp_tests!(U6272, u6272);
generate_cmp_tests!(U7680, u7680);
generate_cmp_tests!(U7744, u7744);
generate_cmp_tests!(U7808, u7808);
generate_cmp_tests!(U8192, u8192);
generate_cmp_tests!(U8256, u8256);
generate_cmp_tests!(U8320, u8320);
generate_cmp_tests!(U12416, u12416);
generate_cmp_tests!(U15360, u15360);
generate_cmp_tests!(U15424, u15424);
generate_cmp_tests!(U15488, u15488);
generate_cmp_tests!(U16384, u16384);
generate_cmp_tests!(U16448, u16448);
generate_cmp_tests!(U16512, u16512);
generate_cmp_tests!(U30720, u30720);
generate_cmp_tests!(U30784, u30784);
generate_cmp_tests!(U30848, u30848);
generate_cmp_tests!(U32896, u32896);
generate_cmp_tests!(U61568, u61568);
}
mod sub {
use super::super::*;
use testing::run_test;
generate_sub_tests!(U192, u192);
generate_sub_tests!(U256, u256);
generate_sub_tests!(U320, u320);
generate_sub_tests!(U384, u384);
generate_sub_tests!(U448, u448);
generate_sub_tests!(U512, u512);
generate_sub_tests!(U576, u576);
generate_sub_tests!(U640, u640);
generate_sub_tests!(U704, u704);
generate_sub_tests!(U768, u768);
generate_sub_tests!(U832, u832);
generate_sub_tests!(U896, u896);
generate_sub_tests!(U1024, u1024);
generate_sub_tests!(U1088, u1088);
generate_sub_tests!(U1152, u1152);
generate_sub_tests!(U1216, u1216);
generate_sub_tests!(U1280, u1280);
generate_sub_tests!(U1664, u1664);
generate_sub_tests!(U2048, u2048);
generate_sub_tests!(U2112, u2112);
generate_sub_tests!(U2176, u2176);
generate_sub_tests!(U2432, u2432);
generate_sub_tests!(U3072, u3072);
generate_sub_tests!(U3136, u3136);
generate_sub_tests!(U3200, u3200);
generate_sub_tests!(U4096, u4096);
generate_sub_tests!(U4160, u4160);
generate_sub_tests!(U4224, u4224);
generate_sub_tests!(U6144, u6144);
generate_sub_tests!(U6208, u6208);
generate_sub_tests!(U6272, u6272);
generate_sub_tests!(U7680, u7680);
generate_sub_tests!(U7744, u7744);
generate_sub_tests!(U7808, u7808);
generate_sub_tests!(U8192, u8192);
generate_sub_tests!(U8256, u8256);
generate_sub_tests!(U8320, u8320);
generate_sub_tests!(U12416, u12416);
generate_sub_tests!(U15360, u15360);
generate_sub_tests!(U15424, u15424);
generate_sub_tests!(U15488, u15488);
generate_sub_tests!(U16384, u16384);
generate_sub_tests!(U16448, u16448);
generate_sub_tests!(U16512, u16512);
generate_sub_tests!(U30720, u30720);
generate_sub_tests!(U30784, u30784);
generate_sub_tests!(U30848, u30848);
generate_sub_tests!(U32896, u32896);
generate_sub_tests!(U61568, u61568);
}
mod shiftl {
use super::super::*;
use testing::run_test;
generate_shiftl_tests!(U192, u192);
generate_shiftl_tests!(U256, u256);
generate_shiftl_tests!(U320, u320);
generate_shiftl_tests!(U384, u384);
generate_shiftl_tests!(U448, u448);
generate_shiftl_tests!(U512, u512);
generate_shiftl_tests!(U576, u576);
generate_shiftl_tests!(U640, u640);
generate_shiftl_tests!(U704, u704);
generate_shiftl_tests!(U768, u768);
generate_shiftl_tests!(U832, u832);
generate_shiftl_tests!(U896, u896);
generate_shiftl_tests!(U1024, u1024);
generate_shiftl_tests!(U1088, u1088);
generate_shiftl_tests!(U1152, u1152);
generate_shiftl_tests!(U1216, u1216);
generate_shiftl_tests!(U1280, u1280);
generate_shiftl_tests!(U1664, u1664);
generate_shiftl_tests!(U2048, u2048);
generate_shiftl_tests!(U2112, u2112);
generate_shiftl_tests!(U2176, u2176);
generate_shiftl_tests!(U2432, u2432);
generate_shiftl_tests!(U3072, u3072);
generate_shiftl_tests!(U3136, u3136);
generate_shiftl_tests!(U3200, u3200);
generate_shiftl_tests!(U4096, u4096);
generate_shiftl_tests!(U4160, u4160);
generate_shiftl_tests!(U4224, u4224);
generate_shiftl_tests!(U6144, u6144);
generate_shiftl_tests!(U6208, u6208);
generate_shiftl_tests!(U6272, u6272);
generate_shiftl_tests!(U7680, u7680);
generate_shiftl_tests!(U7744, u7744);
generate_shiftl_tests!(U7808, u7808);
generate_shiftl_tests!(U8192, u8192);
generate_shiftl_tests!(U8256, u8256);
generate_shiftl_tests!(U8320, u8320);
generate_shiftl_tests!(U12416, u12416);
generate_shiftl_tests!(U15360, u15360);
generate_shiftl_tests!(U15424, u15424);
generate_shiftl_tests!(U15488, u15488);
generate_shiftl_tests!(U16384, u16384);
generate_shiftl_tests!(U16448, u16448);
generate_shiftl_tests!(U16512, u16512);
generate_shiftl_tests!(U30720, u30720);
generate_shiftl_tests!(U30784, u30784);
generate_shiftl_tests!(U30848, u30848);
generate_shiftl_tests!(U32896, u32896);
generate_shiftl_tests!(U61568, u61568);
}
mod shiftr {
use super::super::*;
use testing::run_test;
generate_shiftr_tests!(U192, u192);
generate_shiftr_tests!(U256, u256);
generate_shiftr_tests!(U320, u320);
generate_shiftr_tests!(U384, u384);
generate_shiftr_tests!(U448, u448);
generate_shiftr_tests!(U512, u512);
generate_shiftr_tests!(U576, u576);
generate_shiftr_tests!(U640, u640);
generate_shiftr_tests!(U704, u704);
generate_shiftr_tests!(U768, u768);
generate_shiftr_tests!(U832, u832);
generate_shiftr_tests!(U896, u896);
generate_shiftr_tests!(U1024, u1024);
generate_shiftr_tests!(U1088, u1088);
generate_shiftr_tests!(U1152, u1152);
generate_shiftr_tests!(U1216, u1216);
generate_shiftr_tests!(U1280, u1280);
generate_shiftr_tests!(U1664, u1664);
generate_shiftr_tests!(U2048, u2048);
generate_shiftr_tests!(U2112, u2112);
generate_shiftr_tests!(U2176, u2176);
generate_shiftr_tests!(U2432, u2432);
generate_shiftr_tests!(U3072, u3072);
generate_shiftr_tests!(U3136, u3136);
generate_shiftr_tests!(U3200, u3200);
generate_shiftr_tests!(U4096, u4096);
generate_shiftr_tests!(U4160, u4160);
generate_shiftr_tests!(U4224, u4224);
generate_shiftr_tests!(U6144, u6144);
generate_shiftr_tests!(U6208, u6208);
generate_shiftr_tests!(U6272, u6272);
generate_shiftr_tests!(U7680, u7680);
generate_shiftr_tests!(U7744, u7744);
generate_shiftr_tests!(U7808, u7808);
generate_shiftr_tests!(U8192, u8192);
generate_shiftr_tests!(U8256, u8256);
generate_shiftr_tests!(U8320, u8320);
generate_shiftr_tests!(U12416, u12416);
generate_shiftr_tests!(U15360, u15360);
generate_shiftr_tests!(U15424, u15424);
generate_shiftr_tests!(U15488, u15488);
generate_shiftr_tests!(U16384, u16384);
generate_shiftr_tests!(U16448, u16448);
generate_shiftr_tests!(U16512, u16512);
generate_shiftr_tests!(U30720, u30720);
generate_shiftr_tests!(U30784, u30784);
generate_shiftr_tests!(U30848, u30848);
generate_shiftr_tests!(U32896, u32896);
generate_shiftr_tests!(U61568, u61568);
}
mod add {
use super::super::*;
use testing::run_test;
generate_add_tests!(U192, u192, U256);
generate_add_tests!(U256, u256, U320);
generate_add_tests!(U320, u320, U384);
generate_add_tests!(U384, u384, U448);
generate_add_tests!(U448, u448, U512);
generate_add_tests!(U512, u512, U576);
generate_add_tests!(U576, u576, U640);
generate_add_tests!(U640, u640, U704);
generate_add_tests!(U832, u832, U896);
generate_add_tests!(U1024, u1024, U1088);
generate_add_tests!(U1088, u1088, U1152);
generate_add_tests!(U1216, u1216, U1280);
generate_add_tests!(U2048, u2048, U2112);
generate_add_tests!(U2112, u2112, U2176);
generate_add_tests!(U3072, u3072, U3136);
generate_add_tests!(U3136, u3136, U3200);
generate_add_tests!(U4096, u4096, U4160);
generate_add_tests!(U4160, u4160, U4224);
generate_add_tests!(U6208, u6208, U6272);
generate_add_tests!(U7680, u7680, U7744);
generate_add_tests!(U7744, u7744, U7808);
generate_add_tests!(U8192, u8192, U8256);
generate_add_tests!(U8256, u8256, U8320);
generate_add_tests!(U15360, u15360, U15424);
generate_add_tests!(U15424, u15424, U15488);
generate_add_tests!(U16448, u16448, U16512);
generate_add_tests!(U30784, u30784, U30848);
}
mod mul {
use super::super::*;
use testing::run_test;
generate_mul_tests!(U192, u192, U384);
generate_mul_tests!(U256, u256, U512);
generate_mul_tests!(U320, u320, U640);
generate_mul_tests!(U384, u384, U768);
generate_mul_tests!(U448, u448, U896);
generate_mul_tests!(U512, u512, U1024);
generate_mul_tests!(U576, u576, U1152);
generate_mul_tests!(U640, u640, U1280);
generate_mul_tests!(U832, u832, U1664);
generate_mul_tests!(U1024, u1024, U2048);
generate_mul_tests!(U1088, u1088, U2176);
generate_mul_tests!(U1216, u1216, U2432);
generate_mul_tests!(U2048, u2048, U4096);
generate_mul_tests!(U2112, u2112, U4224);
generate_mul_tests!(U3072, u3072, U6144);
generate_mul_tests!(U3136, u3136, U6272);
generate_mul_tests!(U4096, u4096, U8192);
generate_mul_tests!(U4160, u4160, U8320);
generate_mul_tests!(U6208, u6208, U12416);
generate_mul_tests!(U7680, u7680, U15360);
generate_mul_tests!(U7744, u7744, U15488);
generate_mul_tests!(U8192, u8192, U16384);
generate_mul_tests!(U8256, u8256, U16512);
generate_mul_tests!(U15360, u15360, U30720);
generate_mul_tests!(U15424, u15424, U30848);
generate_mul_tests!(U16448, u16448, U32896);
generate_mul_tests!(U30784, u30784, U61568);
}
mod div {
use super::super::*;
use testing::run_test;
generate_div_tests!(U192, u192);
generate_div_tests!(U256, u256);
generate_div_tests!(U320, u320);
generate_div_tests!(U384, u384);
generate_div_tests!(U448, u448);
generate_div_tests!(U512, u512);
generate_div_tests!(U576, u576);
generate_div_tests!(U640, u640);
generate_div_tests!(U832, u832);
generate_div_tests!(U1024, u1024);
generate_div_tests!(U1088, u1088);
generate_div_tests!(U1216, u1216);
generate_div_tests!(U2048, u2048);
generate_div_tests!(U2112, u2112);
generate_div_tests!(U3072, u3072);
generate_div_tests!(U3136, u3136);
generate_div_tests!(U4096, u4096);
generate_div_tests!(U4160, u4160);
generate_div_tests!(U6208, u6208);
generate_div_tests!(U7680, u7680);
generate_div_tests!(U7744, u7744);
generate_div_tests!(U8192, u8192);
generate_div_tests!(U8256, u8256);
generate_div_tests!(U15360, u15360);
generate_div_tests!(U15424, u15424);
generate_div_tests!(U16448, u16448);
generate_div_tests!(U30784, u30784);
}
}