added tests for tbel doc examples

This commit is contained in:
IrynaMatveieva 2025-05-15 20:38:58 +03:00
parent 26c9c565b1
commit d1eec11d9d

View File

@ -1091,6 +1091,24 @@ class TbelInvokeDocsIoTest extends AbstractTbelInvokeTest {
assertEquals(expected, actual);
}
@Test
public void toInt_Test() throws ExecutionException, InterruptedException {
msgStr = "{}";
decoderStr = """
return{
toInt1: toInt(0.3),
toInt2: toInt(0.5),
toInt3: toInt(2.7)
}
""";
LinkedHashMap<String, Object> expected = new LinkedHashMap<>();
expected.put("toInt1", 0);
expected.put("toInt2", 1);
expected.put("toInt3", 3);
Object actual = invokeScript(evalScript(decoderStr), msgStr);
assertEquals(expected, actual);
}
@Test
public void stringToBytesBinaryString_Test() throws ExecutionException, InterruptedException {
String base64Str = "eyJoZWxsbyI6ICJ3b3JsZCJ9";
@ -1173,7 +1191,9 @@ class TbelInvokeDocsIoTest extends AbstractTbelInvokeTest {
"decimal": isDecimal("4567039"),
"notDecimal": isDecimal("C100110"),
"hexadecimal": isHexadecimal("F5D7039"),
"notHexadecimal": isHexadecimal("K100110")
"notHexadecimal": isHexadecimal("K100110"),
"nan": isNaN(0.0 / 0.0),
"number": isNaN(1.0)
}
""";
LinkedHashMap<String, Object> expected = new LinkedHashMap<>();
@ -1185,6 +1205,8 @@ class TbelInvokeDocsIoTest extends AbstractTbelInvokeTest {
expected.put("notDecimal", -1);
expected.put("hexadecimal", 16);
expected.put("notHexadecimal", -1);
expected.put("nan", true);
expected.put("number", false);
Object actual = invokeScript(evalScript(decoderStr), msgStr);
assertEquals(expected, actual);
}
@ -1460,7 +1482,6 @@ class TbelInvokeDocsIoTest extends AbstractTbelInvokeTest {
"bytesLongToDouble1": parseBytesLongToDouble(coordinatesasBytes, offsetLatLong, 8, false) / factor,
"bytesLongToDouble2": parseBytesLongToDouble(coordinatesasBytes, offsetLatLong + 8, 8, false) / factor,
"bytesLongToExecutionArrayList": bytesToExecutionArrayList(bytesExecutionArrayList)
}
""";
LinkedHashMap<String, Object> expected = new LinkedHashMap<>();
@ -1512,7 +1533,7 @@ class TbelInvokeDocsIoTest extends AbstractTbelInvokeTest {
expected.put("hexToBytes", bytesToList(new byte[]{1, 117, 43, 3, 103, -6, 0, 5, 0, 1, 4, -120, -1, -1, -1, -1, -1, -1, -1, -1, 51}));
// [-86, -69, -52, -35, -18] == new byte[]{(byte) 0xAA, (byte) 0xBB, (byte) 0xCC, (byte) 0xDD, (byte) 0xEE}
expected.put("hexToBytesArray", bytesToList(new byte[]{(byte) 0xAA, (byte) 0xBB, (byte) 0xCC, (byte) 0xDD, (byte) 0xEE}));
assertEquals( expected, actual);
assertEquals(expected, actual);
}
// parseBinaryArray
@ -1769,6 +1790,7 @@ class TbelInvokeDocsIoTest extends AbstractTbelInvokeTest {
Object actual = invokeScript(evalScript(decoderStr), msgStr);
assertEquals(expected, actual);
}
@Test
public void bitwiseOperationsMix_Test() throws ExecutionException, InterruptedException {
msgStr = "{}";
@ -2425,6 +2447,42 @@ class TbelInvokeDocsIoTest extends AbstractTbelInvokeTest {
assertFalse((Boolean) actual);
}
@Test
public void isInsidePolygon_Test() throws ExecutionException, InterruptedException {
msgStr = "{}";
decoderStr = """
String perimeter = "[[[37.7810,-122.4210],[37.7890,-122.3900],[37.7700,-122.3800],[37.7600,-122.4000],[37.7700,-122.4250],[37.7810,-122.4210]],[[37.7730,-122.4050],[37.7700,-122.3950],[37.7670,-122.3980],[37.7690,-122.4100],[37.7730,-122.4050]]]";
return{
outsidePolygon: isInsidePolygon(37.8000, -122.4300, perimeter),
insidePolygon: isInsidePolygon(37.7725, -122.4010, perimeter),
insideHole: isInsidePolygon(37.7700, -122.4030, perimeter)
}
""";
LinkedHashMap<String, Object> expected = new LinkedHashMap<>();
expected.put("outsidePolygon", false);
expected.put("insidePolygon", true);
expected.put("insideHole", false);
Object actual = invokeScript(evalScript(decoderStr), msgStr);
assertEquals(expected, actual);
}
@Test
public void isInsideCircle_Test() throws ExecutionException, InterruptedException {
msgStr = "{}";
decoderStr = """
String perimeter = "{\\"latitude\\":37.7749,\\"longitude\\":-122.4194,\\"radius\\":3000,\\"radiusUnit\\":\\"METER\\"}";
return{
outsideCircle: isInsideCircle(37.8044, -122.2712, perimeter),
insideCircle: isInsideCircle(37.7599, -122.4148, perimeter)
}
""";
LinkedHashMap<String, Object> expected = new LinkedHashMap<>();
expected.put("outsideCircle", false);
expected.put("insideCircle", true);
Object actual = invokeScript(evalScript(decoderStr), msgStr);
assertEquals(expected, actual);
}
private List splice(List oldList, int start, int deleteCount, Object... values) {
start = initStartIndex(oldList, start);
deleteCount = deleteCount < 0 ? 0 : Math.min(deleteCount, (oldList.size() - start));