======== #1 operator on pointer - 1 ========

p + 0 .. <pointer:0>
p + 1 .. <pointer:1>
p + 2 .. <pointer:2>
p + 100 .. <pointer:100>
<pointer:100>
p.pack('b', 22) .. <pointer:101>
<pointer:104>
p + 0 .. <pointer:0>
p + 1 .. <pointer:1>
p + 2 .. <pointer:2>
p + 100 .. <pointer:100>
<pointer:100>
p.pack('b', 22) .. OutOfRange: pointer exceeds the range of memory
<pointer:103>

======== #2 operator on pointer - 2 ========

p1 - p2 .. 7
p1 - p2 .. -7
p1 - p2 .. ValueError: cannot calculate difference between pointers of different binaries
p1 - p2 .. ValueError: cannot calculate difference between pointers of different binaries
p1 - p2 .. ValueError: cannot calculate difference between pointers of different binaries
p1 - p2 .. ValueError: cannot calculate difference between pointers of different binaries

======== #3 pointer#size ========

p.size .. 100
(p + 20).size .. 80
(p + 40).size .. 60
(p + 60).size .. 40
(p + 80).size .. 20
(p + 100).size .. 0
(p + 120).size .. 0

======== #4 pointer#offset ========

p.offset .. 0
(p + 20).offset .. 20
(p + 40).offset .. 40
(p + 60).offset .. 60
(p + 80).offset .. 80
(p + 100).offset .. 100
(p + 120).offset .. 120

======== #5 pointer#get@*() ========

