Author: eyang
Date: Mon Mar  9 16:51:07 2009
New Revision: 751742

URL: http://svn.apache.org/viewvc?rev=751742&view=rev
Log:
HADOOP-5411.  Converted from String to StringBuilder for Chart class.

Added:
    hadoop/core/trunk/src/contrib/chukwa/src/test/org/apache/hadoop/chukwa/hicc/
    
hadoop/core/trunk/src/contrib/chukwa/src/test/org/apache/hadoop/chukwa/hicc/TestChart.java
Modified:
    
hadoop/core/trunk/src/contrib/chukwa/src/java/org/apache/hadoop/chukwa/database/DatabaseConfig.java
    
hadoop/core/trunk/src/contrib/chukwa/src/java/org/apache/hadoop/chukwa/hicc/Chart.java

Modified: 
hadoop/core/trunk/src/contrib/chukwa/src/java/org/apache/hadoop/chukwa/database/DatabaseConfig.java
URL: 
http://svn.apache.org/viewvc/hadoop/core/trunk/src/contrib/chukwa/src/java/org/apache/hadoop/chukwa/database/DatabaseConfig.java?rev=751742&r1=751741&r2=751742&view=diff
==============================================================================
--- 
hadoop/core/trunk/src/contrib/chukwa/src/java/org/apache/hadoop/chukwa/database/DatabaseConfig.java
 (original)
+++ 
hadoop/core/trunk/src/contrib/chukwa/src/java/org/apache/hadoop/chukwa/database/DatabaseConfig.java
 Mon Mar  9 16:51:07 2009
@@ -167,22 +167,22 @@
                if(timeWindow<=0) {
                        timeWindow=1;                   
                }
