/* ---------------------------------------------------------------------------------------------------*/ /* ---------------------------------------------------------------------------------------------------*/ /* Port of the Intel Decimal Floating-Point Math Library decimal128 type to Rust. */ /* decmathlib-rs - Copyright (C) 2023-2024 Carlos Guzmán Álvarez */ /* -------------------------------------------------------------------------------------------------- */ /* Licensed under the MIT license. See LICENSE file in the project root for full license information. */ /* -------------------------------------------------------------------------------------------------- */ /* Intel® Decimal Floating-Point Math Library - Copyright (c) 2018, Intel Corp. */ /* -------------------------------------------------------------------------------------------------- */ mod common; dec_test!(bid128_round_integral_exact_001, bid128_round_integral_exact, 0, 0x0001ed09bead87c0378d8e62ffffffffu128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_002, bid128_round_integral_exact, 0, 0x0001ed09bead87c0378d8e64ffffffffu128, 0x30400000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_003, bid128_round_integral_exact, 0, 0 , 0x30400000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_004, bid128_round_integral_exact, 0, 0x08ba054b6c1ab0d6309b227aa7c22b95u128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_005, bid128_round_integral_exact, 0, "+110001010110.1011011E0" , 0x3040000000000000000000199c9235beu128, 0x20); dec_test!(bid128_round_integral_exact_006, bid128_round_integral_exact, 0, 0x1e5c1f24c0fe8797defcac74117b0cc9u128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_007, bid128_round_integral_exact, 0, 0x24ae17bee0e3ca29e64a0dd36e6d274du128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_008, bid128_round_integral_exact, 0, "-28997.76477725255E0" , 0xb0400000000000000000000000007146u128, 0x20); dec_test!(bid128_round_integral_exact_009, bid128_round_integral_exact, 0, 0x2ffebe978c67d78effffffffffffffffu128, 0x30400000000000000000000000000004u128, 0x20); dec_test!(bid128_round_integral_exact_010, bid128_round_integral_exact, 0, 0x2fff7ebfbfde27ef1f9dbff5fff6feb7u128, 0x30400000000000000000000000000008u128, 0x20); dec_test!(bid128_round_integral_exact_011, bid128_round_integral_exact, 0, 0x3000001100644834dff2f3fda57dffbfu128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_012, bid128_round_integral_exact, 0, 0x30000124185042ce0005010802580040u128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_013, bid128_round_integral_exact, 0, 0x30211024006042307dffffffffffffffu128, 0x304000000000000007a8fadb5278e2ffu128, 0x20); dec_test!(bid128_round_integral_exact_014, bid128_round_integral_exact, 0, 0x3085ED09BEAD87C0378D8E63ffffffffu128, 0x3085ed09bead87c0378d8e63ffffffffu128, 0x00); dec_test!(bid128_round_integral_exact_015, bid128_round_integral_exact, 0, 0x3085ED09BEAD87C0378D8E6400000000u128, 0x30840000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_016, bid128_round_integral_exact, 0, "+339.94496647435E0" , 0x30400000000000000000000000000154u128, 0x20); dec_test!(bid128_round_integral_exact_017, bid128_round_integral_exact, 0, 0x34d177895e82ee6c266dce427f0e636bu128, 0x34d177895e82ee6c266dce427f0e636bu128, 0x00); dec_test!(bid128_round_integral_exact_018, bid128_round_integral_exact, 0, 0x34f20000000000000000000000000000u128, 0x34f20000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_019, bid128_round_integral_exact, 0, 0x38b6683c503065ebbd416fdde5141f1fu128, 0x38b6683c503065ebbd416fdde5141f1fu128, 0x00); dec_test!(bid128_round_integral_exact_020, bid128_round_integral_exact, 0, 0x3CB2314DC6448D9338C15B09ffffffffu128, 0x3cb2314dc6448d9338c15b09ffffffffu128, 0x00); dec_test!(bid128_round_integral_exact_021, bid128_round_integral_exact, 0, 0x3CB2314DC6448D9338C15B0A00000000u128, 0x3cb2314dc6448d9338c15b0a00000000u128, 0x00); dec_test!(bid128_round_integral_exact_022, bid128_round_integral_exact, 0, 0x40000000000000000000000000000000u128, 0x40000000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_023, bid128_round_integral_exact, 0, 0x40000000000000000010000001000000u128, 0x40000000000000000010000001000000u128, 0x00); dec_test!(bid128_round_integral_exact_024, bid128_round_integral_exact, 0, 0x4000000000000000c4338043a5414cb2u128, 0x4000000000000000c4338043a5414cb2u128, 0x00); dec_test!(bid128_round_integral_exact_025, bid128_round_integral_exact, 0, 0x53800000000000000000000000000000u128, 0x53800000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_026, bid128_round_integral_exact, 0, 0x549324c31ab70f16ab9398820d688392u128, 0x549324c31ab70f16ab9398820d688392u128, 0x00); dec_test!(bid128_round_integral_exact_027, bid128_round_integral_exact, 0, 0x55800000000000000000000000000000u128, 0x55800000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_028, bid128_round_integral_exact, 0, 0x5dcd49df3e7d88e278ce9b3144080941u128, 0x5dcd49df3e7d88e278ce9b3144080941u128, 0x00); dec_test!(bid128_round_integral_exact_029, bid128_round_integral_exact, 0, "-6.86E0" , 0xb0400000000000000000000000000007u128, 0x20); dec_test!(bid128_round_integral_exact_030, bid128_round_integral_exact, 0, 0x78000000000000000000000000000000u128, 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_031, bid128_round_integral_exact, 0, "+7899.8E0" , 0x30400000000000000000000000001edcu128, 0x20); dec_test!(bid128_round_integral_exact_032, bid128_round_integral_exact, 0, 0x7b7fff3fffffffd70000000100200010u128, 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_033, bid128_round_integral_exact, 0, 0x7c00314dc6448d9338c15b0a00000000u128, 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_034, bid128_round_integral_exact, 0, 0x7c003fffffffffff38c15b08ffffffffu128, 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_035, bid128_round_integral_exact, 0, 0x7c003fffffffffff38c15b0affffffffu128, 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_036, bid128_round_integral_exact, 0, 0x7c7c1b7f2fbf6d99a4eee97fed89bfb6u128, 0x7c001b7f2fbf6d99a4eee97fed89bfb6u128, 0x00); dec_test!(bid128_round_integral_exact_037, bid128_round_integral_exact, 0, 0x7e001610a0331c9f4c52387d7a6b092du128, 0x7c001610a0331c9f4c52387d7a6b092du128, 0x01); dec_test!(bid128_round_integral_exact_038, bid128_round_integral_exact, 0, 0x7e0030a6ef58ac7bfb4a59d4957d7c8cu128, 0x7c0030a6ef58ac7bfb4a59d4957d7c8cu128, 0x01); dec_test!(bid128_round_integral_exact_039, bid128_round_integral_exact, 0, 0x7fdefd3de9edfff91000000100000002u128, 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_round_integral_exact_040, bid128_round_integral_exact, 0, 0x8074365d65a03590252713e848731924u128, 0xb0400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_041, bid128_round_integral_exact, 0, "+87657877775585.88988E0" , 0x304000000000000000004fb970aaa4e2u128, 0x20); dec_test!(bid128_round_integral_exact_042, bid128_round_integral_exact, 0, "+8898.89989998888988E0" , 0x304000000000000000000000000022c3u128, 0x20); dec_test!(bid128_round_integral_exact_043, bid128_round_integral_exact, 0, 0xabdf5533fa4ac286c708ee91b4212b7du128, 0xb0400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_044, bid128_round_integral_exact, 0, 0xb028d1f599126efef0c55b88759cfb19u128, 0xb0400000000000e6da4ed3e24b169ccau128, 0x20); dec_test!(bid128_round_integral_exact_045, bid128_round_integral_exact, 0, 0xb03c6412434c7aa994478c5d88208396u128, 0xb04001002ec0c3c96033ea5d1866b9a3u128, 0x20); dec_test!(bid128_round_integral_exact_046, bid128_round_integral_exact, 0, 0xb03f1641bd51ed5586ded64d39546dd3u128, 0xb0401bd35fbb64888d7caf07b8eed7c8u128, 0x20); dec_test!(bid128_round_integral_exact_047, bid128_round_integral_exact, 0, 0xb03f1d0e640184551400c80004404001u128, 0xb0401c8170668d3bb533473333a00666u128, 0x20); dec_test!(bid128_round_integral_exact_048, bid128_round_integral_exact, 0, 0xced23192100d01a80000000000010000u128, 0xced23192100d01a80000000000010000u128, 0x00); dec_test!(bid128_round_integral_exact_049, bid128_round_integral_exact, 0, 0xcf7857626020a4152b8c08f3b3977709u128, 0xcf7857626020a4152b8c08f3b3977709u128, 0x00); dec_test!(bid128_round_integral_exact_050, bid128_round_integral_exact, 0, 0xd017240c70b8180afffdefffffffcfffu128, 0xd017240c70b8180afffdefffffffcfffu128, 0x00); dec_test!(bid128_round_integral_exact_051, bid128_round_integral_exact, 0, 0xd0c60000000000000000000000000000u128, 0xd0c60000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_052, bid128_round_integral_exact, 0, 0xDF7FED09BEAD87C0378D8E63ffffffffu128, 0xdf7fed09bead87c0378d8e63ffffffffu128, 0x00); dec_test!(bid128_round_integral_exact_053, bid128_round_integral_exact, 0, 0xDF7FED09BEAD87C0378D8E6400000000u128, 0xdf7e0000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_054, bid128_round_integral_exact, 0, 0xdffdffeffffffffeb41cc7d64bac9de5u128, 0xdffc0000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_055, bid128_round_integral_exact, 0, 0xe6090373da40c483645c658f35bfda55u128, 0xb0400000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_056, bid128_round_integral_exact, 0, 0xf7bfea5e5fdf372f7fedffdfffdeeeffu128, 0xdefe0000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_057, bid128_round_integral_exact, 0, 0xf9af9232acad6ed464d3b9942770a269u128, 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_058, bid128_round_integral_exact, 0, 0xfe000000000000000000000000000000u128, 0xfc000000000000000000000000000000u128, 0x01); dec_test!(bid128_round_integral_exact_059, bid128_round_integral_exact, 0, 0xfe001704d5fba551de2b0f3945b66e3du128, 0xfc001704d5fba551de2b0f3945b66e3du128, 0x01); dec_test!(bid128_round_integral_exact_060, bid128_round_integral_exact, 0, "SNaN" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_round_integral_exact_061, bid128_round_integral_exact, 1, 0x0001ed09bead87c0378d8e62ffffffffu128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_062, bid128_round_integral_exact, 1, 0x0001ed09bead87c0378d8e64ffffffffu128, 0x30400000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_063, bid128_round_integral_exact, 1, 0 , 0x30400000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_064, bid128_round_integral_exact, 1, 0x08ba054b6c1ab0d6309b227aa7c22b95u128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_065, bid128_round_integral_exact, 1, "+110001010110.1011011E0" , 0x3040000000000000000000199c9235beu128, 0x20); dec_test!(bid128_round_integral_exact_066, bid128_round_integral_exact, 1, 0x1e5c1f24c0fe8797defcac74117b0cc9u128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_067, bid128_round_integral_exact, 1, 0x24ae17bee0e3ca29e64a0dd36e6d274du128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_068, bid128_round_integral_exact, 1, "-28997.76477725255E0" , 0xb0400000000000000000000000007146u128, 0x20); dec_test!(bid128_round_integral_exact_069, bid128_round_integral_exact, 1, 0x30000124185042ce0005010802580040u128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_070, bid128_round_integral_exact, 1, 0x301040a630c0402263eed167206e394eu128, 0x3040000000000000000000004e27f3d9u128, 0x20); dec_test!(bid128_round_integral_exact_071, bid128_round_integral_exact, 1, "+339.94496647435E0" , 0x30400000000000000000000000000153u128, 0x20); dec_test!(bid128_round_integral_exact_072, bid128_round_integral_exact, 1, 0x34d177895e82ee6c266dce427f0e636bu128, 0x34d177895e82ee6c266dce427f0e636bu128, 0x00); dec_test!(bid128_round_integral_exact_073, bid128_round_integral_exact, 1, 0x34f20000000000000000000000000000u128, 0x34f20000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_074, bid128_round_integral_exact, 1, 0x38b6683c503065ebbd416fdde5141f1fu128, 0x38b6683c503065ebbd416fdde5141f1fu128, 0x00); dec_test!(bid128_round_integral_exact_075, bid128_round_integral_exact, 1, 0x53800000000000000000000000000000u128, 0x53800000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_076, bid128_round_integral_exact, 1, 0x549324c31ab70f16ab9398820d688392u128, 0x549324c31ab70f16ab9398820d688392u128, 0x00); dec_test!(bid128_round_integral_exact_077, bid128_round_integral_exact, 1, 0x55800000000000000000000000000000u128, 0x55800000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_078, bid128_round_integral_exact, 1, 0x5dcd49df3e7d88e278ce9b3144080941u128, 0x5dcd49df3e7d88e278ce9b3144080941u128, 0x00); dec_test!(bid128_round_integral_exact_079, bid128_round_integral_exact, 1, "-6.86E0" , 0xb0400000000000000000000000000007u128, 0x20); dec_test!(bid128_round_integral_exact_080, bid128_round_integral_exact, 1, 0x78000000000000000000000000000000u128, 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_081, bid128_round_integral_exact, 1, "+7899.8E0" , 0x30400000000000000000000000001edbu128, 0x20); dec_test!(bid128_round_integral_exact_082, bid128_round_integral_exact, 1, 0x7c003fffffffffff38c15b08ffffffffu128, 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_083, bid128_round_integral_exact, 1, 0x7e001610a0331c9f4c52387d7a6b092du128, 0x7c001610a0331c9f4c52387d7a6b092du128, 0x01); dec_test!(bid128_round_integral_exact_084, bid128_round_integral_exact, 1, 0x7e0030a6ef58ac7bfb4a59d4957d7c8cu128, 0x7c0030a6ef58ac7bfb4a59d4957d7c8cu128, 0x01); dec_test!(bid128_round_integral_exact_085, bid128_round_integral_exact, 1, 0x8074365d65a03590252713e848731924u128, 0xb0400000000000000000000000000001u128, 0x20); dec_test!(bid128_round_integral_exact_086, bid128_round_integral_exact, 1, "+87657877775585.88988E0" , 0x304000000000000000004fb970aaa4e1u128, 0x20); dec_test!(bid128_round_integral_exact_087, bid128_round_integral_exact, 1, "+8898.89989998888988E0" , 0x304000000000000000000000000022c2u128, 0x20); dec_test!(bid128_round_integral_exact_088, bid128_round_integral_exact, 1, 0x9b7985c933695132f4b17f880577399du128, 0xb0400000000000000000000000000001u128, 0x20); dec_test!(bid128_round_integral_exact_089, bid128_round_integral_exact, 1, 0xabdf5533fa4ac286c708ee91b4212b7du128, 0xb0400000000000000000000000000001u128, 0x20); dec_test!(bid128_round_integral_exact_090, bid128_round_integral_exact, 1, 0xb00000402048c2407fef7f3fefb4f7f7u128, 0xb0400000000000000000000000000001u128, 0x20); dec_test!(bid128_round_integral_exact_091, bid128_round_integral_exact, 1, 0xb00d71b799eb740d92e00060000850ccu128, 0xb0400000000000000000000004783824u128, 0x20); dec_test!(bid128_round_integral_exact_092, bid128_round_integral_exact, 1, 0xb028d1f599126efef0c55b88759cfb19u128, 0xb0400000000000e6da4ed3e24b169ccbu128, 0x20); dec_test!(bid128_round_integral_exact_093, bid128_round_integral_exact, 1, 0xb03c6412434c7aa994478c5d88208396u128, 0xb04001002ec0c3c96033ea5d1866b9a3u128, 0x20); dec_test!(bid128_round_integral_exact_094, bid128_round_integral_exact, 1, 0xcf7857626020a4152b8c08f3b3977709u128, 0xcf7857626020a4152b8c08f3b3977709u128, 0x00); dec_test!(bid128_round_integral_exact_095, bid128_round_integral_exact, 1, 0xd0c60000000000000000000000000000u128, 0xd0c60000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_096, bid128_round_integral_exact, 1, 0xfe000000000000000000000000000000u128, 0xfc000000000000000000000000000000u128, 0x01); dec_test!(bid128_round_integral_exact_097, bid128_round_integral_exact, 1, 0xfe001704d5fba551de2b0f3945b66e3du128, 0xfc001704d5fba551de2b0f3945b66e3du128, 0x01); dec_test!(bid128_round_integral_exact_098, bid128_round_integral_exact, 1, "SNaN" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_round_integral_exact_099, bid128_round_integral_exact, 2, 0x0001ed09bead87c0378d8e62ffffffffu128, 0x30400000000000000000000000000001u128, 0x20); dec_test!(bid128_round_integral_exact_100, bid128_round_integral_exact, 2, 0x0001ed09bead87c0378d8e64ffffffffu128, 0x30400000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_101, bid128_round_integral_exact, 2, 0 , 0x30400000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_102, bid128_round_integral_exact, 2, 0x08ba054b6c1ab0d6309b227aa7c22b95u128, 0x30400000000000000000000000000001u128, 0x20); dec_test!(bid128_round_integral_exact_103, bid128_round_integral_exact, 2, "+110001010110.1011011E0" , 0x3040000000000000000000199c9235bfu128, 0x20); dec_test!(bid128_round_integral_exact_104, bid128_round_integral_exact, 2, 0x1e5c1f24c0fe8797defcac74117b0cc9u128, 0x30400000000000000000000000000001u128, 0x20); dec_test!(bid128_round_integral_exact_105, bid128_round_integral_exact, 2, 0x24ae17bee0e3ca29e64a0dd36e6d274du128, 0x30400000000000000000000000000001u128, 0x20); dec_test!(bid128_round_integral_exact_106, bid128_round_integral_exact, 2, "-28997.76477725255E0" , 0xb0400000000000000000000000007145u128, 0x20); dec_test!(bid128_round_integral_exact_107, bid128_round_integral_exact, 2, 0x30000124185042ce0005010802580040u128, 0x30400000000000000000000000000001u128, 0x20); dec_test!(bid128_round_integral_exact_108, bid128_round_integral_exact, 2, 0x301040a630c0402263eed167206e394eu128, 0x3040000000000000000000004e27f3dau128, 0x20); dec_test!(bid128_round_integral_exact_109, bid128_round_integral_exact, 2, 0x30211024006042307dffffffffffffffu128, 0x304000000000000007a8fadb5278e2ffu128, 0x20); dec_test!(bid128_round_integral_exact_110, bid128_round_integral_exact, 2, 0x303a95000928d000651051d10c4c1500u128, 0x3040002624df876041a3169c1cf0b752u128, 0x20); dec_test!(bid128_round_integral_exact_111, bid128_round_integral_exact, 2, "+339.94496647435E0" , 0x30400000000000000000000000000154u128, 0x20); dec_test!(bid128_round_integral_exact_112, bid128_round_integral_exact, 2, 0x34d177895e82ee6c266dce427f0e636bu128, 0x34d177895e82ee6c266dce427f0e636bu128, 0x00); dec_test!(bid128_round_integral_exact_113, bid128_round_integral_exact, 2, 0x34f20000000000000000000000000000u128, 0x34f20000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_114, bid128_round_integral_exact, 2, 0x38b6683c503065ebbd416fdde5141f1fu128, 0x38b6683c503065ebbd416fdde5141f1fu128, 0x00); dec_test!(bid128_round_integral_exact_115, bid128_round_integral_exact, 2, 0x53800000000000000000000000000000u128, 0x53800000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_116, bid128_round_integral_exact, 2, 0x549324c31ab70f16ab9398820d688392u128, 0x549324c31ab70f16ab9398820d688392u128, 0x00); dec_test!(bid128_round_integral_exact_117, bid128_round_integral_exact, 2, 0x55800000000000000000000000000000u128, 0x55800000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_118, bid128_round_integral_exact, 2, 0x5dcd49df3e7d88e278ce9b3144080941u128, 0x5dcd49df3e7d88e278ce9b3144080941u128, 0x00); dec_test!(bid128_round_integral_exact_119, bid128_round_integral_exact, 2, "-6.86E0" , 0xb0400000000000000000000000000006u128, 0x20); dec_test!(bid128_round_integral_exact_120, bid128_round_integral_exact, 2, 0x78000000000000000000000000000000u128, 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_121, bid128_round_integral_exact, 2, "+7899.8E0" , 0x30400000000000000000000000001edcu128, 0x20); dec_test!(bid128_round_integral_exact_122, bid128_round_integral_exact, 2, 0x7c003fffffffffff38c15b08ffffffffu128, 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_123, bid128_round_integral_exact, 2, 0x7e001610a0331c9f4c52387d7a6b092du128, 0x7c001610a0331c9f4c52387d7a6b092du128, 0x01); dec_test!(bid128_round_integral_exact_124, bid128_round_integral_exact, 2, 0x7e0030a6ef58ac7bfb4a59d4957d7c8cu128, 0x7c0030a6ef58ac7bfb4a59d4957d7c8cu128, 0x01); dec_test!(bid128_round_integral_exact_125, bid128_round_integral_exact, 2, 0x8074365d65a03590252713e848731924u128, 0xb0400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_126, bid128_round_integral_exact, 2, "+87657877775585.88988E0" , 0x304000000000000000004fb970aaa4e2u128, 0x20); dec_test!(bid128_round_integral_exact_127, bid128_round_integral_exact, 2, "+8898.89989998888988E0" , 0x304000000000000000000000000022c3u128, 0x20); dec_test!(bid128_round_integral_exact_128, bid128_round_integral_exact, 2, 0x9b7985c933695132f4b17f880577399du128, 0xb0400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_129, bid128_round_integral_exact, 2, 0xabdf5533fa4ac286c708ee91b4212b7du128, 0xb0400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_130, bid128_round_integral_exact, 2, 0xb00000402048c2407fef7f3fefb4f7f7u128, 0xb0400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_131, bid128_round_integral_exact, 2, 0xb028d1f599126efef0c55b88759cfb19u128, 0xb0400000000000e6da4ed3e24b169ccau128, 0x20); dec_test!(bid128_round_integral_exact_132, bid128_round_integral_exact, 2, 0xb03c6412434c7aa994478c5d88208396u128, 0xb04001002ec0c3c96033ea5d1866b9a2u128, 0x20); dec_test!(bid128_round_integral_exact_133, bid128_round_integral_exact, 2, 0xcf7857626020a4152b8c08f3b3977709u128, 0xcf7857626020a4152b8c08f3b3977709u128, 0x00); dec_test!(bid128_round_integral_exact_134, bid128_round_integral_exact, 2, 0xd0c60000000000000000000000000000u128, 0xd0c60000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_135, bid128_round_integral_exact, 2, 0xfe000000000000000000000000000000u128, 0xfc000000000000000000000000000000u128, 0x01); dec_test!(bid128_round_integral_exact_136, bid128_round_integral_exact, 2, 0xfe001704d5fba551de2b0f3945b66e3du128, 0xfc001704d5fba551de2b0f3945b66e3du128, 0x01); dec_test!(bid128_round_integral_exact_137, bid128_round_integral_exact, 2, "SNaN" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_round_integral_exact_138, bid128_round_integral_exact, 3, 0x0001ed09bead87c0378d8e62ffffffffu128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_139, bid128_round_integral_exact, 3, 0x0001ed09bead87c0378d8e64ffffffffu128, 0x30400000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_140, bid128_round_integral_exact, 3, 0 , 0x30400000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_141, bid128_round_integral_exact, 3, 0x08ba054b6c1ab0d6309b227aa7c22b95u128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_142, bid128_round_integral_exact, 3, "+110001010110.1011011E0" , 0x3040000000000000000000199c9235beu128, 0x20); dec_test!(bid128_round_integral_exact_143, bid128_round_integral_exact, 3, 0x1e5c1f24c0fe8797defcac74117b0cc9u128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_144, bid128_round_integral_exact, 3, 0x24ae17bee0e3ca29e64a0dd36e6d274du128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_145, bid128_round_integral_exact, 3, "-28997.76477725255E0" , 0xb0400000000000000000000000007145u128, 0x20); dec_test!(bid128_round_integral_exact_146, bid128_round_integral_exact, 3, 0x30000124185042ce0005010802580040u128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_147, bid128_round_integral_exact, 3, 0x301040a630c0402263eed167206e394eu128, 0x3040000000000000000000004e27f3d9u128, 0x20); dec_test!(bid128_round_integral_exact_148, bid128_round_integral_exact, 3, "+339.94496647435E0" , 0x30400000000000000000000000000153u128, 0x20); dec_test!(bid128_round_integral_exact_149, bid128_round_integral_exact, 3, 0x34d177895e82ee6c266dce427f0e636bu128, 0x34d177895e82ee6c266dce427f0e636bu128, 0x00); dec_test!(bid128_round_integral_exact_150, bid128_round_integral_exact, 3, 0x34f20000000000000000000000000000u128, 0x34f20000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_151, bid128_round_integral_exact, 3, 0x38b6683c503065ebbd416fdde5141f1fu128, 0x38b6683c503065ebbd416fdde5141f1fu128, 0x00); dec_test!(bid128_round_integral_exact_152, bid128_round_integral_exact, 3, 0x53800000000000000000000000000000u128, 0x53800000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_153, bid128_round_integral_exact, 3, 0x549324c31ab70f16ab9398820d688392u128, 0x549324c31ab70f16ab9398820d688392u128, 0x00); dec_test!(bid128_round_integral_exact_154, bid128_round_integral_exact, 3, 0x55800000000000000000000000000000u128, 0x55800000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_155, bid128_round_integral_exact, 3, 0x5dcd49df3e7d88e278ce9b3144080941u128, 0x5dcd49df3e7d88e278ce9b3144080941u128, 0x00); dec_test!(bid128_round_integral_exact_156, bid128_round_integral_exact, 3, "-6.86E0" , 0xb0400000000000000000000000000006u128, 0x20); dec_test!(bid128_round_integral_exact_157, bid128_round_integral_exact, 3, 0x78000000000000000000000000000000u128, 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_158, bid128_round_integral_exact, 3, "+7899.8E0" , 0x30400000000000000000000000001edbu128, 0x20); dec_test!(bid128_round_integral_exact_159, bid128_round_integral_exact, 3, 0x7c003fffffffffff38c15b08ffffffffu128, 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_160, bid128_round_integral_exact, 3, 0x7e001610a0331c9f4c52387d7a6b092du128, 0x7c001610a0331c9f4c52387d7a6b092du128, 0x01); dec_test!(bid128_round_integral_exact_161, bid128_round_integral_exact, 3, 0x7e0030a6ef58ac7bfb4a59d4957d7c8cu128, 0x7c0030a6ef58ac7bfb4a59d4957d7c8cu128, 0x01); dec_test!(bid128_round_integral_exact_162, bid128_round_integral_exact, 3, 0x8074365d65a03590252713e848731924u128, 0xb0400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_163, bid128_round_integral_exact, 3, "+87657877775585.88988E0" , 0x304000000000000000004fb970aaa4e1u128, 0x20); dec_test!(bid128_round_integral_exact_164, bid128_round_integral_exact, 3, "+8898.89989998888988E0" , 0x304000000000000000000000000022c2u128, 0x20); dec_test!(bid128_round_integral_exact_165, bid128_round_integral_exact, 3, 0xabdf5533fa4ac286c708ee91b4212b7du128, 0xb0400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_166, bid128_round_integral_exact, 3, 0xb028d1f599126efef0c55b88759cfb19u128, 0xb0400000000000e6da4ed3e24b169ccau128, 0x20); dec_test!(bid128_round_integral_exact_167, bid128_round_integral_exact, 3, 0xb03c6412434c7aa994478c5d88208396u128, 0xb04001002ec0c3c96033ea5d1866b9a2u128, 0x20); dec_test!(bid128_round_integral_exact_168, bid128_round_integral_exact, 3, 0xcf7857626020a4152b8c08f3b3977709u128, 0xcf7857626020a4152b8c08f3b3977709u128, 0x00); dec_test!(bid128_round_integral_exact_169, bid128_round_integral_exact, 3, 0xd0c60000000000000000000000000000u128, 0xd0c60000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_170, bid128_round_integral_exact, 3, 0xfe000000000000000000000000000000u128, 0xfc000000000000000000000000000000u128, 0x01); dec_test!(bid128_round_integral_exact_171, bid128_round_integral_exact, 3, 0xfe001704d5fba551de2b0f3945b66e3du128, 0xfc001704d5fba551de2b0f3945b66e3du128, 0x01); dec_test!(bid128_round_integral_exact_172, bid128_round_integral_exact, 3, "SNaN" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_round_integral_exact_173, bid128_round_integral_exact, 4, 0x0001ed09bead87c0378d8e62ffffffffu128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_174, bid128_round_integral_exact, 4, 0x0001ed09bead87c0378d8e64ffffffffu128, 0x30400000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_175, bid128_round_integral_exact, 4, 0 , 0x30400000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_176, bid128_round_integral_exact, 4, 0x08ba054b6c1ab0d6309b227aa7c22b95u128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_177, bid128_round_integral_exact, 4, "+110001010110.1011011E0" , 0x3040000000000000000000199c9235beu128, 0x20); dec_test!(bid128_round_integral_exact_178, bid128_round_integral_exact, 4, 0x24ae17bee0e3ca29e64a0dd36e6d274du128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_179, bid128_round_integral_exact, 4, "-28997.76477725255E0" , 0xb0400000000000000000000000007146u128, 0x20); dec_test!(bid128_round_integral_exact_180, bid128_round_integral_exact, 4, 0x2ffebe978c67d78effffffffffffffffu128, 0x30400000000000000000000000000004u128, 0x20); dec_test!(bid128_round_integral_exact_181, bid128_round_integral_exact, 4, 0x2fff7ebfbfde27ef1f9dbff5fff6feb7u128, 0x30400000000000000000000000000008u128, 0x20); dec_test!(bid128_round_integral_exact_182, bid128_round_integral_exact, 4, 0x3000001100644834dff2f3fda57dffbfu128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_183, bid128_round_integral_exact, 4, 0x30000124185042ce0005010802580040u128, 0x30400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_184, bid128_round_integral_exact, 4, 0x30211024006042307dffffffffffffffu128, 0x304000000000000007a8fadb5278e2ffu128, 0x20); dec_test!(bid128_round_integral_exact_185, bid128_round_integral_exact, 4, "+339.94496647435E0" , 0x30400000000000000000000000000154u128, 0x20); dec_test!(bid128_round_integral_exact_186, bid128_round_integral_exact, 4, 0x34d177895e82ee6c266dce427f0e636bu128, 0x34d177895e82ee6c266dce427f0e636bu128, 0x00); dec_test!(bid128_round_integral_exact_187, bid128_round_integral_exact, 4, 0x34f20000000000000000000000000000u128, 0x34f20000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_188, bid128_round_integral_exact, 4, 0x38b6683c503065ebbd416fdde5141f1fu128, 0x38b6683c503065ebbd416fdde5141f1fu128, 0x00); dec_test!(bid128_round_integral_exact_189, bid128_round_integral_exact, 4, 0x53800000000000000000000000000000u128, 0x53800000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_190, bid128_round_integral_exact, 4, 0x549324c31ab70f16ab9398820d688392u128, 0x549324c31ab70f16ab9398820d688392u128, 0x00); dec_test!(bid128_round_integral_exact_191, bid128_round_integral_exact, 4, 0x55800000000000000000000000000000u128, 0x55800000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_192, bid128_round_integral_exact, 4, 0x5dcd49df3e7d88e278ce9b3144080941u128, 0x5dcd49df3e7d88e278ce9b3144080941u128, 0x00); dec_test!(bid128_round_integral_exact_193, bid128_round_integral_exact, 4, "-6.86E0" , 0xb0400000000000000000000000000007u128, 0x20); dec_test!(bid128_round_integral_exact_194, bid128_round_integral_exact, 4, 0x78000000000000000000000000000000u128, 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_195, bid128_round_integral_exact, 4, "+7899.8E0" , 0x30400000000000000000000000001edcu128, 0x20); dec_test!(bid128_round_integral_exact_196, bid128_round_integral_exact, 4, 0x7c003fffffffffff38c15b08ffffffffu128, 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_197, bid128_round_integral_exact, 4, 0x7e001610a0331c9f4c52387d7a6b092du128, 0x7c001610a0331c9f4c52387d7a6b092du128, 0x01); dec_test!(bid128_round_integral_exact_198, bid128_round_integral_exact, 4, 0x7e0030a6ef58ac7bfb4a59d4957d7c8cu128, 0x7c0030a6ef58ac7bfb4a59d4957d7c8cu128, 0x01); dec_test!(bid128_round_integral_exact_199, bid128_round_integral_exact, 4, 0x8074365d65a03590252713e848731924u128, 0xb0400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_200, bid128_round_integral_exact, 4, "+87657877775585.88988E0" , 0x304000000000000000004fb970aaa4e2u128, 0x20); dec_test!(bid128_round_integral_exact_201, bid128_round_integral_exact, 4, "+8898.89989998888988E0" , 0x304000000000000000000000000022c3u128, 0x20); dec_test!(bid128_round_integral_exact_202, bid128_round_integral_exact, 4, 0xabdf5533fa4ac286c708ee91b4212b7du128, 0xb0400000000000000000000000000000u128, 0x20); dec_test!(bid128_round_integral_exact_203, bid128_round_integral_exact, 4, 0xb028d1f599126efef0c55b88759cfb19u128, 0xb0400000000000e6da4ed3e24b169ccau128, 0x20); dec_test!(bid128_round_integral_exact_204, bid128_round_integral_exact, 4, 0xb03c6412434c7aa994478c5d88208396u128, 0xb04001002ec0c3c96033ea5d1866b9a3u128, 0x20); dec_test!(bid128_round_integral_exact_205, bid128_round_integral_exact, 4, 0xb03f1641bd51ed5586ded64d39546dd3u128, 0xb0401bd35fbb64888d7caf07b8eed7c8u128, 0x20); dec_test!(bid128_round_integral_exact_206, bid128_round_integral_exact, 4, 0xcf7857626020a4152b8c08f3b3977709u128, 0xcf7857626020a4152b8c08f3b3977709u128, 0x00); dec_test!(bid128_round_integral_exact_207, bid128_round_integral_exact, 4, 0xd0c60000000000000000000000000000u128, 0xd0c60000000000000000000000000000u128, 0x00); dec_test!(bid128_round_integral_exact_208, bid128_round_integral_exact, 4, 0xfe000000000000000000000000000000u128, 0xfc000000000000000000000000000000u128, 0x01); dec_test!(bid128_round_integral_exact_209, bid128_round_integral_exact, 4, 0xfe001704d5fba551de2b0f3945b66e3du128, 0xfc001704d5fba551de2b0f3945b66e3du128, 0x01); dec_test!(bid128_round_integral_exact_210, bid128_round_integral_exact, 4, "SNaN" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_round_integral_exact_211, bid128_round_integral_exact, 0, "18446744073709551616500E-3" , "18446744073709551616E+0" , 0x20); dec_test!(bid128_round_integral_exact_212, bid128_round_integral_exact, 0, "18446744073709551616000E-3" , "18446744073709551616E+0" , 0x00); dec_test!(bid128_round_integral_exact_213, bid128_round_integral_exact, 1, "18446744073709551616500E-3" , "18446744073709551616E+0" , 0x20); dec_test!(bid128_round_integral_exact_214, bid128_round_integral_exact, 2, "18446744073709551616500E-3" , "18446744073709551617E+0" , 0x20); dec_test!(bid128_round_integral_exact_215, bid128_round_integral_exact, 3, "18446744073709551616500E-3" , "18446744073709551616E+0" , 0x20); dec_test!(bid128_round_integral_exact_216, bid128_round_integral_exact, 1, "18446744073709551616000E-3" , "18446744073709551616E+0" , 0x00); dec_test!(bid128_round_integral_exact_217, bid128_round_integral_exact, 2, "18446744073709551616000E-3" , "18446744073709551616E+0" , 0x00); dec_test!(bid128_round_integral_exact_218, bid128_round_integral_exact, 3, "18446744073709551616000E-3" , "18446744073709551616E+0" , 0x00); dec_test!(bid128_round_integral_exact_219, bid128_round_integral_exact, 0, "91E-1" , 9 , 0x20); dec_test!(bid128_round_integral_exact_220, bid128_round_integral_exact, 1, "91E-1" , 9 , 0x20); dec_test!(bid128_round_integral_exact_221, bid128_round_integral_exact, 2, "91E-1" , 10 , 0x20); dec_test!(bid128_round_integral_exact_222, bid128_round_integral_exact, 3, "91E-1" , 9 , 0x20); dec_test!(bid128_round_integral_exact_223, bid128_round_integral_exact, 0, "90001E-4" , 9 , 0x20); dec_test!(bid128_round_integral_exact_224, bid128_round_integral_exact, 1, "90001E-4" , 9 , 0x20); dec_test!(bid128_round_integral_exact_225, bid128_round_integral_exact, 2, "90001E-4" , 10 , 0x20); dec_test!(bid128_round_integral_exact_226, bid128_round_integral_exact, 3, "90001E-4" , 9 , 0x20); dec_test!(bid128_round_integral_exact_227, bid128_round_integral_exact, 0, "96000000000000000000008778781E-23" , 960000 , 0x20); dec_test!(bid128_round_integral_exact_228, bid128_round_integral_exact, 0, "900000000000000000000001E-23" , 9 , 0x20); dec_test!(bid128_round_integral_exact_229, bid128_round_integral_exact, 1, "96000000000000000000008778781E-23" , 960000 , 0x20); dec_test!(bid128_round_integral_exact_230, bid128_round_integral_exact, 1, "900000000000000000000001E-23" , 9 , 0x20); dec_test!(bid128_round_integral_exact_231, bid128_round_integral_exact, 2, "900000000000000000000001E-23" , 10 , 0x20); dec_test!(bid128_round_integral_exact_232, bid128_round_integral_exact, 2, "96000000000000000000008778781E-23" , 960001 , 0x20); dec_test!(bid128_round_integral_exact_233, bid128_round_integral_exact, 3, "900000000000000000000001E-23" , 9 , 0x20); dec_test!(bid128_round_integral_exact_234, bid128_round_integral_exact, 3, "96000000000000000000008778781E-23" , 960000 , 0x20); dec_test!(bid128_round_integral_exact_235, bid128_round_integral_exact, 4, "900000000000000000000001E-23" , 9 , 0x20); dec_test!(bid128_round_integral_exact_236, bid128_round_integral_exact, 4, "96000000000000000000008778781E-23" , 960000 , 0x20); dec_test!(bid128_round_integral_exact_237, bid128_round_integral_exact, 4, "91E-1" , 9 , 0x20); dec_test!(bid128_round_integral_exact_238, bid128_round_integral_exact, 4, "90001E-4" , 9 , 0x20); dec_test!(bid128_round_integral_exact_239, bid128_round_integral_exact, 4, "18446744073709551616500E-3" , "18446744073709551617E+0" , 0x20); dec_test!(bid128_round_integral_exact_240, bid128_round_integral_exact, 4, "18446744073709551616000E-3" , "18446744073709551616E+0" , 0x00); dec_test!(bid128_round_integral_exact_241, bid128_round_integral_exact, 0, "205000E-4" , 20 , 0x20); dec_test!(bid128_round_integral_exact_242, bid128_round_integral_exact, 0, "205001E-4" , 21 , 0x20); dec_test!(bid128_round_integral_exact_243, bid128_round_integral_exact, 0, "2050000000000000000000000E-23" , 20 , 0x20);