package com.googlecode.totallylazy.collections;
import com.googlecode.totallylazy.Files;
import org.junit.Ignore;
import org.junit.Test;
import java.io.File;
import static com.googlecode.totallylazy.Strings.bytes;
@Ignore
public class TreeVisualiser {
@Test
public void canVisualiseTree() throws Exception {
render((TreeMap<?, ?>) MapPerformanceTest.createPersistent(MapPerformanceTest.range));
}
private void render(TreeMap<?, ?> map) {
final File file = new File(Files.temporaryDirectory(), getClass().getSimpleName() + ".html");
Files.write(bytes("<html><head><style>" +
".tree { border: 1px solid grey; padding: 0 1px; } " +
".key { text-align: center; } " +
".tree, .left, .right { display: table-cell; }" +
"</style></head><body>" + new TreeMapRenderer().render(map) + "</body></html>"), file);
System.out.println("tree = " + file);
}
private class TreeMapRenderer {
public String render(TreeMap<?, ?> map) {
if (map.isEmpty()) return "";
return "<div class='tree'>" +
"<div class='key'>" + map.key() + "</div>" +
"<div class='left'>" + render(map.left()) + "</div>" +
"<div class='right'>" + render(map.right()) + "</div>" +
"</div>";
}
}
}