package org.activityinfo.server.report.renderer.image; import com.google.code.appengine.awt.Color; import com.google.code.appengine.awt.Graphics2D; import com.google.code.appengine.awt.image.BufferedImage; import com.google.code.appengine.imageio.ImageIO; import org.activityinfo.legacy.shared.reports.content.PieMapMarker; import org.activityinfo.legacy.shared.reports.content.PieMapMarker.SliceValue; import org.junit.Test; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class ImageMapRendererTest { @Test public void testPieChartRenderer() throws IOException { renderPieChart(5); renderPieChart(10); renderPieChart(89); renderPieChart(90); renderPieChart(91); renderPieChart(170); renderPieChart(180); renderPieChart(185); renderPieChart(265); renderPieChart(270); renderPieChart(275); renderPieChart(300); renderPieChart(350); renderPieChart(360); } private void renderPieChart(double value) throws FileNotFoundException, IOException { int radius = 21; SliceValue s1 = new SliceValue(); s1.setColor("4169E1"); s1.setValue(value); SliceValue s2 = new SliceValue(); s2.setColor("EEEE00"); s2.setValue(360d - value); PieMapMarker pmm = new PieMapMarker(); pmm.setRadius(21); pmm.setColor("FF0000"); pmm.getSlices().add(s1); pmm.getSlices().add(s2); pmm.setX(radius); pmm.setY(radius); BufferedImage icon = new BufferedImage(radius * 2, radius * 2, BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = icon.createGraphics(); g2d.setPaint(new Color(255, 255, 255, 0)); g2d.fillRect(0, 0, radius * 2, radius * 2); ImageMapRenderer.drawPieMarker(g2d, pmm); File outputFile = new File("target/report-tests/pieChart-" + ((int) value) + ".png"); outputFile.getParentFile().mkdirs(); FileOutputStream fos = new FileOutputStream(outputFile); ImageIO.write(icon, "PNG", fos); fos.close(); } }