Upd: 加入了一些非常毒瘤的 corner case 测试点。

This commit is contained in:
DarkSharpness_XzY
2023-10-20 22:07:15 +08:00
parent f884cf0073
commit 28175399cb
6 changed files with 107 additions and 0 deletions

42
data/Integer3/1.cpp Normal file
View File

@ -0,0 +1,42 @@
/*
Time: 2023-10-20
Test: Custom constructor. Div and mod.
std Time: 0.30s
Time Limit: 1.00s
Notes: Sanity check.
*/
#include "int2048.h"
void sanity_check(sjtu::int2048 &x,sjtu::int2048 &y) {
// Sanity check of division
std::cout
<< x / y << ' '
<< -x / y << ' '
<< x / -y << ' '
<< -x / -y << '\n';
// Sanity check of mod
std::cout
<< x % y << ' '
<< -x % y << ' '
<< x % -y << ' '
<< -x % -y << '\n';
}
signed main() {
// sanity check
sjtu::int2048 x {"0000000000001145141919810"};
// normal test
sjtu::int2048 y {"-1145141919810"};
y += 1;
sanity_check(x, y);
y += -2;
y -= -1;
sanity_check(x, y);
return 0;
}

4
data/Integer3/1.out Normal file
View File

@ -0,0 +1,4 @@
-2 1 1 -2
-1145141919808 -1 1 1145141919808
-1 1 1 -1
0 0 0 0

30
data/Integer3/2.cpp Normal file
View File

@ -0,0 +1,30 @@
/*
Time: 2023-10-20
Test: Custom constructor. Div and mod.
std Time: 0.30s
Time Limit: 1.00s
Notes: Sanity check.
*/
#include "int2048.h"
void sanity_check(sjtu::int2048 &x) {
(0 / x).print(); std::cout << ' ';
(1 / x).print(); std::cout << ' ';
(-1 / x).print();std::cout << ' ';
(0 % x).print(); std::cout << ' ';
(1 % x).print(); std::cout << ' ';
(-1 % x).print();std::cout << '\n';
}
signed main() {
sjtu::int2048 x;
x.read("-1919810");
sanity_check(x);
x = -x;
sanity_check(x);
return 0;
}

2
data/Integer3/2.out Normal file
View File

@ -0,0 +1,2 @@
0 -1 0 0 -1919809 -1
0 0 -1 0 1 1919809

26
data/Integer3/3.cpp Normal file
View File

@ -0,0 +1,26 @@
/*
Time: 2023-10-20
Test: Copy constructor and assignment operator.
std Time: 0.30s
Time Limit: 1.00s
Notes: Sanity check.
*/
#include "int2048.h"
void sanity_check(sjtu::int2048 &x) {
x = x = x = x = x = x = x = x = x;
sjtu::int2048 y = (((((((((((((x)))))))))))));
sjtu::int2048 z = (((((((-(((((x))))))))))));
x = ( x = (x = (x = y + z + x)));
}
signed main() {
sjtu::int2048 x {"111111111111111111111111111111111111111111111111111111111111111111111111112"};
sanity_check(x);
std::cout << x << '\n';
std::cout << -sjtu::int2048{0} << '\n';
x.read("-0");
std::cout << x << '\n';
return 0;
}

3
data/Integer3/3.out Normal file
View File

@ -0,0 +1,3 @@
111111111111111111111111111111111111111111111111111111111111111111111111112
0
0