p.get@int8():nil
0000000000000000 0000000000000001 0000000000000002 0000000000000003
0000000000000004 0000000000000005 0000000000000006 0000000000000007
0000000000000008 0000000000000009 000000000000000a 000000000000000b
000000000000000c 000000000000000d 000000000000000e 000000000000000f
0000000000000010 0000000000000011 0000000000000012 0000000000000013
0000000000000014 0000000000000015 0000000000000016 0000000000000017
0000000000000018 0000000000000019 000000000000001a 000000000000001b
000000000000001c 000000000000001d 000000000000001e 000000000000001f
0000000000000020 0000000000000021 0000000000000022 0000000000000023
0000000000000024 0000000000000025 0000000000000026 0000000000000027
0000000000000028 0000000000000029 000000000000002a 000000000000002b
000000000000002c 000000000000002d 000000000000002e 000000000000002f
0000000000000030 0000000000000031 0000000000000032 0000000000000033
0000000000000034 0000000000000035 0000000000000036 0000000000000037
0000000000000038 0000000000000039 000000000000003a 000000000000003b
000000000000003c 000000000000003d 000000000000003e 000000000000003f
0000000000000040 0000000000000041 0000000000000042 0000000000000043
0000000000000044 0000000000000045 0000000000000046 0000000000000047
0000000000000048 0000000000000049 000000000000004a 000000000000004b
000000000000004c 000000000000004d 000000000000004e 000000000000004f
0000000000000050 0000000000000051 0000000000000052 0000000000000053
0000000000000054 0000000000000055 0000000000000056 0000000000000057
0000000000000058 0000000000000059 000000000000005a 000000000000005b
000000000000005c 000000000000005d 000000000000005e 000000000000005f
0000000000000060 0000000000000061 0000000000000062 0000000000000063
0000000000000064 0000000000000065 0000000000000066 0000000000000067
0000000000000068 0000000000000069 000000000000006a 000000000000006b
000000000000006c 000000000000006d 000000000000006e 000000000000006f
0000000000000070 0000000000000071 0000000000000072 0000000000000073
0000000000000074 0000000000000075 0000000000000076 0000000000000077
0000000000000078 0000000000000079 000000000000007a 000000000000007b
000000000000007c 000000000000007d 000000000000007e 000000000000007f
ffffffffffffff80 ffffffffffffff81 ffffffffffffff82 ffffffffffffff83
ffffffffffffff84 ffffffffffffff85 ffffffffffffff86 ffffffffffffff87
ffffffffffffff88 ffffffffffffff89 ffffffffffffff8a ffffffffffffff8b
ffffffffffffff8c ffffffffffffff8d ffffffffffffff8e ffffffffffffff8f
ffffffffffffff90 ffffffffffffff91 ffffffffffffff92 ffffffffffffff93
ffffffffffffff94 ffffffffffffff95 ffffffffffffff96 ffffffffffffff97
ffffffffffffff98 ffffffffffffff99 ffffffffffffff9a ffffffffffffff9b
ffffffffffffff9c ffffffffffffff9d ffffffffffffff9e ffffffffffffff9f
ffffffffffffffa0 ffffffffffffffa1 ffffffffffffffa2 ffffffffffffffa3
ffffffffffffffa4 ffffffffffffffa5 ffffffffffffffa6 ffffffffffffffa7
ffffffffffffffa8 ffffffffffffffa9 ffffffffffffffaa ffffffffffffffab
ffffffffffffffac ffffffffffffffad ffffffffffffffae ffffffffffffffaf
ffffffffffffffb0 ffffffffffffffb1 ffffffffffffffb2 ffffffffffffffb3
ffffffffffffffb4 ffffffffffffffb5 ffffffffffffffb6 ffffffffffffffb7
ffffffffffffffb8 ffffffffffffffb9 ffffffffffffffba ffffffffffffffbb
ffffffffffffffbc ffffffffffffffbd ffffffffffffffbe ffffffffffffffbf
ffffffffffffffc0 ffffffffffffffc1 ffffffffffffffc2 ffffffffffffffc3
ffffffffffffffc4 ffffffffffffffc5 ffffffffffffffc6 ffffffffffffffc7
ffffffffffffffc8 ffffffffffffffc9 ffffffffffffffca ffffffffffffffcb
ffffffffffffffcc ffffffffffffffcd ffffffffffffffce ffffffffffffffcf
ffffffffffffffd0 ffffffffffffffd1 ffffffffffffffd2 ffffffffffffffd3
ffffffffffffffd4 ffffffffffffffd5 ffffffffffffffd6 ffffffffffffffd7
ffffffffffffffd8 ffffffffffffffd9 ffffffffffffffda ffffffffffffffdb
ffffffffffffffdc ffffffffffffffdd ffffffffffffffde ffffffffffffffdf
ffffffffffffffe0 ffffffffffffffe1 ffffffffffffffe2 ffffffffffffffe3
ffffffffffffffe4 ffffffffffffffe5 ffffffffffffffe6 ffffffffffffffe7
ffffffffffffffe8 ffffffffffffffe9 ffffffffffffffea ffffffffffffffeb
ffffffffffffffec ffffffffffffffed ffffffffffffffee ffffffffffffffef
fffffffffffffff0 fffffffffffffff1 fffffffffffffff2 fffffffffffffff3
fffffffffffffff4 fffffffffffffff5 fffffffffffffff6 fffffffffffffff7
fffffffffffffff8 fffffffffffffff9 fffffffffffffffa fffffffffffffffb
fffffffffffffffc fffffffffffffffd fffffffffffffffe ffffffffffffffff
p.get@uint8():nil
0000000000000000 0000000000000001 0000000000000002 0000000000000003
0000000000000004 0000000000000005 0000000000000006 0000000000000007
0000000000000008 0000000000000009 000000000000000a 000000000000000b
000000000000000c 000000000000000d 000000000000000e 000000000000000f
0000000000000010 0000000000000011 0000000000000012 0000000000000013
0000000000000014 0000000000000015 0000000000000016 0000000000000017
0000000000000018 0000000000000019 000000000000001a 000000000000001b
000000000000001c 000000000000001d 000000000000001e 000000000000001f
0000000000000020 0000000000000021 0000000000000022 0000000000000023
0000000000000024 0000000000000025 0000000000000026 0000000000000027
0000000000000028 0000000000000029 000000000000002a 000000000000002b
000000000000002c 000000000000002d 000000000000002e 000000000000002f
0000000000000030 0000000000000031 0000000000000032 0000000000000033
0000000000000034 0000000000000035 0000000000000036 0000000000000037
0000000000000038 0000000000000039 000000000000003a 000000000000003b
000000000000003c 000000000000003d 000000000000003e 000000000000003f
0000000000000040 0000000000000041 0000000000000042 0000000000000043
0000000000000044 0000000000000045 0000000000000046 0000000000000047
0000000000000048 0000000000000049 000000000000004a 000000000000004b
000000000000004c 000000000000004d 000000000000004e 000000000000004f
0000000000000050 0000000000000051 0000000000000052 0000000000000053
0000000000000054 0000000000000055 0000000000000056 0000000000000057
0000000000000058 0000000000000059 000000000000005a 000000000000005b
000000000000005c 000000000000005d 000000000000005e 000000000000005f
0000000000000060 0000000000000061 0000000000000062 0000000000000063
0000000000000064 0000000000000065 0000000000000066 0000000000000067
0000000000000068 0000000000000069 000000000000006a 000000000000006b
000000000000006c 000000000000006d 000000000000006e 000000000000006f
0000000000000070 0000000000000071 0000000000000072 0000000000000073
0000000000000074 0000000000000075 0000000000000076 0000000000000077
0000000000000078 0000000000000079 000000000000007a 000000000000007b
000000000000007c 000000000000007d 000000000000007e 000000000000007f
0000000000000080 0000000000000081 0000000000000082 0000000000000083
0000000000000084 0000000000000085 0000000000000086 0000000000000087
0000000000000088 0000000000000089 000000000000008a 000000000000008b
000000000000008c 000000000000008d 000000000000008e 000000000000008f
0000000000000090 0000000000000091 0000000000000092 0000000000000093
0000000000000094 0000000000000095 0000000000000096 0000000000000097
0000000000000098 0000000000000099 000000000000009a 000000000000009b
000000000000009c 000000000000009d 000000000000009e 000000000000009f
00000000000000a0 00000000000000a1 00000000000000a2 00000000000000a3
00000000000000a4 00000000000000a5 00000000000000a6 00000000000000a7
00000000000000a8 00000000000000a9 00000000000000aa 00000000000000ab
00000000000000ac 00000000000000ad 00000000000000ae 00000000000000af
00000000000000b0 00000000000000b1 00000000000000b2 00000000000000b3
00000000000000b4 00000000000000b5 00000000000000b6 00000000000000b7
00000000000000b8 00000000000000b9 00000000000000ba 00000000000000bb
00000000000000bc 00000000000000bd 00000000000000be 00000000000000bf
00000000000000c0 00000000000000c1 00000000000000c2 00000000000000c3
00000000000000c4 00000000000000c5 00000000000000c6 00000000000000c7
00000000000000c8 00000000000000c9 00000000000000ca 00000000000000cb
00000000000000cc 00000000000000cd 00000000000000ce 00000000000000cf
00000000000000d0 00000000000000d1 00000000000000d2 00000000000000d3
00000000000000d4 00000000000000d5 00000000000000d6 00000000000000d7
00000000000000d8 00000000000000d9 00000000000000da 00000000000000db
00000000000000dc 00000000000000dd 00000000000000de 00000000000000df
00000000000000e0 00000000000000e1 00000000000000e2 00000000000000e3
00000000000000e4 00000000000000e5 00000000000000e6 00000000000000e7
00000000000000e8 00000000000000e9 00000000000000ea 00000000000000eb
00000000000000ec 00000000000000ed 00000000000000ee 00000000000000ef
00000000000000f0 00000000000000f1 00000000000000f2 00000000000000f3
00000000000000f4 00000000000000f5 00000000000000f6 00000000000000f7
00000000000000f8 00000000000000f9 00000000000000fa 00000000000000fb
00000000000000fc 00000000000000fd 00000000000000fe 00000000000000ff
p.get@int16():nil
0000000000000100 0000000000000302 0000000000000504 0000000000000706
0000000000000908 0000000000000b0a 0000000000000d0c 0000000000000f0e
0000000000001110 0000000000001312 0000000000001514 0000000000001716
0000000000001918 0000000000001b1a 0000000000001d1c 0000000000001f1e
0000000000002120 0000000000002322 0000000000002524 0000000000002726
0000000000002928 0000000000002b2a 0000000000002d2c 0000000000002f2e
0000000000003130 0000000000003332 0000000000003534 0000000000003736
0000000000003938 0000000000003b3a 0000000000003d3c 0000000000003f3e
0000000000004140 0000000000004342 0000000000004544 0000000000004746
0000000000004948 0000000000004b4a 0000000000004d4c 0000000000004f4e
0000000000005150 0000000000005352 0000000000005554 0000000000005756
0000000000005958 0000000000005b5a 0000000000005d5c 0000000000005f5e
0000000000006160 0000000000006362 0000000000006564 0000000000006766
0000000000006968 0000000000006b6a 0000000000006d6c 0000000000006f6e
0000000000007170 0000000000007372 0000000000007574 0000000000007776
0000000000007978 0000000000007b7a 0000000000007d7c 0000000000007f7e
ffffffffffff8180 ffffffffffff8382 ffffffffffff8584 ffffffffffff8786
ffffffffffff8988 ffffffffffff8b8a ffffffffffff8d8c ffffffffffff8f8e
ffffffffffff9190 ffffffffffff9392 ffffffffffff9594 ffffffffffff9796
ffffffffffff9998 ffffffffffff9b9a ffffffffffff9d9c ffffffffffff9f9e
ffffffffffffa1a0 ffffffffffffa3a2 ffffffffffffa5a4 ffffffffffffa7a6
ffffffffffffa9a8 ffffffffffffabaa ffffffffffffadac ffffffffffffafae
ffffffffffffb1b0 ffffffffffffb3b2 ffffffffffffb5b4 ffffffffffffb7b6
ffffffffffffb9b8 ffffffffffffbbba ffffffffffffbdbc ffffffffffffbfbe
ffffffffffffc1c0 ffffffffffffc3c2 ffffffffffffc5c4 ffffffffffffc7c6
ffffffffffffc9c8 ffffffffffffcbca ffffffffffffcdcc ffffffffffffcfce
ffffffffffffd1d0 ffffffffffffd3d2 ffffffffffffd5d4 ffffffffffffd7d6
ffffffffffffd9d8 ffffffffffffdbda ffffffffffffdddc ffffffffffffdfde
ffffffffffffe1e0 ffffffffffffe3e2 ffffffffffffe5e4 ffffffffffffe7e6
ffffffffffffe9e8 ffffffffffffebea ffffffffffffedec ffffffffffffefee
fffffffffffff1f0 fffffffffffff3f2 fffffffffffff5f4 fffffffffffff7f6
fffffffffffff9f8 fffffffffffffbfa fffffffffffffdfc fffffffffffffffe
p.get@uint16():nil
0000000000000100 0000000000000302 0000000000000504 0000000000000706
0000000000000908 0000000000000b0a 0000000000000d0c 0000000000000f0e
0000000000001110 0000000000001312 0000000000001514 0000000000001716
0000000000001918 0000000000001b1a 0000000000001d1c 0000000000001f1e
0000000000002120 0000000000002322 0000000000002524 0000000000002726
0000000000002928 0000000000002b2a 0000000000002d2c 0000000000002f2e
0000000000003130 0000000000003332 0000000000003534 0000000000003736
0000000000003938 0000000000003b3a 0000000000003d3c 0000000000003f3e
0000000000004140 0000000000004342 0000000000004544 0000000000004746
0000000000004948 0000000000004b4a 0000000000004d4c 0000000000004f4e
0000000000005150 0000000000005352 0000000000005554 0000000000005756
0000000000005958 0000000000005b5a 0000000000005d5c 0000000000005f5e
0000000000006160 0000000000006362 0000000000006564 0000000000006766
0000000000006968 0000000000006b6a 0000000000006d6c 0000000000006f6e
0000000000007170 0000000000007372 0000000000007574 0000000000007776
0000000000007978 0000000000007b7a 0000000000007d7c 0000000000007f7e
0000000000008180 0000000000008382 0000000000008584 0000000000008786
0000000000008988 0000000000008b8a 0000000000008d8c 0000000000008f8e
0000000000009190 0000000000009392 0000000000009594 0000000000009796
0000000000009998 0000000000009b9a 0000000000009d9c 0000000000009f9e
000000000000a1a0 000000000000a3a2 000000000000a5a4 000000000000a7a6
000000000000a9a8 000000000000abaa 000000000000adac 000000000000afae
000000000000b1b0 000000000000b3b2 000000000000b5b4 000000000000b7b6
000000000000b9b8 000000000000bbba 000000000000bdbc 000000000000bfbe
000000000000c1c0 000000000000c3c2 000000000000c5c4 000000000000c7c6
000000000000c9c8 000000000000cbca 000000000000cdcc 000000000000cfce
000000000000d1d0 000000000000d3d2 000000000000d5d4 000000000000d7d6
000000000000d9d8 000000000000dbda 000000000000dddc 000000000000dfde
000000000000e1e0 000000000000e3e2 000000000000e5e4 000000000000e7e6
000000000000e9e8 000000000000ebea 000000000000edec 000000000000efee
000000000000f1f0 000000000000f3f2 000000000000f5f4 000000000000f7f6
000000000000f9f8 000000000000fbfa 000000000000fdfc 000000000000fffe
p.get@int32():nil
0000000003020100 0000000007060504 000000000b0a0908 000000000f0e0d0c
0000000013121110 0000000017161514 000000001b1a1918 000000001f1e1d1c
0000000023222120 0000000027262524 000000002b2a2928 000000002f2e2d2c
0000000033323130 0000000037363534 000000003b3a3938 000000003f3e3d3c
0000000043424140 0000000047464544 000000004b4a4948 000000004f4e4d4c
0000000053525150 0000000057565554 000000005b5a5958 000000005f5e5d5c
0000000063626160 0000000067666564 000000006b6a6968 000000006f6e6d6c
0000000073727170 0000000077767574 000000007b7a7978 000000007f7e7d7c
ffffffff83828180 ffffffff87868584 ffffffff8b8a8988 ffffffff8f8e8d8c
ffffffff93929190 ffffffff97969594 ffffffff9b9a9998 ffffffff9f9e9d9c
ffffffffa3a2a1a0 ffffffffa7a6a5a4 ffffffffabaaa9a8 ffffffffafaeadac
ffffffffb3b2b1b0 ffffffffb7b6b5b4 ffffffffbbbab9b8 ffffffffbfbebdbc
ffffffffc3c2c1c0 ffffffffc7c6c5c4 ffffffffcbcac9c8 ffffffffcfcecdcc
ffffffffd3d2d1d0 ffffffffd7d6d5d4 ffffffffdbdad9d8 ffffffffdfdedddc
ffffffffe3e2e1e0 ffffffffe7e6e5e4 ffffffffebeae9e8 ffffffffefeeedec
fffffffff3f2f1f0 fffffffff7f6f5f4 fffffffffbfaf9f8 fffffffffffefdfc
p.get@uint32():nil
0000000003020100 0000000007060504 000000000b0a0908 000000000f0e0d0c
0000000013121110 0000000017161514 000000001b1a1918 000000001f1e1d1c
0000000023222120 0000000027262524 000000002b2a2928 000000002f2e2d2c
0000000033323130 0000000037363534 000000003b3a3938 000000003f3e3d3c
0000000043424140 0000000047464544 000000004b4a4948 000000004f4e4d4c
0000000053525150 0000000057565554 000000005b5a5958 000000005f5e5d5c
0000000063626160 0000000067666564 000000006b6a6968 000000006f6e6d6c
0000000073727170 0000000077767574 000000007b7a7978 000000007f7e7d7c
0000000083828180 0000000087868584 000000008b8a8988 000000008f8e8d8c
0000000093929190 0000000097969594 000000009b9a9998 000000009f9e9d9c
00000000a3a2a1a0 00000000a7a6a5a4 00000000abaaa9a8 00000000afaeadac
00000000b3b2b1b0 00000000b7b6b5b4 00000000bbbab9b8 00000000bfbebdbc
00000000c3c2c1c0 00000000c7c6c5c4 00000000cbcac9c8 00000000cfcecdcc
00000000d3d2d1d0 00000000d7d6d5d4 00000000dbdad9d8 00000000dfdedddc
00000000e3e2e1e0 00000000e7e6e5e4 00000000ebeae9e8 00000000efeeedec
00000000f3f2f1f0 00000000f7f6f5f4 00000000fbfaf9f8 00000000fffefdfc

