twonly-app-dependencies/libsignal_protocol_dart/test/util/byte_util_test.dart
2025-12-07 16:10:41 +01:00

113 lines
3.8 KiB
Dart

import 'dart:typed_data';
import 'package:libsignal_protocol_dart/src/util/byte_util.dart';
import 'package:test/test.dart';
void main() {
test('ByteUtil.combime() combile multi Uintlist8 into 1', () {
final first = Uint8List.fromList([1]);
final second = Uint8List.fromList([2, 3]);
final third = Uint8List.fromList([4, 5]);
final other = Uint8List.fromList([1, 2, 3, 4, 5]);
expect(ByteUtil.combine([first, second, third]), other);
});
test('ByteUtil.shortToByteArray() convert short to UintList8', () {
const value1 = 100;
expect(ByteUtil.shortToByteArray(value1), Uint8List.fromList([0, 100]));
const value2 = 1024;
expect(ByteUtil.shortToByteArray(value2), Uint8List.fromList([4, 1024]));
});
test('ByteUtil.intToByteArray() convert int to UintList8', () {
const value1 = 100;
expect(ByteUtil.intToByteArray(value1), Uint8List.fromList([0, 0, 0, 100]));
const value2 = 1024;
expect(ByteUtil.intToByteArray(value2), Uint8List.fromList([0, 0, 4, 0]));
});
test('ByteUtil.trim() sublist Uint8List from 0 to specification length', () {
final input = Uint8List.fromList([1, 2, 3, 4, 5]);
expect(ByteUtil.trim(input, 3), Uint8List.fromList([1, 2, 3]));
expect(ByteUtil.trim(input, 0), Uint8List.fromList([]));
});
test('ByteUtil.split() splits the string to three length', () {
final input = Uint8List.fromList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
final first = Uint8List.fromList([1]);
final second = Uint8List.fromList([2, 3]);
final third = Uint8List.fromList([4, 5, 6, 7, 8, 9]);
expect(ByteUtil.split(input, 1, 2, 6), [first, second, third]);
});
test('ByteUtil.splitTwo() splits the string to two length', () {
final input = Uint8List.fromList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
final first = Uint8List.fromList([1]);
final second = Uint8List.fromList([2, 3, 4, 5, 6, 7]);
expect(ByteUtil.splitTwo(input, 1, 6), [first, second]);
});
test('String.trim() removes surrounding whitespace', () {
const string = ' foo ';
expect(string.trim(), equals('foo'));
});
test('ByteUtil.intsToByteHighAndLow()', () {
const highValue1 = 4;
const lowValue1 = 2;
expect(ByteUtil.intsToByteHighAndLow(highValue1, lowValue1), 66);
const highValue2 = 2;
const lowValue2 = 4;
expect(ByteUtil.intsToByteHighAndLow(highValue2, lowValue2), 36);
const highValue3 = 3;
const lowValue3 = 3;
expect(ByteUtil.intsToByteHighAndLow(highValue3, lowValue3), 51);
});
test('ByteUtil.highBitsToInt', () {
const int1 = 16;
expect(ByteUtil.highBitsToInt(int1), 1);
const int2 = 35;
expect(ByteUtil.highBitsToInt(int2), 2);
const int3 = 100;
expect(ByteUtil.highBitsToInt(int3), 6);
});
test('ByteUtil.lowBitsToInt', () {
const int1 = 16;
expect(ByteUtil.lowBitsToInt(int1), 0);
const int2 = 35;
expect(ByteUtil.lowBitsToInt(int2), 3);
const int3 = 100;
expect(ByteUtil.lowBitsToInt(int3), 4);
});
test('ByteUtil.highBitsToMedium', () {
const int1 = 16;
expect(ByteUtil.highBitsToMedium(int1), 0);
const int2 = 35;
expect(ByteUtil.highBitsToMedium(int2), 0);
const int3 = 100;
expect(ByteUtil.highBitsToMedium(int3), 0);
const int4 = 10000;
expect(ByteUtil.highBitsToMedium(int4), 2);
});
test('ByteUtil.lowBitsToMedium', () {
const int1 = 16;
expect(ByteUtil.lowBitsToMedium(int1), 16);
const int2 = 35;
expect(ByteUtil.lowBitsToMedium(int2), 35);
const int3 = 100;
expect(ByteUtil.lowBitsToMedium(int3), 100);
const int4 = 10000;
expect(ByteUtil.lowBitsToMedium(int4), 1808);
});
test('ByteUtil.byteArray5ToLong', () {
// ignore: unused_local_variable
final input = Uint8List.fromList(
[1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
// TODO
});
}