| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- using Invercargill;
- using Invercargill.DataStructures;
- void data_structures_tests() {
- Test.add_func("/invercargill/datastructures/buffer/simple", () => {
- var buffer = new Buffer<int>(5);
- buffer[0] = 1;
- buffer[1] = 2;
- buffer[2] = 3;
- buffer[3] = 4;
- buffer[4] = 5;
-
- assert(buffer.count() == 5);
- assert(buffer[0] == 1);
- assert(buffer[1] == 2);
- assert(buffer[2] == 3);
- assert(buffer[3] == 4);
- assert(buffer[4] == 5);
- });
- Test.add_func("/invercargill/datastructures/buffer/from_array", () => {
- var array = new int[] { 1, 2, 3, 4, 5 };
- var buffer = new Buffer<int>(5);
- for (int i = 0; i < array.length; i++) {
- buffer[i] = array[i];
- }
-
- assert(buffer.count() == 5);
- for (int i = 0; i < 5; i++) {
- assert(buffer[i] == array[i]);
- }
- });
- Test.add_func("/invercargill/datastructures/immutable_buffer/simple", () => {
- var array = new int[] { 1, 2, 3, 4, 5 };
- var buffer = new ImmutableBuffer<int>(Wrap.array(array));
-
- assert(buffer.count() == 5);
- for (int i = 0; i < 5; i++) {
- assert(buffer[i] == array[i]);
- }
- });
- Test.add_func("/invercargill/datastructures/ring_buffer/simple", () => {
- var buffer = new RingBuffer<int>(3);
- buffer[0] = 1;
- buffer[1] = 2;
- buffer[2] = 3;
-
- assert(buffer.count() == 3);
- assert(buffer[0] == 1);
- assert(buffer[1] == 2);
- assert(buffer[2] == 3);
- });
- Test.add_func("/invercargill/datastructures/ring_buffer/overflow", () => {
- var buffer = new RingBuffer<int>(3);
- buffer[0] = 1;
- buffer[1] = 2;
- buffer[2] = 3;
- buffer[3] = 4; // Should overwrite 1
-
- assert(buffer.count() == 3);
- assert(buffer[0] == 4);
- assert(buffer[1] == 2);
- assert(buffer[2] == 3);
- });
- Test.add_func("/invercargill/datastructures/ring_buffer/from_array", () => {
- var array = new int[] { 1, 2, 3, 4, 5 };
- var buffer = new RingBuffer<int>(5);
- for (int i = 0; i < array.length; i++) {
- buffer[i] = array[i];
- }
-
- assert(buffer.count() == 5);
- for (int i = 0; i < 5; i++) {
- assert(buffer[i] == array[i]);
- }
- });
- Test.add_func("/invercargill/datastructures/byte_buffer/from_byte_array", () => {
- var array = new uint8[] { 1, 2, 3, 4, 5 };
- var buffer = new ByteBuffer.from_byte_array(array);
-
- assert(buffer.length == 5);
- for (int i = 0; i < 5; i++) {
- assert(buffer[i] == array[i]);
- }
- });
- Test.add_func("/invercargill/datastructures/byte_buffer/from_bytes", () => {
- var bytes = new Bytes.take(new uint8[] { 1, 2, 3, 4, 5 });
- var buffer = new ByteBuffer.from_bytes(bytes);
-
- assert(buffer.length == 5);
- for (int i = 0; i < 5; i++) {
- assert(buffer[i] == i + 1);
- }
- });
- Test.add_func("/invercargill/datastructures/byte_buffer/from_base64", () => {
- var base64 = "AQIDBAU="; // [1, 2, 3, 4, 5] in base64
- var buffer = new ByteBuffer.from_base64(base64);
-
- assert(buffer.length == 5);
- for (int i = 0; i < 5; i++) {
- assert(buffer[i] == i + 1);
- }
- });
- Test.add_func("/invercargill/datastructures/byte_buffer/to_byte_array", () => {
- var array = new uint8[] { 1, 2, 3, 4, 5 };
- var buffer = new ByteBuffer.from_byte_array(array);
- var result = buffer.to_array();
-
- assert(result.length == array.length);
- for (int i = 0; i < array.length; i++) {
- assert(result[i] == array[i]);
- }
- });
- Test.add_func("/invercargill/datastructures/byte_buffer/to_bytes", () => {
- var array = new uint8[] { 1, 2, 3, 4, 5 };
- var buffer = new ByteBuffer.from_byte_array(array);
- var result = buffer.to_bytes();
-
- assert(result.get_size() == array.length);
- var data = result.get_data();
- for (int i = 0; i < array.length; i++) {
- assert(data[i] == array[i]);
- }
- });
- Test.add_func("/invercargill/datastructures/byte_buffer/to_base64", () => {
- var array = new uint8[] { 1, 2, 3, 4, 5 };
- var buffer = new ByteBuffer.from_byte_array(array);
- var result = buffer.to_base64();
-
- assert(result == "AQIDBAU=");
- });
- Test.add_func("/invercargill/datastructures/byte_buffer/concat", () => {
- var array1 = new uint8[] { 1, 2, 3 };
- var array2 = new uint8[] { 4, 5 };
- var buffer1 = new ByteBuffer.from_byte_array(array1);
- var buffer2 = new ByteBuffer.from_byte_array(array2);
- var result = buffer1.concat(buffer2);
-
- assert(result.count() == 5);
- });
- // Subbuffer test skipped - method does not exist in API
- Test.add_func("/invercargill/datastructures/byte_buffer/equality", () => {
- var array1 = new uint8[] { 1, 2, 3, 4, 5 };
- var array2 = new uint8[] { 1, 2, 3, 4, 5 };
- var array3 = new uint8[] { 1, 2, 3, 4, 6 };
-
- var buffer1 = new ByteBuffer.from_byte_array(array1);
- var buffer2 = new ByteBuffer.from_byte_array(array2);
- var buffer3 = new ByteBuffer.from_byte_array(array3);
-
- assert(buffer1.equals(buffer2));
- assert(!buffer1.equals(buffer3));
- });
- Test.add_func("/invercargill/datastructures/byte_buffer/hash", () => {
- var array1 = new uint8[] { 1, 2, 3, 4, 5 };
- var array2 = new uint8[] { 1, 2, 3, 4, 5 };
-
- var buffer1 = new ByteBuffer.from_byte_array(array1);
- var buffer2 = new ByteBuffer.from_byte_array(array2);
-
- assert(buffer1.hash_code() == buffer2.hash_code());
- });
- }
|