======== #6 not-writable binary ========

b''.p.put@int8(0) .. ValueError: not a writable binary
b''.p.pack('b', 0) .. ValueError: not a writable binary

======== #7 pointer() constructor ========

00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00  ................
00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00  ................

======== #8 pointer#hex() ========

p.hex(16) .. a0a1a2a3a4a5a6a7a8a9aaabacadaeaf
p.hex(16):upper .. A0A1A2A3A4A5A6A7A8A9AAABACADAEAF
p.hex(16):cstr .. \xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf
p.hex(16):cstr:upper .. \xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF
p.hex(16):carray .. 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf
p.hex(16):carray:upper .. 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF

======== #9 pointer#each@T() ========

buff.p.each@int8():list .. [1, 35, 69, 103, -119, -85, -51, 101, 102, -2, -36, -70, -104, 118, 84, 50, 16]
buff.p.each@uint8():list .. [1, 35, 69, 103, 137, 171, 205, 101, 102, 254, 220, 186, 152, 118, 84, 50, 16]
buff.p.each@int16():list .. [8961, 26437, -21623, 26061, -410, -17700, 30360, 12884]
buff.p.each@uint16():list .. [8961, 26437, 43913, 26061, 65126, 47836, 30360, 12884]
buff.p.each@int32():list .. [1732584193, 1707977609, -1159922074, 844396184]
buff.p.each@uint32():list .. [1732584193, 1707977609, 3135045222, 844396184]
buff.p.each@int8():be:list .. [1, 35, 69, 103, -119, -85, -51, 101, 102, -2, -36, -70, -104, 118, 84, 50, 16]
buff.p.each@uint8():be:list .. [1, 35, 69, 103, 137, 171, 205, 101, 102, 254, 220, 186, 152, 118, 84, 50, 16]
buff.p.each@int16():be:list .. [291, 17767, -30293, -12955, 26366, -9030, -26506, 21554]
buff.p.each@uint16():be:list .. [291, 17767, 35243, 52581, 26366, 56506, 39030, 21554]
buff.p.each@int32():be:list .. [19088743, -1985229467, 1727978682, -1737075662]
buff.p.each@uint32():be:list .. [19088743, 2309737829, 1727978682, 2557891634]