-               if(timeWindow > YEAR) {
-                       tableType = "_century";
+               if(timeWindow > DECADE) {
+                       tableType = "_decade";
                        partitionSize=CENTURY;                  
-               } else if(timeWindow > QUARTER) {
-                       tableType = "_century";
+               } else if(timeWindow > YEAR) {
+                       tableType = "_decade";
                        partitionSize=CENTURY;
-               } else if(timeWindow > MONTH) {
+               } else if(timeWindow > QUARTER) {
                        tableType = "_decade";
                        partitionSize=DECADE;
-               } else if(timeWindow > WEEK) {
+               } else if(timeWindow > MONTH) {
                        tableType = "_year";
                        partitionSize=YEAR;
-               } else if(timeWindow > DAY) {
+               } else if(timeWindow > WEEK) {
                        tableType = "_quarter";
                        partitionSize=QUARTER;
-               } else if(timeWindow > 60*60*1000) {
+               } else if(timeWindow > DAY) {
                        tableType = "_month";
                        partitionSize=MONTH;                    
                } else {

Modified: 
hadoop/core/trunk/src/contrib/chukwa/src/java/org/apache/hadoop/chukwa/hicc/Chart.java
URL: 
http://svn.apache.org/viewvc/hadoop/core/trunk/src/contrib/chukwa/src/java/org/apache/hadoop/chukwa/hicc/Chart.java?rev=751742&r1=751741&r2=751742&view=diff
==============================================================================
--- 
hadoop/core/trunk/src/contrib/chukwa/src/java/org/apache/hadoop/chukwa/hicc/Chart.java
 (original)
+++ 
hadoop/core/trunk/src/contrib/chukwa/src/java/org/apache/hadoop/chukwa/hicc/Chart.java
 Mon Mar  9 16:51:07 2009
@@ -59,7 +59,7 @@
     private String[] seriesOrder=null;
     
        public Chart(HttpServletRequest request) {
-               if(request.getParameter("boxId")!=null) {
+               if(request!=null && request.getParameter("boxId")!=null) {
                        this.id=request.getParameter("boxId");
                } else {
                        this.id="0";
@@ -154,65 +154,72 @@
        legend = toggle;
     }
     public String plot() {
-       String output="";
+        SimpleDateFormat format = new SimpleDateFormat("m:s:S");
+       StringBuilder output= new StringBuilder();
        if(dataset==null) {
-               output = "No Data available.";
-               return output;
-       }
-               String dateFormat="%H:%M";
-               if(xLabel.equals("Time")) {
-                       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 
HH:mm:ss");
-               long xMin;
-                       try {
-                               xMin = Long.parseLong(xLabelRange.get(0));
-               long xMax = 
Long.parseLong(xLabelRange.get(xLabelRange.size()-1));
-               if(xMax-xMin>31536000000L) {
-                       dateFormat="%y";
-               } else if(xMax-xMin>2592000000L) {
-                       dateFormat="%y-%m";
-               } else if(xMax-xMin>604800000L) {
-                       dateFormat="%m-%d";
+               output.append("No Data available.");
+               return output.toString();
+        }
+        String dateFormat="%H:%M";
+        if(xLabel.intern()=="Time".intern()) {
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            long xMin;
+            try {
+                xMin = Long.parseLong(xLabelRange.get(0));
+                long xMax = 
Long.parseLong(xLabelRange.get(xLabelRange.size()-1));
+                if(xMax-xMin>31536000000L) {
+                    dateFormat="%y";
+                } else if(xMax-xMin>2592000000L) {
+                    dateFormat="%y-%m";
+                } else if(xMax-xMin>604800000L) {
+                    dateFormat="%m-%d";
                } else if(xMax-xMin>86400000L) {
-                       dateFormat="%m-%d %H:%M";
+                    dateFormat="%m-%d %H:%M";
                }
-                       } catch (NumberFormatException e) {
-                               dateFormat="%y-%m-%d %H:%M";
-                       }
-               }
-        String xAxisOptions = "";
-        if(xLabel.equals("Time")) {
-                xAxisOptions = "timeformat: \""+dateFormat+"\",mode: \"time\"";
+            } catch (NumberFormatException e) {
+                dateFormat="%y-%m-%d %H:%M";
+            }
+        }
+        StringBuilder xAxisOptions = new StringBuilder();
+        if(xLabel.intern()=="Time".intern()) {
+            xAxisOptions.append("timeformat: \"");
+            xAxisOptions.append(dateFormat);
+            xAxisOptions.append("\",mode: \"time\"");
         } else {
-                xAxisOptions = "tickFormatter: function (val, axis) { return 
xLabels[Math.round(val)]; }, ticks: 0";
+            xAxisOptions.append("tickFormatter: function (val, axis) { return 
xLabels[Math.round(val)]; }, ticks: 0");
+        }
+        if(request!=null && request.getParameter("format")==null) {
+            output.append("<html><link href=\"/hicc/css/default.css\" 
rel=\"stylesheet\" type=\"text/css\">\n");
+            output.append("<body onresize=\"wholePeriod()\"><script 
type=\"text/javascript\" src=\"/hicc/js/jquery-1.2.6.min.js\"></script>\n");
+            output.append("<script type=\"text/javascript\" 
src=\"/hicc/js/jquery.flot.pack.js\"></script>\n");
+            output.append("<script type=\"text/javascript\" 
src=\"/hicc/js/excanvas.pack.js\"></script>\n");
+            output.append("<div 
id=\"placeholderTitle\"><center>"+title+"</center></div>\n");
+            output.append("<div id=\"placeholder\" 
style=\"width:"+this.width+"px;height:"+this.height+"px;\"></div>\n");
+            output.append("<center><div 
id=\"placeholderLegend\"></div></center>\n");
+            output.append("<input type=\"hidden\" id=\"boxId\" 
value=\"iframe"+this.id+"\">\n");
+            output.append("<script type=\"text/javascript\" 
src=\"/hicc/js/flot.extend.js\">\n");
+            output.append("</script>\n");
+            output.append("<script type=\"text/javascript\">\n");
+            output.append("var chartTitle=\"<center>"+title+"</center>\";\n");
+            output.append("var height="+this.height+";\n");
+            output.append("var xLabels=new Array();\n");
+            output.append("var cw = document.body.clientWidth-70;\n");
+            output.append("var ch = document.body.clientHeight-50;\n");
+            
output.append("document.getElementById('placeholder').style.width=cw+'px';\n");
+            
output.append("document.getElementById('placeholder').style.height=ch+'px';\n");
         }
-        output = "<html><link href=\"/hicc/css/default.css\" 
rel=\"stylesheet\" type=\"text/css\">\n" +
-                        "<body onresize=\"wholePeriod()\"><script 
type=\"text/javascript\" src=\"/hicc/js/jquery-1.2.6.min.js\"></script>\n"+
-                        "<script type=\"text/javascript\" 
src=\"/hicc/js/jquery.flot.pack.js\"></script>\n"+
-                        "<script type=\"text/javascript\" 
src=\"/hicc/js/excanvas.pack.js\"></script>\n"+
-                        "<center>"+title+"</center>\n"+
-                        "<div id=\"placeholder\" 
style=\"width:"+this.width+"px;height:"+this.height+"px;\"></div>\n"+
-                        "<div id=\"placeholderLegend\"></div>\n"+
-                        "<input type=\"hidden\" id=\"boxId\" 
value=\"iframe"+this.id+"\">\n"+
-                        "<script type=\"text/javascript\" 
src=\"/hicc/js/flot.extend.js\">\n" +
-                        "</script>\n" +
-                        "<script type=\"text/javascript\">\n"+
-                         "var xLabels=new Array();\n"+
-                        "var cw = document.body.clientWidth-70;\n"+
-                        "var ch = document.body.clientHeight-50;\n"+
-                        
"document.getElementById('placeholder').style.width=cw+'px';\n"+
-                        
"document.getElementById('placeholder').style.height=ch+'px';\n"+
-                        "_options={\n"+
-                        "        points: { show: false },\n"+
-                        "        xaxis: { "+xAxisOptions+" },\n"+
-                        "        selection: { mode: \"x\" },\n"+
-                        "        grid: {\n"+
-                        "                 clickable: true,\n"+
-                        "                 hoverable: true,\n"+
-                        "                 tickColor: \"#C0C0C0\",\n"+
-                        "                 backgroundColor:\"#FFFFFF\"\n"+
-                        "        },\n"+
-                        "        legend: { show: "+this.legend+" },\n"+
-                         "        yaxis: { ";
+        output.append("_options={\n");
+        output.append("        points: { show: false },\n");
+        output.append("        xaxis: { "+xAxisOptions+" },\n");
+        output.append("          selection: { mode: \"x\" },\n");
+        output.append("          grid: {\n");
+        output.append("                   clickable: true,\n");
+        output.append("                   hoverable: true,\n");
+        output.append("                   tickColor: \"#C0C0C0\",\n");
+        output.append("                   backgroundColor:\"#FFFFFF\"\n");
+        output.append("          },\n");
+        output.append("          legend: { show: "+this.legend+", noColumns: 
3, container: $(\"#placeholderLegend\") },\n");
+        output.append("        yaxis: { ");
         boolean stack = false;
         for(String type : this.chartType) {
             if(type.startsWith("stack")) {
@@ -220,143 +227,153 @@
             }
         }
         if(stack) {
-            output = output + "mode: \"stack\", ";
+            output.append("mode: \"stack\", ");
         }
         if(userDefinedMax) {
-               output = output + "tickFormatter: function(val, axis) { " +
-                   "return val.toFixed(axis.tickDecimals) + \" %\"; }";
+            output.append("tickFormatter: function(val, axis) { return 
val.toFixed(axis.tickDecimals) + \" %\"; }");
         } else {
-            output = output + "tickFormatter: function(val, axis) { " +
-                "if (val >= 1000000000000000) return (val / 
1000000000000000).toFixed(2) + \"x10<sup>15</sup>\";" +
-                "else if (val >= 100000000000000) return (val / 
100000000000000).toFixed(2) + \"x10<sup>14</sup>\";" +
-                "else if (val >= 10000000000000) return (val / 
10000000000000).toFixed(2) + \"x10<sup>13</sup>\";" +
-                "else if (val >= 1000000000000) return (val / 
1000000000000).toFixed(2) + \"x10<sup>12</sup>\";" +
-                "else if (val >= 100000000000) return (val / 
100000000000).toFixed(2) + \"x10<sup>11</sup>\";" +
-                "else if (val >= 10000000000) return (val / 
10000000000).toFixed(2) + \"x10<sup>10</sup>\";" +
-               "else if (val >= 1000000000) return (val / 
1000000000).toFixed(2) + \"x10<sup>9</sup>\";" +
-               "else if (val >= 100000000) return (val / 100000000).toFixed(2) 
+ \"x10<sup>8</sup>\";" +
-               "else if (val >= 10000000) return (val / 10000000).toFixed(2) + 
\"x10<sup>7</sup>\";" +
-               "else if (val >= 1000000) return (val / 1000000).toFixed(2) + 
\"x10<sup>6</sup>\";" +
-               "else if (val >= 100000) return (val / 100000).toFixed(2) + 
\"x10<sup>5</sup>\";" +
-               "else if (val >= 10000) return (val / 10000).toFixed(2) + 
\"x10<sup>4</sup>\";" +
-               "else if (val >= 2000) return (val / 1000).toFixed(2) + 
\"x10<sup>3</sup>\";" +
-                       "else return val.toFixed(2) + \"\"; }";
+            output.append("tickFormatter: function(val, axis) { ");
+            output.append("if (val >= 1000000000000000) return (val / 
1000000000000000).toFixed(2) + \"x10<sup>15</sup>\";");
+            output.append("else if (val >= 100000000000000) return (val / 
100000000000000).toFixed(2) + \"x10<sup>14</sup>\";");
+            output.append("else if (val >= 10000000000000) return (val / 
10000000000000).toFixed(2) + \"x10<sup>13</sup>\";");
+            output.append("else if (val >= 1000000000000) return (val / 
1000000000000).toFixed(2) + \"x10<sup>12</sup>\";");
+            output.append("else if (val >= 100000000000) return (val / 
100000000000).toFixed(2) + \"x10<sup>11</sup>\";");
+            output.append("else if (val >= 10000000000) return (val / 
10000000000).toFixed(2) + \"x10<sup>10</sup>\";");
+            output.append("else if (val >= 1000000000) return (val / 
1000000000).toFixed(2) + \"x10<sup>9</sup>\";");
+            output.append("else if (val >= 100000000) return (val / 
100000000).toFixed(2) + \"x10<sup>8</sup>\";");
+            output.append("else if (val >= 10000000) return (val / 
10000000).toFixed(2) + \"x10<sup>7</sup>\";");
+            output.append("else if (val >= 1000000) return (val / 
1000000).toFixed(2) + \"x10<sup>6</sup>\";");
+            output.append("else if (val >= 100000) return (val / 
100000).toFixed(2) + \"x10<sup>5</sup>\";");
+            output.append("else if (val >= 10000) return (val / 
10000).toFixed(2) + \"x10<sup>4</sup>\";");
+            output.append("else if (val >= 2000) return (val / 
1000).toFixed(2) + \"x10<sup>3</sup>\";");
+            output.append("else return val.toFixed(2) + \"\"; }");
         }
         if(userDefinedMax) {
-            output = output + ", min:0, max:"+this.max;
+            output.append(", min:0, max:");
+            output.append(this.max);
         }
