From ca0af3306f6aac5806e12d02e98d59b38638e336 Mon Sep 17 00:00:00 2001 From: BodgeMaster <> Date: Fri, 14 Oct 2022 22:58:59 +0200 Subject: [PATCH] test/nbt_tags: Implement Int64Array test My arm hurts. My back huts. Man, that was exhausting. Finally done. --- src/test/nbt_tags.cpp | 257 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 257 insertions(+) diff --git a/src/test/nbt_tags.cpp b/src/test/nbt_tags.cpp index 46a3246..a184602 100644 --- a/src/test/nbt_tags.cpp +++ b/src/test/nbt_tags.cpp @@ -1260,5 +1260,262 @@ int main(){ std::cout << "Passed Int32Array test." << std::endl; + // INT64_ARRAY ############################################################# + std::vector int64DataVector = std::vector(); + int64DataVector.push_back(-9223372036854775808); + int64DataVector.push_back(9223372036854775807); + int64DataVector.push_back(0); + + NBT::Tag::Int64Array int64a_0 = NBT::Tag::Int64Array(); + int64a_0.name = "int64a_0"; + int64a_0.setData(int64DataVector); + NBT::Tag::Int64Array int64a_1 = NBT::Tag::Int64Array("int64a_1", int64DataVector); + NBT::Tag::Int64Array int64a_2 = NBT::Tag::Int64Array("int64a_2", int64DataVector.size(), int64DataVector.data()); + ASSERT(int64a_0.getTagType() == 12 && int64a_1.getTagType() == 12 && int64a_2.getTagType() == 12); + ASSERT( + int64a_0.getData() == int64a_1.getData() && + int64a_1.getData() == int64a_2.getData() + ); + ASSERT( + !int64a_0.getValue(0).isError && + !int64a_1.getValue(1).isError && + !int64a_2.getValue(2).isError + ); + ASSERT(int64a_0.getValue(3).isError); + ASSERT(int64a_2.getValue(3).errorCode == ErrorCodes::OUT_OF_RANGE); + int64a_1.addElement(-9223372036854775807); + resultGood = int64a_2.removeElement(1); + resultError = int64a_2.removeElement(2); + ASSERT(!resultGood.isError && resultError.isError && resultError.errorCode==ErrorCodes::OUT_OF_RANGE); + resultGood = int64a_2.setValue(1, 15); + resultError = int64a_2.setValue(2, 7); + ASSERT(!resultGood.isError && resultError.isError && resultError.errorCode==ErrorCodes::OUT_OF_RANGE); + ASSERT( + int64a_0.length()==3 && + int64a_1.length()==4 && + int64a_2.length()==2 + ); + ASSERT( + !int64a_0.serialize(&vector).isError && + !int64a_1.serialize(&vector).isError && + !int64a_2.serialize(&vector).isError + ); + ASSERT(vector.size() == 117); + ASSERT( + vector.at( 0) == 12 && + vector.at( 1) == 0 && + vector.at( 2) == 8 && + vector.at( 3) == 'i' && + vector.at( 4) == 'n' && + vector.at( 5) == 't' && + vector.at( 6) == '6' && + vector.at( 7) == '4' && + vector.at( 8) == 'a' && + vector.at( 9) == '_' && + vector.at( 10) == '0' && + vector.at( 11) == 0 && + vector.at( 12) == 0 && + vector.at( 13) == 0 && + vector.at( 14) == 3 && + vector.at( 15) == 0x80 && + vector.at( 16) == 0x00 && + vector.at( 17) == 0x00 && + vector.at( 18) == 0x00 && + vector.at( 19) == 0x00 && + vector.at( 20) == 0x00 && + vector.at( 21) == 0x00 && + vector.at( 22) == 0x00 && + vector.at( 23) == 0x7F && + vector.at( 24) == 0xFF && + vector.at( 25) == 0xFF && + vector.at( 26) == 0xFF && + vector.at( 27) == 0xFF && + vector.at( 28) == 0xFF && + vector.at( 29) == 0xFF && + vector.at( 30) == 0xFF && + vector.at( 31) == 0x00 && + vector.at( 32) == 0x00 && + vector.at( 33) == 0x00 && + vector.at( 34) == 0x00 && + vector.at( 35) == 0x00 && + vector.at( 36) == 0x00 && + vector.at( 37) == 0x00 && + vector.at( 38) == 0x00 && + vector.at( 39) == 12 && + vector.at( 40) == 0 && + vector.at( 41) == 8 && + vector.at( 42) == 'i' && + vector.at( 43) == 'n' && + vector.at( 44) == 't' && + vector.at( 45) == '6' && + vector.at( 46) == '4' && + vector.at( 47) == 'a' && + vector.at( 48) == '_' && + vector.at( 49) == '1' && + vector.at( 50) == 0 && + vector.at( 51) == 0 && + vector.at( 52) == 0 && + vector.at( 53) == 4 && + vector.at( 54) == 0x80 && + vector.at( 55) == 0x00 && + vector.at( 56) == 0x00 && + vector.at( 57) == 0x00 && + vector.at( 58) == 0x00 && + vector.at( 59) == 0x00 && + vector.at( 60) == 0x00 && + vector.at( 61) == 0x00 && + vector.at( 62) == 0x7F && + vector.at( 63) == 0xFF && + vector.at( 64) == 0xFF && + vector.at( 65) == 0xFF && + vector.at( 66) == 0xFF && + vector.at( 67) == 0xFF && + vector.at( 68) == 0xFF && + vector.at( 69) == 0xFF && + vector.at( 70) == 0x00 && + vector.at( 71) == 0x00 && + vector.at( 72) == 0x00 && + vector.at( 73) == 0x00 && + vector.at( 74) == 0x00 && + vector.at( 75) == 0x00 && + vector.at( 76) == 0x00 && + vector.at( 77) == 0x00 && + vector.at( 78) == 0x80 && + vector.at( 79) == 0x00 && + vector.at( 80) == 0x00 && + vector.at( 81) == 0x00 && + vector.at( 82) == 0x00 && + vector.at( 83) == 0x00 && + vector.at( 84) == 0x00 && + vector.at( 85) == 0x01 && + vector.at( 86) == 12 && + vector.at( 87) == 0 && + vector.at( 88) == 8 && + vector.at( 89) == 'i' && + vector.at( 90) == 'n' && + vector.at( 91) == 't' && + vector.at( 92) == '6' && + vector.at( 93) == '4' && + vector.at( 94) == 'a' && + vector.at( 95) == '_' && + vector.at( 96) == '2' && + vector.at( 97) == 0 && + vector.at( 98) == 0 && + vector.at( 99) == 0 && + vector.at(100) == 2 && + vector.at(101) == 0x80 && + vector.at(102) == 0x00 && + vector.at(103) == 0x00 && + vector.at(104) == 0x00 && + vector.at(105) == 0x00 && + vector.at(106) == 0x00 && + vector.at(107) == 0x00 && + vector.at(108) == 0x00 && + vector.at(109) == 0x00 && + vector.at(110) == 0x00 && + vector.at(111) == 0x00 && + vector.at(112) == 0x00 && + vector.at(113) == 0x00 && + vector.at(114) == 0x00 && + vector.at(115) == 0x00 && + vector.at(116) == 0x0F + ); + vector.clear(); + ASSERT( + !int64a_0.serializeWithoutHeader(&vector).isError && + !int64a_1.serializeWithoutHeader(&vector).isError && + !int64a_2.serializeWithoutHeader(&vector).isError + ); + ASSERT(vector.size() == 84); + ASSERT( + vector.at( 0) == 0 && + vector.at( 1) == 0 && + vector.at( 2) == 0 && + vector.at( 3) == 3 && + vector.at( 4) == 0x80 && + vector.at( 5) == 0x00 && + vector.at( 6) == 0x00 && + vector.at( 7) == 0x00 && + vector.at( 8) == 0x00 && + vector.at( 9) == 0x00 && + vector.at(10) == 0x00 && + vector.at(11) == 0x00 && + vector.at(12) == 0x7F && + vector.at(13) == 0xFF && + vector.at(14) == 0xFF && + vector.at(15) == 0xFF && + vector.at(16) == 0xFF && + vector.at(17) == 0xFF && + vector.at(18) == 0xFF && + vector.at(19) == 0xFF && + vector.at(20) == 0x00 && + vector.at(21) == 0x00 && + vector.at(22) == 0x00 && + vector.at(23) == 0x00 && + vector.at(24) == 0x00 && + vector.at(25) == 0x00 && + vector.at(26) == 0x00 && + vector.at(27) == 0x00 && + vector.at(28) == 0 && + vector.at(29) == 0 && + vector.at(30) == 0 && + vector.at(31) == 4 && + vector.at(32) == 0x80 && + vector.at(33) == 0x00 && + vector.at(34) == 0x00 && + vector.at(35) == 0x00 && + vector.at(36) == 0x00 && + vector.at(37) == 0x00 && + vector.at(38) == 0x00 && + vector.at(39) == 0x00 && + vector.at(40) == 0x7F && + vector.at(41) == 0xFF && + vector.at(42) == 0xFF && + vector.at(43) == 0xFF && + vector.at(44) == 0xFF && + vector.at(45) == 0xFF && + vector.at(46) == 0xFF && + vector.at(47) == 0xFF && + vector.at(48) == 0x00 && + vector.at(49) == 0x00 && + vector.at(50) == 0x00 && + vector.at(51) == 0x00 && + vector.at(52) == 0x00 && + vector.at(53) == 0x00 && + vector.at(54) == 0x00 && + vector.at(55) == 0x00 && + vector.at(56) == 0x80 && + vector.at(57) == 0x00 && + vector.at(58) == 0x00 && + vector.at(59) == 0x00 && + vector.at(60) == 0x00 && + vector.at(61) == 0x00 && + vector.at(62) == 0x00 && + vector.at(63) == 0x01 && + vector.at(64) == 0 && + vector.at(65) == 0 && + vector.at(66) == 0 && + vector.at(67) == 2 && + vector.at(68) == 0x80 && + vector.at(69) == 0x00 && + vector.at(70) == 0x00 && + vector.at(71) == 0x00 && + vector.at(72) == 0x00 && + vector.at(73) == 0x00 && + vector.at(74) == 0x00 && + vector.at(75) == 0x00 && + vector.at(76) == 0x00 && + vector.at(77) == 0x00 && + vector.at(78) == 0x00 && + vector.at(79) == 0x00 && + vector.at(80) == 0x00 && + vector.at(81) == 0x00 && + vector.at(82) == 0x00 && + vector.at(83) == 0x0F + ); + vector.clear(); + std::cout << "Passed Int64Array test." << std::endl; + + return 0; }