Passed
Push — master ( 17b1a9...6a1a74 )
by Rafael S.
01:24
created

bytes LE (1s)ꞌ)   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 5
rs 9.4285
c 0
b 0
f 0
1
2
var assert = require('assert');
3
4
describe('little endiand and big endian reading', function() {
5
    
6
    let byteData = require('../../index.js');
7
8
    // 16-bit
9
    it('should turn 2 16-bit signed ints to 2 bytes BE (0s)', function() {
10
        assert.deepEqual(byteData.intFrom2Bytes([0, 0, 0, 0], 10, true),
11
            [0, 0]);
12
    });
13
    it('should turn 2 16-bit signed ints to 2 bytes LE (1s)', function() {
14
        assert.deepEqual(byteData.intFrom2Bytes([1, 0, 1, 0]),
15
            [1, 1]);
16
    });
17
    it('should turn 2 16-bit signed ints to 2 bytes BE (1s)', function() {
18
        assert.deepEqual(byteData.intFrom2Bytes([0, 1, 0, 1], 10, true),
19
            [1, 1]);
20
    });
21
    it('should turn 1 16-bit unsigned ints to 2 bytes BE (1s)', function() {
22
        assert.deepEqual(byteData.uIntFrom2Bytes([0, 1], 10, true),
23
            [1]);
24
    });
25
    it('should turn 2 bytes hex to 1 16-bit float BE (1/3)', function() {
26
        assert.deepEqual(byteData.floatFrom2Bytes(
27
            ["55", "35"], 16, true)[0].toFixed(5),
28
            0.33325);
29
    });
30
31
    // 24-bit
32
    it('should turn 2 24-bit signed ints to 6 bytes BE (0s)', function() {
33
        assert.deepEqual(byteData.intFrom3Bytes([0, 0, 0, 0, 0, 0], 10, true),
34
            [0, 0]);
35
    });
36
    it('should turn 2 24-bit signed ints to 6 bytes LE (1s)', function() {
37
        assert.deepEqual(byteData.intFrom3Bytes([1, 0, 0, 1, 0, 0]),
38
            [1, 1]);
39
    });
40
    it('should turn 2 24-bit signed ints to 6 bytes BE (1s)', function() {
41
        assert.deepEqual(byteData.intFrom3Bytes([0, 0, 1, 0, 0, 1], 10, true),
42
            [1, 1]);
43
    });
44
    it('should turn 1 24-bit unsigned int to 3 bytes BE (8388607)', function() {
45
        assert.deepEqual(byteData.uIntFrom3Bytes(["7f", "ff", "ff"], 16, true),
46
            [8388607]);
47
    });
48
    it('should turn 2 24-bit signed ints to 6 bytes BE (max range)', function() {
49
        assert.deepEqual(byteData.intFrom3Bytes(["80","00","00", "7f", "ff", "ff"], 16, true),
50
            [-8388608, 8388607]);
51
    });
52
    it('should turn 2 24-bit signed ints to 6 bytes BE', function() {
53
        assert.deepEqual(byteData.intFrom3Bytes(["80","00","00" , "00","00","01", "7f", "ff", "ff"], 16, true),
54
            [-8388608, 1, 8388607]);
55
    });
56
57
    // 32-bit
58
    it('should turn 2 32-bit signed ints to 8 bytes BE (0s)', function() {
59
        assert.deepEqual(byteData.intFrom4Bytes([0, 0, 0, 0, 0, 0, 0, 0], 10, true),
60
            [0, 0]);
61
    });
62
    it('should turn 2 32-bit signed ints to 8 bytes LE (1s)', function() {
63
        assert.deepEqual(byteData.intFrom4Bytes([1, 0, 0, 0, 1, 0, 0, 0]),
64
            [1, 1]);
65
    });
66
    it('should turn 2 32-bit signed ints to 8 bytes BE (1s)', function() {
67
        assert.deepEqual(byteData.intFrom4Bytes([0, 0, 0, 1, 0,0, 0, 1], 10, true),
68
            [1, 1]);
69
    });
70
    it('should turn 1 32-bit signed ints to 4 bytes BE (1s)', function() {
71
        assert.deepEqual(byteData.uIntFrom4Bytes([0, 0, 0, 1], 10, true),
72
            [1]);
73
    });
74
    it('should turn 8 bytes hex to 2 32-bit ints (max range)', function() {
75
        assert.deepEqual(byteData.intFrom4Bytes(
76
            ["80","0","0","0", "7f","ff","ff","ff"], 16, true),
77
            [-2147483648,2147483647]);
78
    });
79
    it('should turn 1 32-bit float from 4 bytes BE hex (1s)', function() {
80
        assert.deepEqual(byteData.floatFrom4Bytes(
81
            ["40","9","70","5f"], 16, true)[0].toFixed(7),
82
            2.1474836);
83
    });
84
85
    // 40-bit
86
    it('should turn 2 40-bit signed ints to 10 bytes BE (0s)', function() {
87
        assert.deepEqual(byteData.intFrom5Bytes([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 10, true),
88
            [0, 0]);
89
    });
90
    it('should turn 2 40-bit signed ints to 10 bytes LE (1s)', function() {
91
        assert.deepEqual(byteData.intFrom5Bytes([1, 0, 0, 0, 0, 1, 0, 0, 0, 0]),
92
            [1, 1]);
93
    });
94
    it('should turn 2 40-bit signed ints to 10 bytes BE (1s)', function() {
95
        assert.deepEqual(byteData.intFrom5Bytes([0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 10, true),
96
            [1, 1]);
97
    });
98
    it('should turn 1 40-bit signed ints to 10 bytes LE (1s)', function() {
99
        assert.deepEqual(byteData.intFrom5Bytes(
100
            [1, 0, 0, 0, 0], 10),
101
            [1]);
102
    });
103
    it('should turn 5 bytes (hex) to 1 unsigned 40-bit int (149515627075)',
104
            function() {
105
        assert.deepEqual(byteData.uIntFrom5Bytes(
106
            ["22","cf","d3","6a","43"], 16, true),
107
            [149515627075]);
108
    });
109
110
    // 48-bit
111
    it('should turn 2 48-bit ints to 12 bytes BE (0s)', function() {
112
        assert.deepEqual(byteData.intFrom6Bytes([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 10, true),
113
            [0, 0]);
114
    });
115
    it('should turn 2 48-bit ints to 12 bytes LE (1s)', function() {
116
        assert.deepEqual(byteData.intFrom6Bytes([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]),
117
            [1, 1]);
118
    });
119
    it('should turn 2 48-bit ints to 12 bytes BE (1s)', function() {
120
        assert.deepEqual(byteData.intFrom6Bytes([0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], 10, true),
121
            [1, 1]);
122
    });
123
    it('should turn 2 48-bit unsigned ints to 12 bytes BE (1s)', function() {
124
        assert.deepEqual(byteData.uIntFrom6Bytes([0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], 10, true),
125
            [1, 1]);
126
    });
127
    it('should turn 1 48-bit ints to 6 bytes hex BE (120637438355317)', function() {
128
        assert.deepEqual(byteData.intFrom6Bytes(["6d", "b8", "17", "a8", "e7", "75"], 16, 2),
129
            [120637438355317]);
130
    });
131
    it('should turn 1 48-bit unsigned ints to 6 bytes hex BE (120637438355317)', function() {
132
        let bytes = ["6d", "b8", "17", "a8", "e7", "75", 
133
            "00", "00", "00", "00", "00", "01", 
134
            "00", "00", "00", "00", "00", "01"];
135
        assert.deepEqual(byteData.intFrom6Bytes(bytes, 16, 2),
136
            [120637438355317, 1, 1]);
137
    });
138
139
    // 64-bit
140
    it('should turn 1 64-bit float to 8 bytes BE (pi)', function() {
141
        assert.deepEqual(byteData.floatFrom8Bytes([64, 9, 33, 251, 84, 68, 45, 24], 10, true),
142
            [3.141592653589793]);
143
    });
144
});
145