-        output = output + "}\n";
-        output = output + "    };\n";
+        output.append("}\n");
+        output.append("        };\n");
         if(!xLabel.equals("Time")) {
+            output.append("xLabels = [\"");
             for(int i=0;i<xLabelRange.size();i++) {
-                output = output + "xLabels[" + i + "]=\"" + 
xLabelRange.get(i)+"\";\n";
+                if(i>0) {
+                    output.append("\",\"");
+                }
+                output.append(xLabelRange.get(i));
             }
+            output.append("\"];\n");
+        }
+        output.append("_series=[\n");
+        ColorPicker cp = new ColorPicker();
+        int i=0;
+        for(TreeMap<String, TreeMap<String, Double>> dataMap : this.dataset) {
+                       String[] keyNames = null;
+            if (this.seriesOrder != null) {
+                keyNames = this.seriesOrder;
+            } else {
+                keyNames = ((String[]) dataMap.keySet().toArray(
+                        new String[dataMap.size()]));
+            }
+            int counter = 0;
+            if (i != 0) {
+                if (!this.userDefinedMax) {
+                    this.max = 0;
+                }
+            }
+            for (String seriesName : keyNames) {
+                int counter2 = 0;
+                if (counter != 0) {
+                    output.append(",");
+                }
+                String param = "fill: false";
+                String type = "lines";
+                if (this.chartType.get(i).intern() == "stack-area".intern()
+                        || this.chartType.get(i).intern() == "area".intern()) {
+                    param = "fill: true";
+                }
+                if (this.chartType.get(i).intern() == "bar".intern()) {
+                    type = "bars";
+                    param = "stepByStep: true";
+                }
+                if (this.chartType.get(i).intern() == "point".intern()) {
+                    type = "points";
+                    param = "fill: false";
+                }
+                output.append("  {");
+                output.append(type);
+                output.append(": { show: true, ");
+                output.append(param);
+                output.append(" }, color: \"");
+                output.append(cp.get(counter + 1));
+                output.append("\", label: \"");
+                output.append(seriesName);
+                output.append("\", ");
+                String showYAxis = "false";
+                String shortRow = "false";
+                if (counter == 0 || i > 0) {
+                    showYAxis = "true";
+                    shortRow = "false";
+                }
+                output.append(" row: { show: ");
+                output.append(showYAxis);
+                output.append(",shortRow:");
+                output.append(shortRow);
+                output.append(", showYAxis:");
+                output.append(showYAxis);
+                output.append("}, data:[");
+                TreeMap<String, Double> data = dataMap.get(seriesName);
+                for (String dp : data.keySet()) {
+                    int rangeLabel = 0;
+                    if (counter2 != 0) {
+                        output.append(",");
+                    }
+                    if (xLabel.equals("Time")) {
+                        if (data.get(dp) == Double.NaN) {
+                            output.append("[\"");
+                            output.append(dp);
+                            output.append("\",NULL]");
+                        } else {
+                            output.append("[\"");
+                            output.append(dp);
+                            output.append("\",");
+                            output.append(data.get(dp));
+                            output.append("]");
+                        }
+                    } else {
+                        long value = xLabelRangeHash.get(dp);
+                        if (data.get(dp) == Double.NaN) {
+                            output.append("[\"");
+                            output.append(value);
+                            output.append("\",NULL]");
+                        } else {
+                            output.append("[\"");
+                            output.append(value);
+                            output.append("\",");
+                            output.append(data.get(dp));
+                            output.append("]");
+                        }
+                        rangeLabel++;
+                    }
+                    counter2++;
+                }
+                output.append("], min:0");
+                if (this.userDefinedMax) {
+                    output.append(", max:");
+                    output.append(this.max);
+                }
+                output.append("}");
+                counter++;
+            }
+            i++;
+        }          
+        output.append(" ];\n");
+        if(request!=null && request.getParameter("format")==null) {
+            output.append(" wholePeriod();</script></body></html>\n");
+        } else {
+            output.append("chartTitle=\"<center>"+this.title+"</center>\";");
+            output.append("height="+this.height+";");
         }
