BeatriceGhetel

test sum

Feb 8th, 2020
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.79 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.logging.Logger;
  4.  
  5. public class Main {
  6.  
  7.     private static Logger logger;
  8.  
  9.     public static void main(String[] args) {
  10.         System.out.println(customSumNumbers(true,  -1));
  11.         System.out.println(customSumNumbers(true, 1,2,3,4));
  12.         System.out.println(customSumNumbers(true, 1,2,-3,-4));
  13.         System.out.println(customSumNumbers(false, 1,2,-3,-4));
  14.         System.out.println(customSumNumbers(true, -1,-1));
  15.  
  16.         System.out.println(computeAverage(1,2,3,4,5,6));
  17.         System.out.println(computeAverage(1,2,-3,4,5,-6));
  18.     }
  19.  
  20.     /**
  21.      * Method to sum numbers in a custom way - either sum only positives either the negative ones
  22.      * @param numbers variable length array of integer numbers to be processed
  23.      * @return
  24.      */
  25.     private static int customSumNumbers(boolean sumOnlyPositives, int... numbers) {
  26.         int sum = 0;
  27.         int faultsCount = 0;
  28.  
  29.         for (int number : numbers) {
  30.             if (sumOnlyPositives && number >= 0) {
  31.                 sum += number;  // let's sum only the positives
  32.             } else if (!sumOnlyPositives && number < 0) {
  33.                 sum += number;  // let's sum only the negatives
  34.             } else {
  35.                 faultsCount++;  // current number is not considered since it is not valid according to the value of sumOnlyPositives flag
  36.             }
  37.         }
  38.         if (faultsCount == numbers.length) {
  39.             System.out.println("WARN | no numbers from the given list respect the sumOnlyPositives flag! Returning default 0 value.");
  40.         }
  41.         return sum;
  42.     }
  43.  
  44.     private static double computeAverage (int... numbers) {
  45.         return (double) (customSumNumbers(true, numbers) + customSumNumbers(false, numbers)) / (double) numbers.length;
  46.     }
  47. }
Add Comment
Please, Sign In to add comment