Skip to content

Commit 1c35e07

Browse files
committed
test: add more unit tests
Closes #35
1 parent 91c583a commit 1c35e07

File tree

6 files changed

+81
-18
lines changed

6 files changed

+81
-18
lines changed

test/bit/add_test.dart

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ void main() {
88
test('Default overflow semantics', () {
99
const add = Add();
1010
// overflow
11-
expect(add(ones, 1), 0);
11+
expect(add.value(ones, 1), 0);
1212
expect(add(0, -1), ones);
1313

14-
expect(add(zeroes, zeroes), zeroes);
14+
expect(add.value(zeroes, zeroes), zeroes);
1515
expect(add(zeroes, ones), ones);
1616
expect(add(ones, zeroes), ones);
1717
expect(add(0xaaaa, 0x4444), 0xeeee);
@@ -21,10 +21,10 @@ void main() {
2121
// 8 bits set to '1'
2222
const ones8 = 0xff;
2323
// overflow
24-
expect(add8(ones8, 1), 0);
24+
expect(add8.value(ones8, 1), 0);
2525
expect(add8(0, -1), ones8);
2626

27-
expect(add8(zeroes, zeroes), zeroes);
27+
expect(add8.value(zeroes, zeroes), zeroes);
2828
expect(add8(zeroes, ones), 0xff);
2929
expect(add8(ones, zeroes), 0xff);
3030
expect(add8(0xaaaa, 0x4444), 0xee);
@@ -35,10 +35,10 @@ void main() {
3535
const ones16 = 0xffff;
3636

3737
// overflow
38-
expect(add16(ones16, 1), 0);
38+
expect(add16.value(ones16, 1), 0);
3939
expect(add16(0, -1), ones16);
4040

41-
expect(add16(zeroes, zeroes), zeroes);
41+
expect(add16.value(zeroes, zeroes), zeroes);
4242
expect(add16(zeroes, ones), 0xffff);
4343
expect(add16(ones, zeroes), 0xffff);
4444
expect(add16(0xaaaaaaaa, 0x44444444), 0xeeee);
@@ -48,21 +48,21 @@ void main() {
4848
// 32 bits set to 1.
4949
const ones32 = 0xffffffff;
5050
// overflow
51-
expect(add32(ones32, 1), 0);
51+
expect(add32.value(ones32, 1), 0);
5252
expect(add32(0, -1), ones32);
5353

54-
expect(add32(zeroes, zeroes), zeroes);
54+
expect(add32.value(zeroes, zeroes), zeroes);
5555
expect(add32(zeroes, ones), 0xffffffff);
5656
expect(add32(ones, zeroes), 0xffffffff);
5757
expect(add32(0xaaaaaaaaaaaaaaaa, 0x4444444444444444), 0xeeeeeeee);
5858
});
5959
test('64 bits overflow semantics', () {
6060
const add64 = Add.w64();
6161
// overflow
62-
expect(add64(ones, 1), 0);
62+
expect(add64.value(ones, 1), 0);
6363
expect(add64(0, -1), ones);
6464

65-
expect(add64(zeroes, zeroes), zeroes);
65+
expect(add64.value(zeroes, zeroes), zeroes);
6666
expect(add64(zeroes, ones), 0xffffffffffffffff);
6767
expect(add64(ones, zeroes), 0xffffffffffffffff);
6868
expect(add64(0xaaaaaaaaaaaaaaaa, 0x4444444444444444), 0xeeeeeeeeeeeeeeee);

test/bit/nshl_test.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,8 @@ void main() {
1818
expect(shift1000(99), 0);
1919
expect(shift1000(1000), 0);
2020
});
21+
test('negative position', () {
22+
expect(() => NShl(-1), throwsA(isA<AssertionError>()));
23+
});
2124
});
2225
}

test/bit/nshr_test.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,8 @@ void main() {
1010
expect(shift1(-105), 9223372036854775755);
1111
expect(shift1(-105), 9223372036854775755);
1212
});
13+
test('negative position', () {
14+
expect(() => NShr(-1), throwsA(isA<AssertionError>()));
15+
});
1316
});
1417
}

test/bit/nshrs_test.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,8 @@ void main() {
88
expect(shift1(105), 52);
99
expect(shift1(-105), -53);
1010
});
11+
test('negative position', () {
12+
expect(() => NShrs(-1), throwsA(isA<AssertionError>()));
13+
});
1114
});
1215
}