-        output = output + "_series=[\n";
-/*                         ArrayList<Long> numericLabelRange = new 
ArrayList<Long>();
-                                   if(xLabel.equals("Time")) {
-                                       SimpleDateFormat formatter = new 
SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                                       for(int i=0;i<xLabelRange.size();i++) {
-                                               try {
-                                               Date d = 
formatter.parse(xLabelRange.get(i));
-                                               
numericLabelRange.add(d.getTime());
-                                               } catch(Exception e) {
-                                               }
-                                       }                
-                                   } else {
-                                           for(int 
i=0;i<xLabelRange.size();i++) {
-                                               
numericLabelRange.add(Long.parseLong(xLabelRange.get(i)));
-                                           }
-                                   }*/
-                               ColorPicker cp = new ColorPicker();
-                                       int i=0;
-                                   for(TreeMap<String, TreeMap<String, 
Double>> dataMap : this.dataset) {
-                                   String[] keyNames = null;
-                                   if(this.seriesOrder!=null) {
-                                       keyNames = this.seriesOrder;
-                                   } else {
-                                   keyNames = ((String[]) 
dataMap.keySet().toArray(new String[dataMap.size()]));
-                                   }
-                                               int counter=0;
-                                               if(i!=0) {
-                                                       
if(!this.userDefinedMax) {
-                                                           this.max=0;
-                                                       }
-                                               }
-                                               for(String ki : keyNames) {
-                                                       TreeMap<String, Double> 
data = dataMap.get(ki);
-                                                       if(data!=null) {
-                                                           for(String dp: 
data.keySet()) {
-                                                               try {
-                                                                       
if(data.get(dp)>this.max) {
-                                                                               
if(!this.userDefinedMax) {
-                                                                               
    this.max=data.get(dp);
-                                                                               
}
-                                                                       }
-                                                               } catch 
(NullPointerException e) {
-                                                                       // skip 
if this data point does not exist.
-                                                               }
-                                                           }
-                                                       }
-                                               }                               
                
-                                   for(String seriesName : keyNames) {
-                                                   int counter2=0;
-                                                   if(counter!=0) {
-                                                           output+=",";
-                                                   }
-                                                   String param="fill: false";
-                                                   String type="lines";
-                                                   
if(this.chartType.get(i).equals("stack-area") || 
this.chartType.get(i).equals("area")) {
-                                                       param="fill: true";
-                                                   }
-                                                   
if(this.chartType.get(i).equals("bar")) {
-                                                       type="bars";
-                                                       param="stepByStep: 
true";
-                                                   }
-                                                    
if(this.chartType.get(i).equals("point")) {
-                                                        type="points";
-                                                        param="fill: false";
-                                                    }
-                                                   output+="  {"+type+": { 
show: true, "+param+" }, color: \""+cp.get(counter+1)+"\", label: 
\""+seriesName+"\", ";
-                                                   String showYAxis="false";
-                                                   String shortRow="false";
-                                                   if(counter==0 || i>0) {
-                                                       showYAxis="true";
-                                                       shortRow="false";
-                                                   }
-                                                   output+=" row: { show: 
"+showYAxis+",shortRow:"+shortRow+", showYAxis:"+showYAxis+"}, data:[";
-                                           TreeMap<String, Double> data = 
dataMap.get(seriesName);
-                                           for(String dp : data.keySet()) {
-                                                       if(counter2!=0) {
-                                                               output+=",";
-                                                       }
-                                                        
if(xLabel.equals("Time")) {
-                                                            
if(data.get(dp)==Double.NaN) {
-                                                                
output+="[\""+dp+"\",NULL]";
-                                                            } else {
-                                                               
output+="[\""+dp+"\","+data.get(dp)+"]";
-                                                            }
-                                                        } else {
-                                                            long value = 
xLabelRangeHash.get(dp);
-                                                            
if(data.get(dp)==Double.NaN) {
-                                                                
output+="[\""+dp+"\",NULL]";
-                                                            } else {
-                                                               
output+="[\""+value+"\","+data.get(dp)+"]";
-                                                            }
-                                                        }
-                                                       counter2++;
-                                               }
-                                                   output+="], min:0";
-                                                    if(this.userDefinedMax) {
-                                                        output+=", 
max:"+this.max;
-                                                    }
-                                                    output+="}";
-                                                   counter++;
-                                   }
-                                   i++;
-                           }          
-               output+=" ];\n"+
-                        " wholePeriod();</script></body></html>\n";
-       return output;
+       return output.toString();
     }            
 }

