package examples;
import java.util.Arrays;
import java.util.List;
import joinery.DataFrame;
public class FizzBuzz {
public static void main(final String[] args) {
// generate data frame with numbers 1-100
final DataFrame<Integer> input = new DataFrame<Integer>().add("number");
for (int i = 1; i <= 100; i++) {
input.append(Arrays.asList(i));
}
// apply transform to "solve" fizz buzz
final DataFrame<Object> df = input
.add("value")
.transform(new DataFrame.RowFunction<Integer, Object>() {
@Override
public List<List<Object>> apply(final List<Integer> row) {
final int value = row.get(0);
return Arrays.asList(
Arrays.<Object>asList(
value,
value % 15 == 0 ? "FizzBuzz" :
value % 3 == 0 ? "Fizz" :
value % 5 == 0 ? "Buzz" :
String.valueOf(value)
)
);
}
});
// group, count, sort, and display the top results
System.out.println(
df.groupBy("value")
.count()
.sortBy("-number")
.head(3)
.resetIndex()
);
}
}