import java.util.Date; import java.applet.Applet; import java.awt.*; public class TakApplet extends Applet { boolean useFloat = false; TextArea results = new TextArea(); TextField passes = new TextField("100"); Button runBenchmark = new Button("Run Benchmark"); CheckboxGroup cbg = new CheckboxGroup(); Checkbox floatCB = new Checkbox("float", cbg, false); Checkbox intCB = new Checkbox("int", cbg, true); public void init() { setLayout(new BorderLayout()); Panel north = new Panel(); north.setLayout(new FlowLayout()); north.add(new Label("Tak Benchmark")); add("North", north); Panel center = new Panel(); center.setLayout(new GridLayout(4, 1)); Panel c1 = new Panel(); c1.setLayout(new FlowLayout()); c1.add(new Label("Number of passes: ")); c1.add(passes); center.add(c1); center.add(intCB); center.add(floatCB); center.add(results); add("Center", center); Panel south = new Panel(); south.add(runBenchmark); add("South", south); } public boolean action (Event e, Object o) { if (e.target == runBenchmark) { results.setText(benchmark()); return true; } return false; } public String benchmark() { int numpasses; try { numpasses = Integer.parseInt(passes.getText()); } catch (Exception e) { numpasses = 1000; } Date d1 = new Date(); if (floatCB.getState()) { for (int i = 0; i < numpasses; i++) { Tak.Tak(18.0f, 12.0f, 6.0f); } } else { for (int i = 0; i < numpasses; i++) { Tak.Tak(18, 12, 6); } } Date d2 = new Date(); long TimeRequired = d2.getTime() - d1.getTime(); double numseconds = TimeRequired/1000.0; String result = "Completed " + numpasses + " passes in " + numseconds + " seconds"; result += "\n" + numpasses/numseconds + " calls per second\n"; return result; } }