Added: 
hadoop/core/trunk/src/contrib/chukwa/src/test/org/apache/hadoop/chukwa/hicc/TestChart.java
URL: 
http://svn.apache.org/viewvc/hadoop/core/trunk/src/contrib/chukwa/src/test/org/apache/hadoop/chukwa/hicc/TestChart.java?rev=751742&view=auto
==============================================================================
--- 
hadoop/core/trunk/src/contrib/chukwa/src/test/org/apache/hadoop/chukwa/hicc/TestChart.java
 (added)
+++ 
hadoop/core/trunk/src/contrib/chukwa/src/test/org/apache/hadoop/chukwa/hicc/TestChart.java
 Mon Mar  9 16:51:07 2009
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.chukwa.hicc;
+
+import junit.framework.TestCase;
+import javax.servlet.http.HttpServletRequest;
+import java.util.TreeMap;
+import java.util.ArrayList;
+
+public class TestChart extends TestCase {
+
+
+  public void testLineChart()
+  {
+    HttpServletRequest request=null;
+    Chart c = new Chart(request);
+    String render= "line";
+    TreeMap<String, TreeMap<String, Double>> dataMap = new TreeMap<String, 
TreeMap<String, Double>>();
+    TreeMap<String, Double> series = new TreeMap<String, Double>();
+    ArrayList<String> labels = new ArrayList<String>();
+    for(int i=0;i<5;i++) {
+      labels.add(""+i);
+      series.put(""+i,1.0*i);
+    }
+    dataMap.put("series1", series);
+    c.setXLabelsRange(labels);
+    c.setDataSet(render,dataMap);
+    String output = c.plot();
+    assertTrue(output.contains("lines"));
+  }
+
+  public void testBarChart()
+  {
+    HttpServletRequest request=null;
+    Chart c = new Chart(request);
+    String render= "bar";
+    TreeMap<String, TreeMap<String, Double>> dataMap = new TreeMap<String, 
TreeMap<String, Double>>();
+    TreeMap<String, Double> series = new TreeMap<String, Double>();
+    ArrayList<String> labels = new ArrayList<String>();
+    for(int i=0;i<5;i++) {
+      labels.add(""+i);
+      series.put(""+i,1.0*i);
+    }
+    dataMap.put("series1", series);
+    c.setXLabelsRange(labels);
+    c.setDataSet(render,dataMap);
+    String output = c.plot();
+    assertTrue(output.contains("bar"));
+  }
+
+  public void testScatterChart()
+  {
+    HttpServletRequest request=null;
+    Chart c = new Chart(request);
+    String render= "point";
+    TreeMap<String, TreeMap<String, Double>> dataMap = new TreeMap<String, 
TreeMap<String, Double>>();
+    TreeMap<String, Double> series = new TreeMap<String, Double>();
+    ArrayList<String> labels = new ArrayList<String>();
+    for(int i=0;i<5;i++) {
+      labels.add(""+i);
+      series.put(""+i,1.0*i);
+    }
+    dataMap.put("series1", series);
+    c.setXLabelsRange(labels);
+    c.setDataSet(render,dataMap);
+    String output = c.plot();
+    assertTrue(output.contains("point"));
+  }
+}


Reply via email to