Tried a few things but didn't work, so I put it here as I left it.
package com.codegym.task.task33.task3310;
import com.codegym.task.task33.task3310.strategy.Entry;
import com.codegym.task.task33.task3310.strategy.FileBucket;
import com.codegym.task.task33.task3310.strategy.HashMapStorageStrategy;
import com.codegym.task.task33.task3310.strategy.StorageStrategy;
import java.io.IOException;
import java.text.ParseException;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Collectors;
public class Solution {
public static void main(String[] args) {
testStrategy(new HashMapStorageStrategy(), 10000);
}
public static Set<Long> getIds(Shortener shortener, Set<String> strings) {
return strings.stream().map(shortener::getId).collect(Collectors.toSet());
}
public static Set<String> getStrings(Shortener shortener, Set<Long> keys) {
return keys.stream().map(shortener::getString).collect(Collectors.toSet());
}
public static void testStrategy(StorageStrategy strategy, long elementsNumber) {
Set<String> elements = new HashSet<>();
System.out.println(strategy.getClass().getName().substring(strategy.getClass().getName().lastIndexOf(".") + 1));
for(int i = 0; i < elementsNumber; i++){
elements.add(Helper.generateRandomString());
}
Shortener shortener = new Shortener(strategy);
long idStart = new Date().getTime();
Set<Long> ids = getIds(shortener, elements);
long idEnd = new Date().getTime();
System.out.println(idEnd - idStart);
long strStart = new Date().getTime();
Set<String> strings = getStrings(shortener, ids);
long strEnd = new Date().getTime();
System.out.println(strEnd - strStart);
if(elements.containsAll(strings))
System.out.println("The test passed.");
else
System.out.println("The test failed.");
}
public static long difference(String start, String end) {
String[] split = start.split(":");
String[] split2 = end.split(":");
int timeOne = 0;
int timeTwo = 0;
for(String a : split){
timeOne += Integer.parseInt(a);
}
for(String a : split2){
timeTwo += Integer.parseInt(a);
}
return timeTwo - timeOne;
}
}