======== #10 pointer#head() and pointer#tail() ========

<pointer:100>
<pointer:76>
<pointer:0>
<pointer:78>
<pointer:100>
<pointer:76>
<pointer:0>
<pointer:78>

======== #11 properties ========

<binary:RW:100byte>
offset:0, size:100, size@all:100
offset:10, size:90, size@all:100
offset:73, size:27, size@all:100
offset:100, size:0, size@all:100
<memory:100bytes>
offset:0, size:100, size@all:100
offset:10, size:90, size@all:100
offset:73, size:27, size@all:100
offset:100, size:0, size@all:100

======== #12 stream#write() with a stream that is casted from pointer ========

<binary:RW:100byte>
<pointer:0>
61 62 63 64 65 61 62 63 64 65 61 62 63 64 65 61  abcdeabcdeabcdea
62 63 64 65 61 62 63 64 65 61 62 63 64 65 61 62  bcdeabcdeabcdeab
63 64 65 61 62 63 64 65 61 62 63 64 65 61 62 63  cdeabcdeabcdeabc
64 65 61 62 63 64 65 61 62 63 64 65 61 62 63 64  deabcdeabcdeabcd
65 61 62 63 64 65 61 62 63 64 65 61 62 63 64 65  eabcdeabcdeabcde
61 62 63 64 65 61 62 63 64 65 61 62 63 64 65 61  abcdeabcdeabcdea
62 63 64 65                                      bcde
<memory:100bytes>
<pointer:0>
61 62 63 64 65 61 62 63 64 65 61 62 63 64 65 61  abcdeabcdeabcdea
62 63 64 65 61 62 63 64 65 61 62 63 64 65 61 62  bcdeabcdeabcdeab
63 64 65 61 62 63 64 65 61 62 63 64 65 61 62 63  cdeabcdeabcdeabc
64 65 61 62 63 64 65 61 62 63 64 65 61 62 63 64  deabcdeabcdeabcd
65 61 62 63 64 65 61 62 63 64 65 61 62 63 64 65  eabcdeabcdeabcde
61 62 63 64 65 61 62 63 64 65 61 62 63 64 65 61  abcdeabcdeabcdea
62 63 64 65                                      bcde

