Advertisement
Guest User

ConditionException

a guest
Dec 31st, 2013
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.93 KB | None | 0 0
  1. import java.util.ArrayList;
  2.  
  3. public class ConditionException {
  4.  
  5.     public static final int DATA_SIZE = 10;
  6.     public static final int DATA_AMOUNT = 10000000;
  7.     public static final double ERROR_FREQUENCY = 0.0001;
  8.  
  9.     public static void main(String[] args) {
  10.     System.out.print("Creating test data... ");
  11.     ArrayList<String[]> testData = generateData();
  12.     System.out.print("Done!\n");
  13.     System.out.println("Starting tests...");
  14.  
  15.     // Validation
  16.     long startTime = System.currentTimeMillis();
  17.     for (String[] data : testData) {
  18.         if (isValid(data)) {
  19.         sum(data);
  20.         }
  21.     }
  22.     long endTime = System.currentTimeMillis();
  23.     long firstDuration = endTime - startTime;
  24.  
  25.     // Exception
  26.     int exceptions = 0;
  27.     startTime = System.currentTimeMillis();
  28.     for (String[] data : testData) {
  29.         try {
  30.         sum(data);
  31.         } catch (Exception e) {
  32.         exceptions++;
  33.         }
  34.     }
  35.     endTime = System.currentTimeMillis();
  36.     long secondDuration = endTime - startTime;
  37.  
  38.     System.out.println("With validation: " + firstDuration + " ms.");
  39.     System.out.println("With exceptions: " + secondDuration + "ms. Caught " + exceptions + " exceptions.");
  40.  
  41.  
  42.     }
  43.  
  44.     public static boolean isValid(String[] data) {
  45.     for (String item : data) {
  46.         if (!Character.isDigit(item.charAt(1)))
  47.         return false;
  48.     }
  49.     return true;
  50.     }
  51.  
  52.     public static int sum(String[] data) {
  53.     int sum = 0;
  54.     for (String item : data) {
  55.         sum += Integer.parseInt(item.substring(0, 2));
  56.     }
  57.     return sum;
  58.     }
  59.  
  60.     public static ArrayList<String[]> generateData() {
  61.     ArrayList<String[]> dataArray = new ArrayList<>();
  62.     for (int i = 0; i < DATA_AMOUNT; i++) {
  63.         dataArray.add(createData());
  64.     }
  65.     return dataArray;
  66.     }
  67.  
  68.     public static String[] createData() {
  69.     String[] data = new String[DATA_SIZE];
  70.     for (int i = 0; i < DATA_SIZE; i++) {
  71.         if (Math.random() > ERROR_FREQUENCY)
  72.         data[i] = "12valid data";
  73.         else
  74.         data[i] = "invalid data";
  75.     }
  76.     return data;
  77.     }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement