package com.yahoo.dtf.junit;
import java.text.ParseException;
import java.util.Random;
import junit.framework.JUnit4TestAdapter;
import org.junit.Test;
import com.yahoo.dtf.exception.DTFException;
import com.yahoo.dtf.util.Counter;
import com.yahoo.dtf.util.HashUtil;
/**
* HashUtil JUnit test, just to validate basic functionality.
*
* @author rlgomes
*/
public class HashUtilSuite extends DTFJUnitTest {
@Test(timeout=600000)
public void simpleSHA1Calculation() throws DTFException, ParseException {
String hash1 = HashUtil.sha1("data1");
String hash2 = HashUtil.sha1("data2");
assert (!hash1.equals(hash2)) : "Collisions detected!";
}
@Test(timeout=600000)
public void smallDataPerformance() throws DTFException, ParseException {
long iterations = 200000;
Random rand = new Random(System.currentTimeMillis());
byte[] bytes = new byte[128];
rand.nextBytes(bytes);
String data = new String(bytes);
Counter counter = new Counter();
counter.start();
for ( long i = 0; i < iterations; i++ )
HashUtil.sha1(data);
counter.stop();
double duration = counter.getDurationInSeconds();
long ops_per_sec = (long)(iterations/duration);
getLogger().info("sha1/s: " + ops_per_sec);
}
public static junit.framework.Test suite() {
return new JUnit4TestAdapter(HashUtilSuite.class);
}
}