The key for release to market has been expired. Needs new key and package name.
[0xbench:0xbench.git] / src / org / zeroxlab / benchmark / CaseDrawCircle2.java
1 /*
2  * Copyright (C) 2010 0xlab - http://0xlab.org/
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.zeroxlab.zeroxbenchmark;
18
19 import android.util.Log;
20
21 import android.os.SystemClock;
22
23 import android.app.Activity;
24 import android.content.Context;
25 import android.content.BroadcastReceiver;
26 import android.content.Intent;
27 import android.os.Bundle;
28 import android.widget.*;
29 import android.view.*;
30 import java.nio.*;
31 import java.util.ArrayList;
32
33 public class CaseDrawCircle2 extends Case {
34
35     public static int Circle2Round = 300;
36
37     CaseDrawCircle2() {
38         super("CaseDrawCircle2", "org.zeroxlab.graphics.DrawCircle2", 2, Circle2Round);
39         mType = "2d-fps";
40         String [] _tmp = {
41             "2d",
42             "render",
43             "skia",
44             "view",
45         };
46         mTags = _tmp;
47     }
48
49     public String getTitle() {
50         return "Draw Circle2";
51     }
52
53     public String getDescription() {
54         return "call canvas.drawCircle2 to draw circle for " + Circle2Round + " times";
55     }
56
57     @Override
58     public String getResultOutput() {
59         if (!couldFetchReport()) {
60             return "DrawCircle2 has no report";
61         }
62
63         String result = "";
64         float total = 0;
65         int length = mResult.length;
66
67         for (int i = 0; i < length; i++) {
68             float second = (mResult[i] / 1000f);
69             float fps = (float) mCaseRound / second; // milliseconds to seconds
70             result += "Round " + i +": fps = " + fps + "\n";
71             total  += fps;
72         }
73
74         result += "Average: fps = " + ((float) total / length) + "\n";
75         return result;
76     }
77
78     /*
79      *  Get Average Benchmark
80      */
81     public double getBenchmark(Scenario s) {
82         double total = 0;
83         int length = mResult.length;
84         for (int i = 0; i < length; i++) {
85             double second = (mResult[i] / 1000f);
86             double fps = (double)mCaseRound / second;
87             total  += fps;
88         }
89         return total / length;
90     }
91
92     @Override
93     public ArrayList<Scenario> getScenarios () {
94         ArrayList<Scenario> scenarios = new ArrayList<Scenario>();
95
96         Scenario s = new Scenario(getTitle(), mType, mTags);
97         s.mLog = getResultOutput();
98         for (int i = 0; i < mResult.length; i++) {
99             float second = (mResult[i] / 1000f);
100             float fps = (float)mCaseRound / second;
101             s.mResults.add(((Float)fps).doubleValue());
102         }
103
104         scenarios.add(s);
105         return scenarios;
106     }
107
108 }