======== #13 stream#write() with a stream that is created by pointer#writer() ========

<binary:RW:100byte>
<pointer:0>
61 62 63 64 65 61 62 63 64 65 61 62 63 64 65 61  abcdeabcdeabcdea
62 63 64 65 61 62 63 64 65 61 62 63 64 65 61 62  bcdeabcdeabcdeab
63 64 65 61 62 63 64 65 61 62 63 64 65 61 62 63  cdeabcdeabcdeabc
64 65 61 62 63 64 65 61 62 63 64 65 61 62 63 64  deabcdeabcdeabcd
65 61 62 63 64 65 61 62 63 64 65 61 62 63 64 65  eabcdeabcdeabcde
61 62 63 64 65 61 62 63 64 65 61 62 63 64 65 61  abcdeabcdeabcdea
62 63 64 65                                      bcde
<memory:100bytes>
<pointer:0>
61 62 63 64 65 61 62 63 64 65 61 62 63 64 65 61  abcdeabcdeabcdea
62 63 64 65 61 62 63 64 65 61 62 63 64 65 61 62  bcdeabcdeabcdeab
63 64 65 61 62 63 64 65 61 62 63 64 65 61 62 63  cdeabcdeabcdeabc
64 65 61 62 63 64 65 61 62 63 64 65 61 62 63 64  deabcdeabcdeabcd
65 61 62 63 64 65 61 62 63 64 65 61 62 63 64 65  eabcdeabcdeabcde
61 62 63 64 65 61 62 63 64 65 61 62 63 64 65 61  abcdeabcdeabcdea
62 63 64 65                                      bcde

