Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- public class ConditionException {
- public static final int DATA_SIZE = 10;
- public static final int DATA_AMOUNT = 10000000;
- public static final double ERROR_FREQUENCY = 0.0001;
- public static void main(String[] args) {
- System.out.print("Creating test data... ");
- ArrayList<String[]> testData = generateData();
- System.out.print("Done!\n");
- System.out.println("Starting tests...");
- // Validation
- long startTime = System.currentTimeMillis();
- for (String[] data : testData) {
- if (isValid(data)) {
- sum(data);
- }
- }
- long endTime = System.currentTimeMillis();
- long firstDuration = endTime - startTime;
- // Exception
- int exceptions = 0;
- startTime = System.currentTimeMillis();
- for (String[] data : testData) {
- try {
- sum(data);
- } catch (Exception e) {
- exceptions++;
- }
- }
- endTime = System.currentTimeMillis();
- long secondDuration = endTime - startTime;
- System.out.println("With validation: " + firstDuration + " ms.");
- System.out.println("With exceptions: " + secondDuration + "ms. Caught " + exceptions + " exceptions.");
- }
- public static boolean isValid(String[] data) {
- for (String item : data) {
- if (!Character.isDigit(item.charAt(1)))
- return false;
- }
- return true;
- }
- public static int sum(String[] data) {
- int sum = 0;
- for (String item : data) {
- sum += Integer.parseInt(item.substring(0, 2));
- }
- return sum;
- }
- public static ArrayList<String[]> generateData() {
- ArrayList<String[]> dataArray = new ArrayList<>();
- for (int i = 0; i < DATA_AMOUNT; i++) {
- dataArray.add(createData());
- }
- return dataArray;
- }
- public static String[] createData() {
- String[] data = new String[DATA_SIZE];
- for (int i = 0; i < DATA_SIZE; i++) {
- if (Math.random() > ERROR_FREQUENCY)
- data[i] = "12valid data";
- else
- data[i] = "invalid data";
- }
- return data;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement