Не могу понять, какие вспомогательные методы у меня не реализованы.
Вроде все сигнатуры проверил, скопипастил - валидатор ругается...
package com.javarush.task.task33.task3310;
import com.javarush.task.task33.task3310.strategy.HashMapStorageStrategy;
import com.javarush.task.task33.task3310.strategy.OurHashMapStorageStrategy;
import com.javarush.task.task33.task3310.strategy.StorageStrategy;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
public class Solution {
public static void main(String[] args) {
testStrategy(new HashMapStorageStrategy(),10_000L);
testStrategy(new OurHashMapStorageStrategy(),10_000L);
}
public static Set<Long> getIds(Shortener shortener, Set<String> strings) {
Set<Long> resultSet = new HashSet<>();
for (String s: strings)
resultSet.add(shortener.getId(s));
return resultSet;
}
public static Set<String> getStrings(Shortener shortener, Set<Long> keys) {
Set<String> resultSet = new HashSet<>();
for (Long l: keys)
resultSet.add(shortener.getString(l));
return resultSet;
}
public static void testStrategy(StorageStrategy strategy, long elementsNumber) {
Helper.printMessage(strategy.getClass().getSimpleName());
HashSet<String> testStrings = new HashSet<String>((int)elementsNumber);
for (long i = 0; i < elementsNumber; i++)
testStrings.add(Helper.generateRandomString());
Shortener shortener = new Shortener(strategy);
// старт таймера
Date startDate = new Date();
Set<Long> ids = getIds(shortener, testStrings);
// стоп таймер
long delta = new Date().getTime() - startDate.getTime();
Helper.printMessage(Long.toString(delta));
startDate = new Date();
Set<String> strings = getStrings(shortener,ids);
delta = new Date().getTime() - startDate.getTime();
Helper.printMessage(Long.toString(delta));
if (testStrings.equals(strings))
Helper.printMessage("Тест пройден.");
else
Helper.printMessage("Тест не пройден.");
}
}