/[projects]/android/TrainInfoService/src/dk/thoerup/traininfoservice/db/TestServlet.java
ViewVC logotype

Diff of /android/TrainInfoService/src/dk/thoerup/traininfoservice/db/TestServlet.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

android/TrainInfoService/src/dk/thoerup/traininfoservice/TestServlet.java revision 735 by torben, Tue May 18 20:58:04 2010 UTC android/TrainInfoService/src/dk/thoerup/traininfoservice/db/TestServlet.java revision 1342 by torben, Wed Apr 20 15:31:47 2011 UTC
# Line 1  Line 1 
1  package dk.thoerup.traininfoservice;  package dk.thoerup.traininfoservice.db;
2    
3  import java.io.IOException;  import java.io.IOException;
4  import java.sql.SQLException;  import java.sql.SQLException;
5  import java.util.Random;  import java.util.Random;
6    import java.util.logging.Logger;
7    
8  import javax.servlet.ServletException;  import javax.servlet.ServletException;
9    import javax.servlet.annotation.WebServlet;
10  import javax.servlet.http.HttpServlet;  import javax.servlet.http.HttpServlet;
11  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletRequest;
12  import javax.servlet.http.HttpServletResponse;  import javax.servlet.http.HttpServletResponse;
13    
14    
15    @WebServlet(urlPatterns={"/TestServlet"})
16  public class TestServlet extends HttpServlet {  public class TestServlet extends HttpServlet {
17          private static final long serialVersionUID = 1L;          private static final long serialVersionUID = 1L;
18          final int COUNT = 10;          Logger log = Logger.getLogger(TestServlet.class.getName());
19            
20          //South-West corner= 54.0, 7.0          Random r = new Random();
21          //North-East corner= 58.0, 16.0  
22          //Latitude span=4.0          //South-West corner= 54.5, 8.0
23          //Longitude span=9.0          //North-East corner= 57.8, 12.7
24          void testFindNearest() throws SQLException {          //Latitude span=3.3
25                  Random r = new Random();          //Longitude span=4.7
26            void testFindNearest(int count) throws SQLException {          
27    
28                  StationDAO db = new StationDAO();                  StationDAO db = new StationDAO();
29    
30    
31                  for (int i=0; i<COUNT; i++) {                  for (int i=0; i<count; i++) {
32                          float lat = (r.nextFloat()*4.0F) + 54.0F;                          float lat = (r.nextFloat()*3.3F) + 54.5F;
33                          float lng = (r.nextFloat()*9.0F) + 7.0F;                          float lng = (r.nextFloat()*4.7F) + 8.0F;
34                          db.getByLocation(lat, lng);                          db.getByLocation(lat, lng);
35                  }                  }
   
   
   
36          }          }
37    
38          void testFindName()  throws SQLException {          void testFindName(int count)  throws SQLException {
                 Random r = new Random();  
39                                    
40                  StationDAO db = new StationDAO();                  StationDAO db = new StationDAO();
41                                    
42                  for (int i=0; i<COUNT; i++) {                  for (int i=0; i<count; i++) {
43                          char c1 = ((char)r.nextInt(26));                          char c1 = getRandomCharacter();
44                          c1 += 'a';                          char c2 = getRandomCharacter();
                         char c2 = ((char)r.nextInt(26)) ;  
                         c2 += 'a';  
45    
46                          String search = "" + c1 + c2;                          String search = "" + c1 + c2;
47                          System.out.println(search);                          log.info(search);
48                                                    
49                          db.getByName(search);                          db.getByName(search);
50                  }                  }
51            }
52    
53            private char getRandomCharacter() {
54                    char c1 = ((char)r.nextInt(26));
55                    c1 += 'a';
56                    return c1;
57            }
58            
59            void testFindFavorites(int count)  throws SQLException {
60                    
61                    StationDAO db = new StationDAO();
62                    
63                    for (int i=0; i<count; i++) {
64                            final int MAX = 8;
65                            
66                            StringBuilder sb = new StringBuilder();
67                            sb.append('(');
68                            for (int j=0; j<MAX;j++) {
69                                    if (j>0)
70                                            sb.append(',');
71                                    sb.append(r.nextInt(400));
72                            }
73                            sb.append(')');
74    
75    
76                            db.getByList(sb.toString());
77                    }
78          }          }
79    
80          protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {          protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
81                    
82                    
83                    String test = request.getParameter("test");
84                    String strCount = request.getParameter("count");
85                    int count = Integer.parseInt(strCount);
86                    
87            
88                  try {                                    try {                  
89                          long start = System.currentTimeMillis();                          long start = System.currentTimeMillis();
90                          testFindName();                          
91                            if ( test.equals("name") ) {
92                                    testFindName(count);
93                            } else if ( test.equals("nearest") ) {
94                                    testFindNearest(count);
95                            } else if ( test.equals("favorites") ) {
96                                    testFindFavorites(count);
97                            } else {
98                                    throw new ServletException("No parameter test");
99                            }
100                            
101                          long stop = System.currentTimeMillis();                          long stop = System.currentTimeMillis();
102    
103                          long elapsed = stop-start;                          long elapsed = stop-start;
104    
105                          float avg = ((float)elapsed) / COUNT;                          float avg = ((float)elapsed) / count;
106    
107                          String out = "Count=" + COUNT + "\n" +                                                            String out = "Count=" + count + "\n" +                                  
108                          "Elapsed=" + elapsed + "\n" +                          "Elapsed=" + elapsed + "\n" +
109                          "Avg.=" +  avg;                          "Avg.=" +  avg;
110    

Legend:
Removed from v.735  
changed lines
  Added in v.1342

  ViewVC Help
Powered by ViewVC 1.1.20