Add Bencode function operation

This commit is contained in:
jg42526 2025-05-12 15:24:44 +00:00
parent 7ecf8dfdaa
commit d8d594a493
8 changed files with 299 additions and 1 deletions

View file

@ -26,6 +26,8 @@ import "./tests/Base64.mjs";
import "./tests/Base85.mjs";
import "./tests/Base92.mjs";
import "./tests/BCD.mjs";
import "./tests/BencodeEncode.mjs";
import "./tests/BencodeDecode.mjs";
import "./tests/BitwiseOp.mjs";
import "./tests/BLAKE2b.mjs";
import "./tests/BLAKE2s.mjs";

View file

@ -0,0 +1,66 @@
/**
* Bencode Encode tests.
*
* @author jg42526
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
import TestRegister from "../../lib/TestRegister.mjs";
TestRegister.addTests([
{
name: "Bencode Decode: nothing",
input: "",
expectedOutput: "",
recipeConfig: [
{
"op": "Bencode Decode",
"args": []
}
]
},
{
name: "Bencode Decode: integer",
input: "i42e",
expectedOutput: "42",
recipeConfig: [
{
"op": "Bencode Decode",
"args": []
}
]
},
{
name: "Bencode Decode: byte string",
input: "7:bencode",
expectedOutput: "bencode",
recipeConfig: [
{
"op": "Bencode Decode",
"args": []
}
]
},
{
name: "Bencode Decode: list",
input: "l7:bencodei-20ee",
expectedOutput: `["bencode",-20]`,
recipeConfig: [
{
"op": "Bencode Decode",
"args": []
}
]
},
{
name: "Bencode Decode: dictionary",
input: "d7:meaningi42e4:wiki7:bencodee",
expectedOutput: `{"meaning":42,"wiki":"bencode"}`,
recipeConfig: [
{
"op": "Bencode Decode",
"args": []
}
]
},
]);

View file

@ -0,0 +1,72 @@
/**
* Bencode Encode tests.
*
* @author jg42526
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
import TestRegister from "../../lib/TestRegister.mjs";
TestRegister.addTests([
{
name: "Bencode Encode: nothing",
input: "",
expectedOutput: "0:",
recipeConfig: [
{
"op": "Bencode Encode",
"args": []
}
]
},
{
name: "Bencode Encode: integer",
input: "42",
expectedOutput: "i42e",
recipeConfig: [
{
"op": "Bencode Encode",
"args": []
}
]
},
{
name: "Bencode Encode: byte string",
input: "bencode",
expectedOutput: "7:bencode",
recipeConfig: [
{
"op": "Bencode Encode",
"args": []
}
]
},
{
name: "Bencode Encode: list",
input: `[
"bencode",
-20
]`,
expectedOutput: "l7:bencodei-20ee",
recipeConfig: [
{
"op": "Bencode Encode",
"args": []
}
]
},
{
name: "Bencode Encode: dictionary",
input: `{
"meaning": 42,
"wiki": "bencode"
}`,
expectedOutput: "d7:meaningi42e4:wiki7:bencodee",
recipeConfig: [
{
"op": "Bencode Encode",
"args": []
}
]
},
]);