Skip to content

Commit 83f7cc4

Browse files
committed
converts: add number base conversion #log
1 parent 71d2f67 commit 83f7cc4

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

src/main/java/net/cofcool/sourcebox/internal/Converts.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,23 @@ public Arg demo() {
147147
}
148148
}
149149

150+
private class Hex implements Pipeline {
151+
152+
@Override
153+
public String run(Args args) throws Exception {
154+
var radix = args.readArg("radix").getVal().map(Integer::parseUnsignedInt).orElse(10);
155+
var newRadix = args.readArg("nradix").getVal().map(Integer::parseUnsignedInt).orElse(2);
156+
var val = Long.valueOf(args.readArg(INPUT).val(), radix);
157+
158+
return Long.toString(val, newRadix);
159+
}
160+
161+
@Override
162+
public Arg demo() {
163+
return new Arg(getClass().getSimpleName().toLowerCase(), null, "number base conversion", false, "1970 --radix=10 --nradix=2");
164+
}
165+
}
166+
150167
private class Lower implements Pipeline {
151168

152169
@Override

src/test/java/net/cofcool/sourcebox/internal/ConvertsTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,23 @@ void morseCode() throws Exception {
166166
Assertions.assertEquals("HELLO WORLD", de);
167167
}
168168

169+
@Test
170+
void hex() throws Exception {
171+
var en = instance().runCommand(args
172+
.arg("cmd", "hex")
173+
.arg("in", "1970")
174+
.arg("radix", "10")
175+
.arg("nradix", "2")
176+
);
177+
var de = instance().runCommand(args
178+
.arg("cmd", "hex")
179+
.arg("in", en)
180+
.arg("radix", "2")
181+
.arg("nradix", "10")
182+
);
183+
Assertions.assertEquals("1970", de);
184+
}
185+
169186
@Test
170187
void desdeSecurity() throws Exception {
171188
var en = instance().runCommand(args

0 commit comments

Comments
 (0)