======== #14 writing exceeding amount of data to memory would cause an error ========

<binary:RW:80byte>
<pointer:0>
61 62 63 64 65 61 62 63 64 65 61 62 63 64 65 61  abcdeabcdeabcdea
62 63 64 65 61 62 63 64 65 61 62 63 64 65 61 62  bcdeabcdeabcdeab
63 64 65 61 62 63 64 65 61 62 63 64 65 61 62 63  cdeabcdeabcdeabc
64 65 61 62 63 64 65 61 62 63 64 65 61 62 63 64  deabcdeabcdeabcd
65 61 62 63 64 65 61 62 63 64 65 61 62 63 64 65  eabcdeabcdeabcde
61 62 63 64 65 61 62 63 64 65 61 62 63 64 65 61  abcdeabcdeabcdea
62 63 64 65                                      bcde
<memory:80bytes>
OutOfRange: pointer exceeds the range of memory

======== #15 stream#read() with a stream from a pointer ========

<binary:RW:100byte>
#1
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f  ................
#2
10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f  ................
#3
20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f   !"#$%&'()*+,-./
#4
30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f  0123456789:;<=>?
#5
40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f  @ABCDEFGHIJKLMNO
#6
50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f  PQRSTUVWXYZ[\]^_
#7
60 61 62 63                                      `abc
<memory:100bytes>
#1
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f  ................
#2
10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f  ................
#3
20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f   !"#$%&'()*+,-./
#4
30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f  0123456789:;<=>?
#5
40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f  @ABCDEFGHIJKLMNO
#6
50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f  PQRSTUVWXYZ[\]^_
#7
60 61 62 63                                      `abc

======== #16 stream#read() with a stream from a pointer that has offset ========

<binary:RW:100byte>
#1
0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19  ................
#2
1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29  ...... !"#$%&'()
#3
2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39  *+,-./0123456789
#4
3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49  :;<=>?@ABCDEFGHI
#5
4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59  JKLMNOPQRSTUVWXY
#6
5a 5b 5c 5d 5e 5f 60 61 62 63                    Z[\]^_`abc
<memory:100bytes>
#1
0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19  ................
#2
1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29  ...... !"#$%&'()
#3
2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39  *+,-./0123456789
#4
3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49  :;<=>?@ABCDEFGHI
#5
4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59  JKLMNOPQRSTUVWXY
#6
5a 5b 5c 5d 5e 5f 60 61 62 63                    Z[\]^_`abc
