Error checking

This commit is contained in:
2022-02-23 08:55:07 -06:00
parent e58f7b0a55
commit 69b0cc535c

View File

@@ -1,4 +1,5 @@
import java.io.IOException; import java.io.IOException;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Scanner; import java.util.Scanner;
import java.util.InputMismatchException; import java.util.InputMismatchException;
@@ -125,10 +126,11 @@ public class InteractiveInterface {
} }
case 3 -> { case 3 -> {
exponential = true; exponential = true;
System.out.println("Please enter lambda value for exponential distribution."); System.out.print("Please enter lambda value for exponential distribution: ");
lambda = sc.nextDouble(); lambda = sc.nextDouble();
if (lambda <= 0.0) { if (lambda <= 0.0) {
throw new InputMismatchException("Value must be positive."); lambda = 0.6;
System.out.println("Value must be positive. Defaulting to 0.6.");
} }
} }
default -> { default -> {
@@ -171,6 +173,8 @@ public class InteractiveInterface {
for(int i = 0; i < numSections; i++) { for(int i = 0; i < numSections; i++) {
populations[i] = Equations.getRandomInt(minPop, maxPop); populations[i] = Equations.getRandomInt(minPop, maxPop);
} }
System.out.print("Populations: ");
System.out.println(Arrays.toString(populations));
} }
else{ //if T cell population/well is not random else{ //if T cell population/well is not random
System.out.println("\nThe plate can be evenly sectioned to allow different numbers of T cells per well."); System.out.println("\nThe plate can be evenly sectioned to allow different numbers of T cells per well.");
@@ -290,17 +294,28 @@ public class InteractiveInterface {
System.out.println("\nWhat is the minimum number of CDR3 alpha/beta overlap wells to attempt matching?"); System.out.println("\nWhat is the minimum number of CDR3 alpha/beta overlap wells to attempt matching?");
lowThreshold = sc.nextInt(); lowThreshold = sc.nextInt();
if(lowThreshold < 1){ if(lowThreshold < 1){
throw new InputMismatchException("Minimum value for low threshold set to 1"); lowThreshold = 1;
System.out.println("Value for low occupancy overlap threshold must be positive");
System.out.println("Value for low occupancy overlap threshold set to 1");
} }
System.out.println("\nWhat is the maximum number of CDR3 alpha/beta overlap wells to attempt matching?"); System.out.println("\nWhat is the maximum number of CDR3 alpha/beta overlap wells to attempt matching?");
highThreshold = sc.nextInt(); highThreshold = sc.nextInt();
System.out.println("\nWhat is the maximum difference in alpha/beta occupancy to attempt matching?"); if(highThreshold < lowThreshold) {
maxOccupancyDiff = sc.nextInt(); highThreshold = lowThreshold;
System.out.println("\nWell overlap percentage = pair overlap / sequence occupancy"); System.out.println("Value for high occupancy overlap threshold must be >= low overlap threshold");
System.out.println("What is the minimum well overlap percentage to attempt matching? (0 to 100)"); System.out.println("Value for high occupancy overlap threshold set to " + lowThreshold);
}
System.out.println("What is the minimum percentage of a sequence's wells in alpha/beta overlap to attempt matching? (0 - 100)");
minOverlapPercent = sc.nextInt(); minOverlapPercent = sc.nextInt();
if (minOverlapPercent < 0 || minOverlapPercent > 100) { if (minOverlapPercent < 0 || minOverlapPercent > 100) {
throw new InputMismatchException("Value outside range. Minimum percent set to 0"); System.out.println("Value outside range. Minimum occupancy overlap percentage set to 0");
}
System.out.println("\nWhat is the maximum difference in alpha/beta occupancy to attempt matching?");
maxOccupancyDiff = sc.nextInt();
if (maxOccupancyDiff < 0) {
maxOccupancyDiff = 0;
System.out.println("Maximum allowable difference in alpha/beta occupancy must be nonnegative");
System.out.println("Maximum allowable difference in alpha/beta occupancy set to 0");
} }
} catch (InputMismatchException ex) { } catch (InputMismatchException ex) {
System.out.println(ex); System.out.println(ex);