This is an automated email from the ASF dual-hosted git repository.

sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/develop by this push:
     new 152caa3  plc4go: optimized hex output
152caa3 is described below

commit 152caa3a9f5095338c9f82db6acc62ad929e4349
Author: Sebastian Rühl <sru...@apache.org>
AuthorDate: Sat Apr 17 21:22:03 2021 +0200

    plc4go: optimized hex output
    
    + use | to divide index from data
    + reduced size required for bytes from 4 to 3
---
 plc4go/internal/plc4go/s7/s7Io_test.go       |   6 +-
 plc4go/internal/plc4go/spi/utils/hex.go      |  19 +-
 plc4go/internal/plc4go/spi/utils/hex_test.go | 312 +++++++++++++--------------
 3 files changed, 170 insertions(+), 167 deletions(-)

diff --git a/plc4go/internal/plc4go/s7/s7Io_test.go 
b/plc4go/internal/plc4go/s7/s7Io_test.go
index 515ef0c..ecd1d68 100644
--- a/plc4go/internal/plc4go/s7/s7Io_test.go
+++ b/plc4go/internal/plc4go/s7/s7Io_test.go
@@ -89,9 +89,9 @@ func TestS7MessageBytes(t *testing.T) {
 
╚═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
 `,
                        wantDump: `
-00 03  00  00  1d  05  f0  0d  c0  01  0c  '..........'
-10 32  03  00  00  00  0b  00  02  00  05  '2.........'
-20 00  00  04  04  ff  03  00  01  01      '......... '
+00|03 00 00 1d 05 f0 0d c0 01 0c '..........'
+10|32 03 00 00 00 0b 00 02 00 05 '2.........'
+20|00 00 04 04 ff 03 00 01 01    '......... '
 `,
                },
        }
diff --git a/plc4go/internal/plc4go/spi/utils/hex.go 
b/plc4go/internal/plc4go/spi/utils/hex.go
index 80e9a81..592ac17 100644
--- a/plc4go/internal/plc4go/spi/utils/hex.go
+++ b/plc4go/internal/plc4go/spi/utils/hex.go
@@ -30,17 +30,20 @@ import (
 )
 
 // DefaultWidth defaults to a default screen dumps size
-const DefaultWidth = 56 // 10 bytes per line on a []byte < 999
+const DefaultWidth = 46 // 10 bytes per line on a []byte < 999
 
 // boxLineOverheat Overheat per line when drawing boxes
 const boxLineOverheat = 1 + 1
 
-// byteWidth required size of runes required to print one bytes 2 hex digits + 
2 blanks
-const byteWidth = 2 + 2
-
-// blank size of blank
+// blankWidth blank size of blank
 const blankWidth = 1
 
+// byteWidth required size of runes required to print one bytes 2 hex digits + 
1 blanks
+const byteWidth = 2 + 1
+
+// pipeWidth size of the pipe char
+const pipeWidth = 1
+
 // DebugHex set to true to get debug messages
 var DebugHex bool
 
@@ -82,12 +85,12 @@ func DumpFixedWidth(data []byte, desiredCharWidth int) 
string {
        maxBytesPerRow, indexWidth := 
calculateBytesPerRowAndIndexWidth(len(data), desiredCharWidth)
 
        for byteIndex, rowIndex := 0, 0; byteIndex < len(data); byteIndex, 
rowIndex = byteIndex+maxBytesPerRow, rowIndex+1 {
-               indexString := fmt.Sprintf("%0*d ", indexWidth, byteIndex)
+               indexString := fmt.Sprintf("%0*d|", indexWidth, byteIndex)
                hexString += indexString
                for columnIndex := 0; columnIndex < maxBytesPerRow; 
columnIndex++ {
                        absoluteIndex := byteIndex + columnIndex
                        if absoluteIndex < len(data) {
-                               hexString += fmt.Sprintf("%02x  ", 
data[absoluteIndex])
+                               hexString += fmt.Sprintf("%02x ", 
data[absoluteIndex])
                        } else {
                                // align with empty byte representation
                                hexString += strings.Repeat(" ", byteWidth)
@@ -112,7 +115,7 @@ func calculateBytesPerRowAndIndexWidth(numberOfBytes, 
desiredStringWidth int) (i
                log.Debug().Msgf("Calculating max row and index for %d number 
of bytes and a desired string width of %d", numberOfBytes, desiredStringWidth)
        }
        indexDigits := int(math.Log10(float64(numberOfBytes))) + 1
-       requiredIndexWidth := indexDigits + blankWidth
+       requiredIndexWidth := indexDigits + pipeWidth
        if DebugHex {
                log.Debug().Msgf("index width %d for indexDigits %d for bytes 
%d", requiredIndexWidth, indexDigits, numberOfBytes)
        }
diff --git a/plc4go/internal/plc4go/spi/utils/hex_test.go 
b/plc4go/internal/plc4go/spi/utils/hex_test.go
index e8f5cf2..a00f694 100644
--- a/plc4go/internal/plc4go/spi/utils/hex_test.go
+++ b/plc4go/internal/plc4go/spi/utils/hex_test.go
@@ -44,10 +44,10 @@ func TestDump(t *testing.T) {
                                data: 
[]byte("1234567890abcdefghijklmnopqrstuvwxyz"),
                        },
                        want: `
-00 31  32  33  34  35  36  37  38  39  30  '1234567890'
-10 61  62  63  64  65  66  67  68  69  6a  'abcdefghij'
-20 6b  6c  6d  6e  6f  70  71  72  73  74  'klmnopqrst'
-30 75  76  77  78  79  7a                  'uvwxyz    '
+00|31 32 33 34 35 36 37 38 39 30 '1234567890'
+10|61 62 63 64 65 66 67 68 69 6a 'abcdefghij'
+20|6b 6c 6d 6e 6f 70 71 72 73 74 'klmnopqrst'
+30|75 76 77 78 79 7a             'uvwxyz    '
 `,
                },
                {
@@ -56,113 +56,113 @@ func TestDump(t *testing.T) {
                                data: []byte(strings.Repeat("Lorem ipsum", 90)),
                        },
                        want: `
-000 4c  6f  72  65  6d  20  69  70  73  75  'Lorem ipsu'
-010 6d  4c  6f  72  65  6d  20  69  70  73  'mLorem ips'
-020 75  6d  4c  6f  72  65  6d  20  69  70  'umLorem ip'
-030 73  75  6d  4c  6f  72  65  6d  20  69  'sumLorem i'
-040 70  73  75  6d  4c  6f  72  65  6d  20  'psumLorem '
-050 69  70  73  75  6d  4c  6f  72  65  6d  'ipsumLorem'
-060 20  69  70  73  75  6d  4c  6f  72  65  ' ipsumLore'
-070 6d  20  69  70  73  75  6d  4c  6f  72  'm ipsumLor'
-080 65  6d  20  69  70  73  75  6d  4c  6f  'em ipsumLo'
-090 72  65  6d  20  69  70  73  75  6d  4c  'rem ipsumL'
-100 6f  72  65  6d  20  69  70  73  75  6d  'orem ipsum'
-110 4c  6f  72  65  6d  20  69  70  73  75  'Lorem ipsu'
-120 6d  4c  6f  72  65  6d  20  69  70  73  'mLorem ips'
-130 75  6d  4c  6f  72  65  6d  20  69  70  'umLorem ip'
-140 73  75  6d  4c  6f  72  65  6d  20  69  'sumLorem i'
-150 70  73  75  6d  4c  6f  72  65  6d  20  'psumLorem '
-160 69  70  73  75  6d  4c  6f  72  65  6d  'ipsumLorem'
-170 20  69  70  73  75  6d  4c  6f  72  65  ' ipsumLore'
-180 6d  20  69  70  73  75  6d  4c  6f  72  'm ipsumLor'
-190 65  6d  20  69  70  73  75  6d  4c  6f  'em ipsumLo'
-200 72  65  6d  20  69  70  73  75  6d  4c  'rem ipsumL'
-210 6f  72  65  6d  20  69  70  73  75  6d  'orem ipsum'
-220 4c  6f  72  65  6d  20  69  70  73  75  'Lorem ipsu'
-230 6d  4c  6f  72  65  6d  20  69  70  73  'mLorem ips'
-240 75  6d  4c  6f  72  65  6d  20  69  70  'umLorem ip'
-250 73  75  6d  4c  6f  72  65  6d  20  69  'sumLorem i'
-260 70  73  75  6d  4c  6f  72  65  6d  20  'psumLorem '
-270 69  70  73  75  6d  4c  6f  72  65  6d  'ipsumLorem'
-280 20  69  70  73  75  6d  4c  6f  72  65  ' ipsumLore'
-290 6d  20  69  70  73  75  6d  4c  6f  72  'm ipsumLor'
-300 65  6d  20  69  70  73  75  6d  4c  6f  'em ipsumLo'
-310 72  65  6d  20  69  70  73  75  6d  4c  'rem ipsumL'
-320 6f  72  65  6d  20  69  70  73  75  6d  'orem ipsum'
-330 4c  6f  72  65  6d  20  69  70  73  75  'Lorem ipsu'
-340 6d  4c  6f  72  65  6d  20  69  70  73  'mLorem ips'
-350 75  6d  4c  6f  72  65  6d  20  69  70  'umLorem ip'
-360 73  75  6d  4c  6f  72  65  6d  20  69  'sumLorem i'
-370 70  73  75  6d  4c  6f  72  65  6d  20  'psumLorem '
-380 69  70  73  75  6d  4c  6f  72  65  6d  'ipsumLorem'
-390 20  69  70  73  75  6d  4c  6f  72  65  ' ipsumLore'
-400 6d  20  69  70  73  75  6d  4c  6f  72  'm ipsumLor'
-410 65  6d  20  69  70  73  75  6d  4c  6f  'em ipsumLo'
-420 72  65  6d  20  69  70  73  75  6d  4c  'rem ipsumL'
-430 6f  72  65  6d  20  69  70  73  75  6d  'orem ipsum'
-440 4c  6f  72  65  6d  20  69  70  73  75  'Lorem ipsu'
-450 6d  4c  6f  72  65  6d  20  69  70  73  'mLorem ips'
-460 75  6d  4c  6f  72  65  6d  20  69  70  'umLorem ip'
-470 73  75  6d  4c  6f  72  65  6d  20  69  'sumLorem i'
-480 70  73  75  6d  4c  6f  72  65  6d  20  'psumLorem '
-490 69  70  73  75  6d  4c  6f  72  65  6d  'ipsumLorem'
-500 20  69  70  73  75  6d  4c  6f  72  65  ' ipsumLore'
-510 6d  20  69  70  73  75  6d  4c  6f  72  'm ipsumLor'
-520 65  6d  20  69  70  73  75  6d  4c  6f  'em ipsumLo'
-530 72  65  6d  20  69  70  73  75  6d  4c  'rem ipsumL'
-540 6f  72  65  6d  20  69  70  73  75  6d  'orem ipsum'
-550 4c  6f  72  65  6d  20  69  70  73  75  'Lorem ipsu'
-560 6d  4c  6f  72  65  6d  20  69  70  73  'mLorem ips'
-570 75  6d  4c  6f  72  65  6d  20  69  70  'umLorem ip'
-580 73  75  6d  4c  6f  72  65  6d  20  69  'sumLorem i'
-590 70  73  75  6d  4c  6f  72  65  6d  20  'psumLorem '
-600 69  70  73  75  6d  4c  6f  72  65  6d  'ipsumLorem'
-610 20  69  70  73  75  6d  4c  6f  72  65  ' ipsumLore'
-620 6d  20  69  70  73  75  6d  4c  6f  72  'm ipsumLor'
-630 65  6d  20  69  70  73  75  6d  4c  6f  'em ipsumLo'
-640 72  65  6d  20  69  70  73  75  6d  4c  'rem ipsumL'
-650 6f  72  65  6d  20  69  70  73  75  6d  'orem ipsum'
-660 4c  6f  72  65  6d  20  69  70  73  75  'Lorem ipsu'
-670 6d  4c  6f  72  65  6d  20  69  70  73  'mLorem ips'
-680 75  6d  4c  6f  72  65  6d  20  69  70  'umLorem ip'
-690 73  75  6d  4c  6f  72  65  6d  20  69  'sumLorem i'
-700 70  73  75  6d  4c  6f  72  65  6d  20  'psumLorem '
-710 69  70  73  75  6d  4c  6f  72  65  6d  'ipsumLorem'
-720 20  69  70  73  75  6d  4c  6f  72  65  ' ipsumLore'
-730 6d  20  69  70  73  75  6d  4c  6f  72  'm ipsumLor'
-740 65  6d  20  69  70  73  75  6d  4c  6f  'em ipsumLo'
-750 72  65  6d  20  69  70  73  75  6d  4c  'rem ipsumL'
-760 6f  72  65  6d  20  69  70  73  75  6d  'orem ipsum'
-770 4c  6f  72  65  6d  20  69  70  73  75  'Lorem ipsu'
-780 6d  4c  6f  72  65  6d  20  69  70  73  'mLorem ips'
-790 75  6d  4c  6f  72  65  6d  20  69  70  'umLorem ip'
-800 73  75  6d  4c  6f  72  65  6d  20  69  'sumLorem i'
-810 70  73  75  6d  4c  6f  72  65  6d  20  'psumLorem '
-820 69  70  73  75  6d  4c  6f  72  65  6d  'ipsumLorem'
-830 20  69  70  73  75  6d  4c  6f  72  65  ' ipsumLore'
-840 6d  20  69  70  73  75  6d  4c  6f  72  'm ipsumLor'
-850 65  6d  20  69  70  73  75  6d  4c  6f  'em ipsumLo'
-860 72  65  6d  20  69  70  73  75  6d  4c  'rem ipsumL'
-870 6f  72  65  6d  20  69  70  73  75  6d  'orem ipsum'
-880 4c  6f  72  65  6d  20  69  70  73  75  'Lorem ipsu'
-890 6d  4c  6f  72  65  6d  20  69  70  73  'mLorem ips'
-900 75  6d  4c  6f  72  65  6d  20  69  70  'umLorem ip'
-910 73  75  6d  4c  6f  72  65  6d  20  69  'sumLorem i'
-920 70  73  75  6d  4c  6f  72  65  6d  20  'psumLorem '
-930 69  70  73  75  6d  4c  6f  72  65  6d  'ipsumLorem'
-940 20  69  70  73  75  6d  4c  6f  72  65  ' ipsumLore'
-950 6d  20  69  70  73  75  6d  4c  6f  72  'm ipsumLor'
-960 65  6d  20  69  70  73  75  6d  4c  6f  'em ipsumLo'
-970 72  65  6d  20  69  70  73  75  6d  4c  'rem ipsumL'
-980 6f  72  65  6d  20  69  70  73  75  6d  'orem ipsum'
+000|4c 6f 72 65 6d 20 69 70 73 75 'Lorem ipsu'
+010|6d 4c 6f 72 65 6d 20 69 70 73 'mLorem ips'
+020|75 6d 4c 6f 72 65 6d 20 69 70 'umLorem ip'
+030|73 75 6d 4c 6f 72 65 6d 20 69 'sumLorem i'
+040|70 73 75 6d 4c 6f 72 65 6d 20 'psumLorem '
+050|69 70 73 75 6d 4c 6f 72 65 6d 'ipsumLorem'
+060|20 69 70 73 75 6d 4c 6f 72 65 ' ipsumLore'
+070|6d 20 69 70 73 75 6d 4c 6f 72 'm ipsumLor'
+080|65 6d 20 69 70 73 75 6d 4c 6f 'em ipsumLo'
+090|72 65 6d 20 69 70 73 75 6d 4c 'rem ipsumL'
+100|6f 72 65 6d 20 69 70 73 75 6d 'orem ipsum'
+110|4c 6f 72 65 6d 20 69 70 73 75 'Lorem ipsu'
+120|6d 4c 6f 72 65 6d 20 69 70 73 'mLorem ips'
+130|75 6d 4c 6f 72 65 6d 20 69 70 'umLorem ip'
+140|73 75 6d 4c 6f 72 65 6d 20 69 'sumLorem i'
+150|70 73 75 6d 4c 6f 72 65 6d 20 'psumLorem '
+160|69 70 73 75 6d 4c 6f 72 65 6d 'ipsumLorem'
+170|20 69 70 73 75 6d 4c 6f 72 65 ' ipsumLore'
+180|6d 20 69 70 73 75 6d 4c 6f 72 'm ipsumLor'
+190|65 6d 20 69 70 73 75 6d 4c 6f 'em ipsumLo'
+200|72 65 6d 20 69 70 73 75 6d 4c 'rem ipsumL'
+210|6f 72 65 6d 20 69 70 73 75 6d 'orem ipsum'
+220|4c 6f 72 65 6d 20 69 70 73 75 'Lorem ipsu'
+230|6d 4c 6f 72 65 6d 20 69 70 73 'mLorem ips'
+240|75 6d 4c 6f 72 65 6d 20 69 70 'umLorem ip'
+250|73 75 6d 4c 6f 72 65 6d 20 69 'sumLorem i'
+260|70 73 75 6d 4c 6f 72 65 6d 20 'psumLorem '
+270|69 70 73 75 6d 4c 6f 72 65 6d 'ipsumLorem'
+280|20 69 70 73 75 6d 4c 6f 72 65 ' ipsumLore'
+290|6d 20 69 70 73 75 6d 4c 6f 72 'm ipsumLor'
+300|65 6d 20 69 70 73 75 6d 4c 6f 'em ipsumLo'
+310|72 65 6d 20 69 70 73 75 6d 4c 'rem ipsumL'
+320|6f 72 65 6d 20 69 70 73 75 6d 'orem ipsum'
+330|4c 6f 72 65 6d 20 69 70 73 75 'Lorem ipsu'
+340|6d 4c 6f 72 65 6d 20 69 70 73 'mLorem ips'
+350|75 6d 4c 6f 72 65 6d 20 69 70 'umLorem ip'
+360|73 75 6d 4c 6f 72 65 6d 20 69 'sumLorem i'
+370|70 73 75 6d 4c 6f 72 65 6d 20 'psumLorem '
+380|69 70 73 75 6d 4c 6f 72 65 6d 'ipsumLorem'
+390|20 69 70 73 75 6d 4c 6f 72 65 ' ipsumLore'
+400|6d 20 69 70 73 75 6d 4c 6f 72 'm ipsumLor'
+410|65 6d 20 69 70 73 75 6d 4c 6f 'em ipsumLo'
+420|72 65 6d 20 69 70 73 75 6d 4c 'rem ipsumL'
+430|6f 72 65 6d 20 69 70 73 75 6d 'orem ipsum'
+440|4c 6f 72 65 6d 20 69 70 73 75 'Lorem ipsu'
+450|6d 4c 6f 72 65 6d 20 69 70 73 'mLorem ips'
+460|75 6d 4c 6f 72 65 6d 20 69 70 'umLorem ip'
+470|73 75 6d 4c 6f 72 65 6d 20 69 'sumLorem i'
+480|70 73 75 6d 4c 6f 72 65 6d 20 'psumLorem '
+490|69 70 73 75 6d 4c 6f 72 65 6d 'ipsumLorem'
+500|20 69 70 73 75 6d 4c 6f 72 65 ' ipsumLore'
+510|6d 20 69 70 73 75 6d 4c 6f 72 'm ipsumLor'
+520|65 6d 20 69 70 73 75 6d 4c 6f 'em ipsumLo'
+530|72 65 6d 20 69 70 73 75 6d 4c 'rem ipsumL'
+540|6f 72 65 6d 20 69 70 73 75 6d 'orem ipsum'
+550|4c 6f 72 65 6d 20 69 70 73 75 'Lorem ipsu'
+560|6d 4c 6f 72 65 6d 20 69 70 73 'mLorem ips'
+570|75 6d 4c 6f 72 65 6d 20 69 70 'umLorem ip'
+580|73 75 6d 4c 6f 72 65 6d 20 69 'sumLorem i'
+590|70 73 75 6d 4c 6f 72 65 6d 20 'psumLorem '
+600|69 70 73 75 6d 4c 6f 72 65 6d 'ipsumLorem'
+610|20 69 70 73 75 6d 4c 6f 72 65 ' ipsumLore'
+620|6d 20 69 70 73 75 6d 4c 6f 72 'm ipsumLor'
+630|65 6d 20 69 70 73 75 6d 4c 6f 'em ipsumLo'
+640|72 65 6d 20 69 70 73 75 6d 4c 'rem ipsumL'
+650|6f 72 65 6d 20 69 70 73 75 6d 'orem ipsum'
+660|4c 6f 72 65 6d 20 69 70 73 75 'Lorem ipsu'
+670|6d 4c 6f 72 65 6d 20 69 70 73 'mLorem ips'
+680|75 6d 4c 6f 72 65 6d 20 69 70 'umLorem ip'
+690|73 75 6d 4c 6f 72 65 6d 20 69 'sumLorem i'
+700|70 73 75 6d 4c 6f 72 65 6d 20 'psumLorem '
+710|69 70 73 75 6d 4c 6f 72 65 6d 'ipsumLorem'
+720|20 69 70 73 75 6d 4c 6f 72 65 ' ipsumLore'
+730|6d 20 69 70 73 75 6d 4c 6f 72 'm ipsumLor'
+740|65 6d 20 69 70 73 75 6d 4c 6f 'em ipsumLo'
+750|72 65 6d 20 69 70 73 75 6d 4c 'rem ipsumL'
+760|6f 72 65 6d 20 69 70 73 75 6d 'orem ipsum'
+770|4c 6f 72 65 6d 20 69 70 73 75 'Lorem ipsu'
+780|6d 4c 6f 72 65 6d 20 69 70 73 'mLorem ips'
+790|75 6d 4c 6f 72 65 6d 20 69 70 'umLorem ip'
+800|73 75 6d 4c 6f 72 65 6d 20 69 'sumLorem i'
+810|70 73 75 6d 4c 6f 72 65 6d 20 'psumLorem '
+820|69 70 73 75 6d 4c 6f 72 65 6d 'ipsumLorem'
+830|20 69 70 73 75 6d 4c 6f 72 65 ' ipsumLore'
+840|6d 20 69 70 73 75 6d 4c 6f 72 'm ipsumLor'
+850|65 6d 20 69 70 73 75 6d 4c 6f 'em ipsumLo'
+860|72 65 6d 20 69 70 73 75 6d 4c 'rem ipsumL'
+870|6f 72 65 6d 20 69 70 73 75 6d 'orem ipsum'
+880|4c 6f 72 65 6d 20 69 70 73 75 'Lorem ipsu'
+890|6d 4c 6f 72 65 6d 20 69 70 73 'mLorem ips'
+900|75 6d 4c 6f 72 65 6d 20 69 70 'umLorem ip'
+910|73 75 6d 4c 6f 72 65 6d 20 69 'sumLorem i'
+920|70 73 75 6d 4c 6f 72 65 6d 20 'psumLorem '
+930|69 70 73 75 6d 4c 6f 72 65 6d 'ipsumLorem'
+940|20 69 70 73 75 6d 4c 6f 72 65 ' ipsumLore'
+950|6d 20 69 70 73 75 6d 4c 6f 72 'm ipsumLor'
+960|65 6d 20 69 70 73 75 6d 4c 6f 'em ipsumLo'
+970|72 65 6d 20 69 70 73 75 6d 4c 'rem ipsumL'
+980|6f 72 65 6d 20 69 70 73 75 6d 'orem ipsum'
 `,
                },
                {
-                       name: "minimum size",
+                       name: "no size",
                        args: args{
                                []byte("a"),
                        },
-                       want: "0 61                                      'a     
    '",
+                       want: "0|61                            'a         '",
                },
        }
        for _, tt := range tests {
@@ -229,24 +229,24 @@ func TestBoxedDump(t *testing.T) {
                                data: 
[]byte("1234567890abcdefghijklmnopqrstuvwxyz\3231234567890abcdefghijklmnopqrstuvwxyz\323aa1234567890abcdefghijklmnopqrstuvwxyz\3231234567890abcdefghijklmnopqrstuvwxyz\323aab"),
                        },
                        want: `
-╔═super nice data════════════════════════════════════════╗
-║000 31  32  33  34  35  36  37  38  39  30  '1234567890'║
-║010 61  62  63  64  65  66  67  68  69  6a  'abcdefghij'║
-║020 6b  6c  6d  6e  6f  70  71  72  73  74  'klmnopqrst'║
-║030 75  76  77  78  79  7a  d3  31  32  33  'uvwxyz.123'║
-║040 34  35  36  37  38  39  30  61  62  63  '4567890abc'║
-║050 64  65  66  67  68  69  6a  6b  6c  6d  'defghijklm'║
-║060 6e  6f  70  71  72  73  74  75  76  77  'nopqrstuvw'║
-║070 78  79  7a  d3  61  61  31  32  33  34  'xyz.aa1234'║
-║080 35  36  37  38  39  30  61  62  63  64  '567890abcd'║
-║090 65  66  67  68  69  6a  6b  6c  6d  6e  'efghijklmn'║
-║100 6f  70  71  72  73  74  75  76  77  78  'opqrstuvwx'║
-║110 79  7a  d3  31  32  33  34  35  36  37  'yz.1234567'║
-║120 38  39  30  61  62  63  64  65  66  67  '890abcdefg'║
-║130 68  69  6a  6b  6c  6d  6e  6f  70  71  'hijklmnopq'║
-║140 72  73  74  75  76  77  78  79  7a  d3  'rstuvwxyz.'║
-║150 61  61  62                              'aab       '║
-╚════════════════════════════════════════════════════════╝
+╔═super nice data══════════════════════════════╗
+║000|31 32 33 34 35 36 37 38 39 30 '1234567890'║
+║010|61 62 63 64 65 66 67 68 69 6a 'abcdefghij'║
+║020|6b 6c 6d 6e 6f 70 71 72 73 74 'klmnopqrst'║
+║030|75 76 77 78 79 7a d3 31 32 33 'uvwxyz.123'║
+║040|34 35 36 37 38 39 30 61 62 63 '4567890abc'║
+║050|64 65 66 67 68 69 6a 6b 6c 6d 'defghijklm'║
+║060|6e 6f 70 71 72 73 74 75 76 77 'nopqrstuvw'║
+║070|78 79 7a d3 61 61 31 32 33 34 'xyz.aa1234'║
+║080|35 36 37 38 39 30 61 62 63 64 '567890abcd'║
+║090|65 66 67 68 69 6a 6b 6c 6d 6e 'efghijklmn'║
+║100|6f 70 71 72 73 74 75 76 77 78 'opqrstuvwx'║
+║110|79 7a d3 31 32 33 34 35 36 37 'yz.1234567'║
+║120|38 39 30 61 62 63 64 65 66 67 '890abcdefg'║
+║130|68 69 6a 6b 6c 6d 6e 6f 70 71 'hijklmnopq'║
+║140|72 73 74 75 76 77 78 79 7a d3 'rstuvwxyz.'║
+║150|61 61 62                      'aab       '║
+╚══════════════════════════════════════════════╝
 `,
                },
        }
@@ -275,18 +275,18 @@ func TestBoxedDumpFixedWidth(t *testing.T) {
                        args: args{
                                name:      "super nice data",
                                data:      
[]byte("1234567890abcdefghijklmnopqrstuvwxyz\3231234567890abcdefghijklmnopqrstuvwxyz\323aa1234567890abcdefghijklmnopqrstuvwxyz\3231234567890abcdefghijklmnopqrstuvwxyz\323aab"),
-                               charWidth: 136,
+                               charWidth: 110,
                        },
                        want: `
-╔═super nice 
data══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
-║ 000 31  32  33  34  35  36  37  38  39  30  61  62  63  64  65  66  67  68  
69  6a  6b  6c  6d  6e  6f  '1234567890abcdefghijklmno'  ║
-║ 025 70  71  72  73  74  75  76  77  78  79  7a  d3  31  32  33  34  35  36  
37  38  39  30  61  62  63  'pqrstuvwxyz.1234567890abc'  ║
-║ 050 64  65  66  67  68  69  6a  6b  6c  6d  6e  6f  70  71  72  73  74  75  
76  77  78  79  7a  d3  61  'defghijklmnopqrstuvwxyz.a'  ║
-║ 075 61  31  32  33  34  35  36  37  38  39  30  61  62  63  64  65  66  67  
68  69  6a  6b  6c  6d  6e  'a1234567890abcdefghijklmn'  ║
-║ 100 6f  70  71  72  73  74  75  76  77  78  79  7a  d3  31  32  33  34  35  
36  37  38  39  30  61  62  'opqrstuvwxyz.1234567890ab'  ║
-║ 125 63  64  65  66  67  68  69  6a  6b  6c  6d  6e  6f  70  71  72  73  74  
75  76  77  78  79  7a  d3  'cdefghijklmnopqrstuvwxyz.'  ║
-║ 150 61  61  62                                                               
                           'aab                      '  ║
-╚══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
+╔═super nice 
data════════════════════════════════════════════════════════════════════════════════════════════╗
+║ 000|31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 
6f '1234567890abcdefghijklmno' ║
+║ 025|70 71 72 73 74 75 76 77 78 79 7a d3 31 32 33 34 35 36 37 38 39 30 61 62 
63 'pqrstuvwxyz.1234567890abc' ║
+║ 050|64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a d3 
61 'defghijklmnopqrstuvwxyz.a' ║
+║ 075|61 31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 
6e 'a1234567890abcdefghijklmn' ║
+║ 100|6f 70 71 72 73 74 75 76 77 78 79 7a d3 31 32 33 34 35 36 37 38 39 30 61 
62 'opqrstuvwxyz.1234567890ab' ║
+║ 125|63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 
d3 'cdefghijklmnopqrstuvwxyz.' ║
+║ 150|61 61 62                                                                 
  'aab                      ' ║
+╚════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
 `,
                },
        }
@@ -328,18 +328,18 @@ func TestDumpAnything(t *testing.T) {
                                }},
                        },
                        want: `
-000 25  ff  81  03  01  02  ff  82  00  01  '%.........'
-010 04  01  01  41  01  0c  00  01  01  42  '...A.....B'
-020 01  0c  00  01  01  43  01  0c  00  01  '.....C....'
-030 01  44  01  ff  84  00  00  00  37  ff  '.D......7.'
-040 83  03  01  01  1d  73  74  72  75  63  '.....struc'
-050 74  20  7b  20  45  20  73  74  72  69  't { E stri'
-060 6e  67  3b  20  46  20  73  74  72  69  'ng; F stri'
-070 6e  67  20  7d  01  ff  84  00  01  02  'ng }......'
-080 01  01  45  01  0c  00  01  01  46  01  '..E.....F.'
-090 0c  00  00  00  14  ff  82  01  01  61  '.........a'
-100 01  01  62  01  01  63  01  01  01  65  '..b..c...e'
-110 01  01  66  00  00                      '..f..     '
+000|25 ff 81 03 01 02 ff 82 00 01 '%.........'
+010|04 01 01 41 01 0c 00 01 01 42 '...A.....B'
+020|01 0c 00 01 01 43 01 0c 00 01 '.....C....'
+030|01 44 01 ff 84 00 00 00 37 ff '.D......7.'
+040|83 03 01 01 1d 73 74 72 75 63 '.....struc'
+050|74 20 7b 20 45 20 73 74 72 69 't { E stri'
+060|6e 67 3b 20 46 20 73 74 72 69 'ng; F stri'
+070|6e 67 20 7d 01 ff 84 00 01 02 'ng }......'
+080|01 01 45 01 0c 00 01 01 46 01 '..E.....F.'
+090|0c 00 00 00 14 ff 82 01 01 61 '.........a'
+100|01 01 62 01 01 63 01 01 01 65 '..b..c...e'
+110|01 01 66 00 00                '..f..     '
 `,
                },
                {
@@ -375,15 +375,15 @@ func TestDumpFixedWidth(t *testing.T) {
                        name: "Test Dump",
                        args: args{
                                data:      
[]byte("1234567890abcdefghijklmnopqrstuvwxyz\3231234567890abcdefghijklmnopqrstuvwxyz\323aa1234567890abcdefghijklmnopqrstuvwxyz\3231234567890abcdefghijklmnopqrstuvwxyz\323aab"),
-                               charWidth: 136,
+                               charWidth: 110,
                        },
                        want: `
-000 31  32  33  34  35  36  37  38  39  30  61  62  63  64  65  66  67  68  69 
 6a  6b  6c  6d  6e  6f  70  '1234567890abcdefghijklmnop'
-026 71  72  73  74  75  76  77  78  79  7a  d3  31  32  33  34  35  36  37  38 
 39  30  61  62  63  64  65  'qrstuvwxyz.1234567890abcde'
-052 66  67  68  69  6a  6b  6c  6d  6e  6f  70  71  72  73  74  75  76  77  78 
 79  7a  d3  61  61  31  32  'fghijklmnopqrstuvwxyz.aa12'
-078 33  34  35  36  37  38  39  30  61  62  63  64  65  66  67  68  69  6a  6b 
 6c  6d  6e  6f  70  71  72  '34567890abcdefghijklmnopqr'
-104 73  74  75  76  77  78  79  7a  d3  31  32  33  34  35  36  37  38  39  30 
 61  62  63  64  65  66  67  'stuvwxyz.1234567890abcdefg'
-130 68  69  6a  6b  6c  6d  6e  6f  70  71  72  73  74  75  76  77  78  79  7a 
 d3  61  61  62              'hijklmnopqrstuvwxyz.aab   '
+000|31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 
70 '1234567890abcdefghijklmnop'
+026|71 72 73 74 75 76 77 78 79 7a d3 31 32 33 34 35 36 37 38 39 30 61 62 63 64 
65 'qrstuvwxyz.1234567890abcde'
+052|66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a d3 61 61 31 
32 'fghijklmnopqrstuvwxyz.aa12'
+078|33 34 35 36 37 38 39 30 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 
72 '34567890abcdefghijklmnopqr'
+104|73 74 75 76 77 78 79 7a d3 31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 66 
67 'stuvwxyz.1234567890abcdefg'
+130|68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a d3 61 61 62       
   'hijklmnopqrstuvwxyz.aab   '
 `,
                },
                {
@@ -392,7 +392,7 @@ func TestDumpFixedWidth(t *testing.T) {
                                []byte("a"),
                                1,
                        },
-                       want: "0 61  'a'",
+                       want: "0|61 'a'",
                },
        }
        for _, tt := range tests {
@@ -464,7 +464,7 @@ func Test_MinMax(t *testing.T) {
                                data:      []byte{0x1},
                                charWidth: -1,
                        },
-                       want: "0 01  '.'",
+                       want: "0|01 '.'",
                },
                {
                        name: "12",
@@ -564,7 +564,7 @@ func Test_calculateBytesPerRowAndIndexWidth(t *testing.T) {
                                numberOfBytes:    100,
                                desiredCharWidth: math.MaxInt32,
                        },
-                       wantMaxBytesPerRow: 429496728,
+                       wantMaxBytesPerRow: 536870910,
                        wantIndexWidth:     3,
                },
                {
@@ -582,7 +582,7 @@ func Test_calculateBytesPerRowAndIndexWidth(t *testing.T) {
                                numberOfBytes:    153,
                                desiredCharWidth: 136,
                        },
-                       wantMaxBytesPerRow: 26,
+                       wantMaxBytesPerRow: 32,
                        wantIndexWidth:     3,
                },
                {

Reply via email to