test/bit/sub_test.dart

Lines changed: 60 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,67 @@ import 'package:dartoos/src/bit/sub.dart';
22
import 'package:test/test.dart';
33

44
void main() {
5-
test('Subtraction Operation', () {
5+
group('Subtraction Operation', (){
66
const ones = 0xFFFFFFFFFFFFFFFF;
77
const zeroes = 0x000000000000000;
8-
const sub = Sub();
9-
expect(sub(zeroes, zeroes), zeroes);
10-
expect(sub(ones, zeroes), ones);
11-
expect(sub(0, 1), ones); // -1
12-
expect(sub(0xaaaa, 0x4444), 0x6666);
13-
expect(sub(0, -1), 1);
8+
test('Default overflow semantics', () {
9+
const sub = Sub();
10+
expect(sub.value(zeroes, zeroes), zeroes);
11+
expect(sub(ones, zeroes), ones);
12+
expect(sub(0, 1), ones); // -1
13+
expect(sub(0xaaaa, 0x4444), 0x6666);
14+
expect(sub(0, -1), 1);
15+
});
16+
test('8 bits overflow semantics', () {
17+
const sub8 = Sub.w8();
18+
// 8 bits set to '1'
19+
const ones8 = 0xff;
20+
// overflow
21+
expect(sub8.value(ones8, 1), 0xfe);
22+
expect(sub8(0, -1), 1);
23+
24+
expect(sub8.value(zeroes, zeroes), zeroes);
25+
expect(sub8(zeroes, ones), 1);
26+
expect(sub8(ones, zeroes), 0xff);
27+
expect(sub8(0xaaaa, 0x4444), 0x66);
28+
});
29+
test('16 bits overflow semantics', () {
30+
const sub16 = Sub.w16();
31+
// 16 bits set to 1.
32+
const ones16 = 0xffff;
33+
34+
// overflow
35+
expect(sub16.value(ones16, 1), 0xfffe);
36+
expect(sub16(0, -1), 1);
37+
38+
expect(sub16(zeroes, zeroes), zeroes);
39+
expect(sub16(zeroes, ones), 1);
40+
expect(sub16(ones, zeroes), 0xffff);
41+
expect(sub16(0xaaaaaaaa, 0x44444444), 0x6666);
42+
});
43+
test('32 bits overflow semantics', () {
44+
const sub32 = Sub.w32();
45+
// 32 bits set to 1.
46+
const ones32 = 0xffffffff;
47+
// overflow
48+
expect(sub32.value(ones32, 1), 0xfffffffe);
49+
expect(sub32(0, -1), 1);
50+
51+
expect(sub32.value(zeroes, zeroes), zeroes);
52+
expect(sub32(zeroes, ones), 1);
53+
expect(sub32(ones, zeroes), 0xffffffff);
54+
expect(sub32(0xaaaaaaaaaaaaaaaa, 0x4444444444444444), 0x66666666);
55+
});
56+
test('64 bits overflow semantics', () {
57+
const sub64 = Sub.w64();
58+
// overflow
59+
expect(sub64.value(ones, 1), 0xfffffffffffffffe);
60+
expect(sub64(0, -1), 1);
61+
62+
expect(sub64.value(zeroes, zeroes), zeroes);
63+
expect(sub64(zeroes, ones), 1);
64+
expect(sub64(ones, zeroes), 0xffffffffffffffff);
65+
expect(sub64(0xaaaaaaaaaaaaaaaa, 0x4444444444444444), 0x6666666666666666);
66+
});
1467
});
1568
}

test/byte_test.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@ void main() {
1010
const data = [0x30, 0x31, 0x32];
1111
test('from list', () {
1212
expect(BytesOf.list(data).value, data);
13+
expect(BytesOf.list(data).call(), data);
1314
});
1415
test('from filled list', () {
1516
expect(BytesOf.filled(3, 0x00).value, [0x00, 0x00, 0x00]);
1617
});
1718
test('from utf8', () {
1819
final String str = utf8.decode(data);
19-
expect(BytesOf.utf8(str).value, data);
20+
expect(BytesOf.utf8(str)(), data);
2021
expect(BytesOf.utf8('abc').value, utf8.encode('abc'));
2122
});
2223
test('from string', () {

0 commit comments

Comments
 (0)