Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ee.ttu.algoritmid.dancers;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.FileReader;
- import java.io.IOException;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.util.ArrayList;
- import java.util.List;
- import static ee.ttu.algoritmid.dancers.Dancer.Gender.MALE;
- public class Main {
- public static void main(String[] args) {
- List<Dancer> requests = new ArrayList<>();
- List<Integer> responds = new ArrayList<>();
- BufferedReader reader;
- try {
- reader = new BufferedReader(new FileReader("filename.txt"));
- String line = reader.readLine();
- while (line != null) {
- String[] splited = line.split("\\s+");
- requests.add(new DancerImpl(splited[0], Dancer.Gender.valueOf(splited[1]), Integer.parseInt(splited[2])));
- responds.add(splited[3].equals("null") ? null : Integer.parseInt(splited[3]));
- line = reader.readLine();
- }
- reader.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- testTreeEndToEnd(requests, responds);
- }
- private static void testTreeEndToEnd(List<Dancer> requests, List<Integer> responds) {
- HW01 solution = new HW01();
- List<String> results = new ArrayList<>();
- int wrong = 0;
- int correct = 0;
- for (int i = 0; i < requests.size(); i++) {
- String result = testRequestResponse(solution, requests.get(i), responds.get(i));
- if (!result.isEmpty()) {
- results.add(result);
- wrong++;
- } else {
- correct++;
- }
- }
- // writeLog(results);
- System.out.println("Correct: " + correct);
- System.out.println("Wrong: " + wrong);
- }
- private static String testRequestResponse(HW01 solution, Dancer dancer, Integer expectedPartnerHeight) {
- DancingCouple couple = solution.findPartnerFor(dancer);
- String message = null;
- Dancer partner = null;
- if (couple == null) {
- if (expectedPartnerHeight != null) {
- message = "Partner wasn't found, but should have";
- }
- } else {
- partner = dancer.getGender() == MALE ? couple.getFemaleDancer() : couple.getMaleDancer();
- if (expectedPartnerHeight == null) {
- message = "Partner was found, but shouldn't have";
- } else {
- if (partner.getHeight() != expectedPartnerHeight) {
- message = "Partner of wrong height found";
- }
- }
- }
- if (message == null) {
- return "";
- }
- // StringBuilder builder = new StringBuilder();
- // builder.append("Find for: " + dancer.getGender() + ", " + dancer.getHeight() + " -> " + expectedPartnerHeight);
- // builder.append("\nPartner: " + (partner == null ? null : partner.getGender() + " " + partner.getHeight()) + "\n");
- // builder.append("\nWaiting list after:\n");
- // solution.returnWaitingList().forEach(d -> builder.append("• " + d + "\n"));
- return "hello";
- }
- private static void writeLog(List<String> results) {
- Path path = Path.of("log.txt");
- try (BufferedWriter writer = Files.newBufferedWriter(path)) {
- for (String line : results) {
- writer.write(line + "\n");
- }
- } catch (IOException ignored) { }
- }
- /**
- * Implementation of the Dancer interface.
- * Made for testing purposes.
- */
- private static class DancerImpl implements Dancer {
- private String name;
- private Gender gender;
- private int height;
- private DancerImpl(String name, Gender gender, int height) {
- this.name = name;
- this.gender = gender;
- this.height = height;
- }
- @Override
- public String getName() {
- return name;
- }
- @Override
- public Gender getGender() {
- return gender;
- }
- @Override
- public int getHeight() {
- return height;
- }
- @Override
- public String toString() {
- return "DancerImpl{" +
- "name='" + name + '\'' +
- ", gender=" + gender +
- ", height=" + height +
- '}';
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement