Upd: 加入了一些非常毒瘤的 corner case 测试点。
This commit is contained in:
42
data/Integer3/1.cpp
Normal file
42
data/Integer3/1.cpp
Normal 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
4
data/Integer3/1.out
Normal 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
30
data/Integer3/2.cpp
Normal 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
2
data/Integer3/2.out
Normal file
@ -0,0 +1,2 @@
|
||||
0 -1 0 0 -1919809 -1
|
||||
0 0 -1 0 1 1919809
|
26
data/Integer3/3.cpp
Normal file
26
data/Integer3/3.cpp
Normal 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
3
data/Integer3/3.out
Normal file
@ -0,0 +1,3 @@
|
||||
111111111111111111111111111111111111111111111111111111111111111111111111112
|
||||
0
|
||||
0
|
Reference in New Issue
Block a user