Libraryless. Click here for Pure Java version (1353L/9K/29K).
1 | !752 |
2 | |
3 | /* |
4 | While idle: |
5 | Take some text |
6 | Try to compress it, e.g. by repeating elements |
7 | Save result (if successful) with notes |
8 | */ |
9 | |
10 | static S compressorID = "#1002225"; |
11 | |
12 | p { |
13 | logOutput(); |
14 | //while true { |
15 | pcall { doIt(); } |
16 | sleepSeconds(1); |
17 | //} |
18 | } |
19 | |
20 | static void doIt() { |
21 | S text = takeSomeText(); |
22 | print("Processing input, size " + toK(l(text)) + " k chars, md5: " + md5(text)); |
23 | S compression = tryToCompress(text); |
24 | if (empty(compression)) |
25 | print("No compression found"); |
26 | else { |
27 | boolean ok = verifyCompression(text, compression); |
28 | if (ok) { |
29 | print("Compression verifies."); |
30 | print(indent(2, compression)); |
31 | } else |
32 | print("Compression does not verify. Compressor apparently unreliable."); |
33 | int m = l(text), n = l(compression); |
34 | long percent = n*100L/m; |
35 | if (n < m) |
36 | print("Text successfully compressed to " + percent + "%"); |
37 | else |
38 | print("Compression is equal size or bigger than original (+" + (percent-100) + "%)"); |
39 | } |
40 | } |
41 | |
42 | static S takeSomeText() { |
43 | return fromLines(repeat("Hello", 5)); |
44 | } |
45 | |
46 | static S tryToCompress(S text) { |
47 | O compressor = hotwireCached(compressorID); |
48 | ret (S) call(compressor, "compress", text); |
49 | } |
50 | |
51 | static S expand(S compression) { |
52 | L<S> lines = toLines(compression); |
53 | new Matches m; |
54 | assertTrue(match("expand with #*", lines.get(0), m)); |
55 | S expanderID = m.get(0); |
56 | O expander = hotwireCached(expanderID); |
57 | ret (S) call(expander, "expand", compression); |
58 | } |
59 | |
60 | static boolean verifyCompression(S text, S compression) { |
61 | ret toLines(text).equals(toLines(expand(compression))); |
62 | } |
download show line numbers debug dex old transpilations
Travelled to 15 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, teubizvjbppd, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1002221 |
Snippet name: | Idle Bot - compress some text |
Eternal ID of this version: | #1002221/1 |
Text MD5: | 0315428e4fc4620c94066c3814fbc88c |
Transpilation MD5: | b4c67182a20334d322ad063e30007ff9 |
Author: | stefan |
Category: | javax |
Type: | JavaX source code |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2015-12-30 00:36:46 |
Source code size: | 1628 bytes / 62 lines |
Pitched / IR pitched: | No / Yes |
Views / Downloads: | 985 / 885 |
Referenced in: | [show references] |