package com.genuineminecraft.bf;
public class BrainFuckeryTest {
public static String test = "++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.";
public static void main(String[] args) {
if (args.length > 0)
test = args[0];
test = test.replaceAll("[^\\,\\.\\<\\>\\[\\]\\-\\+]", "");
System.out.println("===================== Time Trials =====================");
timeTrials();
}
public static void timeTrials() {
long start, stop;
int count = 100000;
int dCount = 10;
for (int j = 0; j < dCount; j++) {
if (j == 0) {
System.out.println("Info: Running " + count + " times x" + dCount + ".");
System.out.println("Info: These are the pre-compile results!");
} else
System.out.println("Info: These are the post-compile results!");
start = System.nanoTime();
for (int i = 0; i < count; i++)
encode_1(test);
stop = System.nanoTime();
System.out.println("Debug Encode 1: " + (stop - start) + " nanoseconds.");
start = System.nanoTime();
for (int i = 0; i < count; i++)
encode_2(test);
stop = System.nanoTime();
System.out.println("Debug Encode 2: " + (stop - start) + " nanoseconds.");
}
}
private static String encode_1(String in) {
String out = "";
int counter = 0;
for (int place = 0; place < in.length(); place++) {
char compare = in.charAt(place);
if (in.length() > place + 1 && compare == in.charAt(place + 1)) {
counter++;
continue;
}
switch (counter) {
case 1:
out += Character.toString(compare);
break;
case 0:
out += Character.toString(compare);
break;
default:
out += Integer.toString(counter + 1);
out += Character.toString(compare);
break;
}
counter = 0;
}
return out;
}
private static String encode_2(String in) {
StringBuilder out = new StringBuilder();
int counter = 0;
for (int place = 0; place < in.length(); place++) {
char compare = in.charAt(place);
if (in.length() > place + 1 && compare == in.charAt(place + 1)) {
counter++;
continue;
}
switch (counter) {
case 1:
out.append(Character.toString(compare));
case 0:
out.append(Character.toString(compare));
break;
default:
out.append(Integer.toString(counter + 1));
out.append(Character.toString(compare));
break;
}
counter = 0;
}
return out.toString();
}
}
Comments
0 B
|👍
/👎