Skip to content

Commit 4d44c3a

Browse files
committed
chore: add failed test
1 parent c281d4a commit 4d44c3a

File tree

2 files changed

+52
-1
lines changed

2 files changed

+52
-1
lines changed

test/lt-blocks.test.ts

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import { expect, it } from 'vitest'
2+
import { createDecoder, createEncoder } from '../utils/lt-codes'
3+
4+
function randomBuffer(length: number) {
5+
return new Uint8Array(length).map(() => Math.floor(Math.random() * 256))
6+
}
7+
8+
function createEncoderWithIndices(count: number) {
9+
const buffer = randomBuffer(count * 100 - 5)
10+
const encoder = createEncoder(buffer, 100)
11+
expect(encoder.k).toBe(count)
12+
13+
return {
14+
buffer,
15+
encoder,
16+
}
17+
}
18+
19+
it('cross-blocks resolving 1', () => {
20+
const { buffer, encoder } = createEncoderWithIndices(3)
21+
22+
const decoder = createDecoder()
23+
decoder.addBlock(encoder.createBlock([0, 1, 2]))
24+
decoder.addBlock(encoder.createBlock([1, 2]))
25+
// Here we know [0]
26+
decoder.addBlock(encoder.createBlock([0, 2]))
27+
28+
const data = decoder.getDecoded()
29+
expect(data).toBeDefined()
30+
expect(data).toEqual(buffer)
31+
})
32+
33+
it('cross-blocks resolving 2', () => {
34+
const { buffer, encoder } = createEncoderWithIndices(5)
35+
36+
const decoder = createDecoder()
37+
decoder.addBlock(encoder.createBlock([0, 1, 2, 3, 4]))
38+
decoder.addBlock(encoder.createBlock([0, 1]))
39+
expect(decoder.decodedCount).toBe(0)
40+
// Here we know [0, 1] and [2, 3, 4]
41+
decoder.addBlock(encoder.createBlock([2, 3]))
42+
// Here we can have [4]
43+
expect(decoder.decodedCount).toBe(1)
44+
decoder.addBlock(encoder.createBlock([1]))
45+
// Here we can have [0] and [1]
46+
expect(decoder.decodedCount).toBe(3)
47+
decoder.addBlock(encoder.createBlock([4]))
48+
49+
const data = decoder.getDecoded()
50+
expect(data).toBeDefined()
51+
expect(data).toEqual(buffer)
52+
})

utils/lt-codes.ts

-1
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,6 @@ export class LtDecoder {
249249
this.decodedData[indices[0]!] = block.data
250250
this.decodedCount++
251251
this.encodedBlocks.delete(block)
252-
console.log('decoded', indices[0]!, data.slice(0, 5))
253252
updated = true
254253
}
255254
}

0 commit comments

Comments
 (0)