You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuweni.apache.org by to...@apache.org on 2020/05/02 23:05:39 UTC
[incubator-tuweni] branch master updated: Add
Bytes#toEllipsisHexString, fixes #71
This is an automated email from the ASF dual-hosted git repository.
toulmean pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-tuweni.git
The following commit(s) were added to refs/heads/master by this push:
new 0e0f289 Add Bytes#toEllipsisHexString, fixes #71
0e0f289 is described below
commit 0e0f289ca70a2f5908eb179df78a125d35e4b8a6
Author: Antoine Toulme <an...@lunar-ocean.com>
AuthorDate: Sat May 2 16:05:24 2020 -0700
Add Bytes#toEllipsisHexString, fixes #71
---
.../src/main/java/org/apache/tuweni/bytes/Bytes.java | 20 ++++++++++++++++++++
.../org/apache/tuweni/bytes/CommonBytesTests.java | 15 +++++++++++++++
2 files changed, 35 insertions(+)
diff --git a/bytes/src/main/java/org/apache/tuweni/bytes/Bytes.java b/bytes/src/main/java/org/apache/tuweni/bytes/Bytes.java
index dfec53b..7a219d4 100644
--- a/bytes/src/main/java/org/apache/tuweni/bytes/Bytes.java
+++ b/bytes/src/main/java/org/apache/tuweni/bytes/Bytes.java
@@ -1452,6 +1452,26 @@ public interface Bytes extends Comparable<Bytes> {
}
}
+ default String toEllipsisHexString() {
+ int size = size();
+ if (size < 6) {
+ return toHexString();
+ }
+ StringBuilder appendable = new StringBuilder("0x");
+ for (int i = 0; i < 2; i++) {
+ byte b = get(i);
+ appendable.append(AbstractBytes.HEX_CODE[b >> 4 & 15]);
+ appendable.append(AbstractBytes.HEX_CODE[b & 15]);
+ }
+ appendable.append("..");
+ for (int i = 0; i < 2; i++) {
+ byte b = get(i + size - 2);
+ appendable.append(AbstractBytes.HEX_CODE[b >> 4 & 15]);
+ appendable.append(AbstractBytes.HEX_CODE[b & 15]);
+ }
+ return appendable.toString();
+ }
+
/** @return This value represented as a minimal hexadecimal string (without any leading zero). */
default String toShortHexString() {
StringBuilder hex;
diff --git a/bytes/src/test/java/org/apache/tuweni/bytes/CommonBytesTests.java b/bytes/src/test/java/org/apache/tuweni/bytes/CommonBytesTests.java
index 0d7efb2..ca0533c 100644
--- a/bytes/src/test/java/org/apache/tuweni/bytes/CommonBytesTests.java
+++ b/bytes/src/test/java/org/apache/tuweni/bytes/CommonBytesTests.java
@@ -452,6 +452,21 @@ abstract class CommonBytesTests {
}
@Test
+ void testEllipsisHexString() {
+ assertEquals("0x", h("0x").toEllipsisHexString());
+ assertEquals("0x0000", h("0x0000").toEllipsisHexString());
+ assertEquals("0x01000001", h("0x01000001").toEllipsisHexString());
+ assertEquals("0x0100000001", h("0x0100000001").toEllipsisHexString());
+ assertEquals("0x0100..0001", h("0x010000000001").toEllipsisHexString());
+ assertEquals("0x1234..5678", h("0x123456789abcdef012345678").toEllipsisHexString());
+ assertEquals("0x1234..789a", h("0x123456789abcdef0123456789a").toEllipsisHexString());
+ assertEquals("0x1234..9abc", h("0x123456789abcdef0123456789abc").toEllipsisHexString());
+ assertEquals("0x1234..bcde", h("0x123456789abcdef0123456789abcde").toEllipsisHexString());
+ assertEquals("0x1234..def0", h("0x123456789abcdef0123456789abcdef0").toEllipsisHexString());
+ assertEquals("0x1234..def0", h("0x123456789abcdef0123456789abcdef0").toEllipsisHexString());
+ }
+
+ @Test
void slideToEnd() {
assertEquals(Bytes.of(1, 2, 3, 4), Bytes.of(1, 2, 3, 4).slice(0));
assertEquals(Bytes.of(2, 3, 4), Bytes.of(1, 2, 3, 4).slice(1));
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@tuweni.apache.org
For additional commands, e-mail: commits-help@tuweni.apache.org