Почему?
Всё же по условию.
И тесты проходят.
package com.javarush.task.task33.task3310;
import com.javarush.task.task33.task3310.strategy.*;
import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
solution.testStrategy(new HashMapStorageStrategy(), 10000L);
solution.testStrategy(new OurHashMapStorageStrategy(), 10000L);
solution.testStrategy(new OurHashBiMapStorageStrategy(), 10000L);
solution.testStrategy(new HashBiMapStorageStrategy(), 10000L);
solution.testStrategy(new DualHashBidiMapStorageStrategy(), 10000L);
// solution.testStrategy(new FileStorageStrategy(), 100L);
}
public static Set<Long> getIds(Shortener shortener, Set<String> strings) {
Set<Long> longsSet = new HashSet<>();
for (String str : strings) {
longsSet.add(shortener.getId(str));
}
return longsSet;
}
public static Set<String> getStrings(Shortener shortener, Set<Long> keys) {
Set<String> strSet = new HashSet<>();
for (Long key : keys) {
strSet.add(shortener.getString(key));
}
return strSet;
}
public static void testStrategy(StorageStrategy strategy, long elementsNumber) {
System.out.println(strategy.getClass().getSimpleName());
Set<String> strSet = new HashSet<>();
for (long i = 0; i < elementsNumber; i++) {
String st = Helper.generateRandomString();
strSet.add(st);
strategy.put(i, st);
}
Shortener shortener = new Shortener(strategy);
Date idsDateBegin = new Date();
Set<Long> idsSet = getIds(shortener, strSet);
Date idsDateEnd = new Date();
Helper.printMessage("время необходимое для отработки метода getIds: "+(idsDateEnd.getTime() - idsDateBegin.getTime()));
Date strDateBegin = new Date();
Set<String> stringSet = getStrings(shortener, idsSet);
Date strDateEnd = new Date();
Helper.printMessage("время необходимое для отработки метода getStrings: "+(strDateEnd.getTime() - strDateBegin.getTime()));
if (stringSet.equals(strSet)) System.out.println("Тест пройден.");
else Helper.printMessage("Тест не пройден.");
}
}