package processing.hashtag.baseline;
import java.util.ArrayList;
import java.util.HashMap;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class PersonalisedSimilarityCalculatorTest {
private HashMap<String, HashMap<Integer, ArrayList<Long>>> userTagTimestamps = new HashMap<String, HashMap<Integer, ArrayList<Long>>>();
private HashMap<Integer, HashMap<String, Integer>> tagUserCount = new HashMap<Integer, HashMap<String, Integer>>();
@Before
public void init() {
userTagTimestamps = initUserTagTimestamps();
tagUserCount = HashtagUtil.getTagUserCount(userTagTimestamps);
}
@Test
public void getPersonalisedSimilarityTest() {
HashMap<String, Vector> userTFIDFVector = HashtagUtil.createAllUserTFIDFVector(userTagTimestamps, tagUserCount);
System.out.print(" vector 1 >> " + userTFIDFVector.get("user1").getVector());
System.out.print(" vector 2 >> " + userTFIDFVector.get("user2").getVector());
System.out.print(" vector 3 >> " + userTFIDFVector.get("user3").getVector());
double cosineSimilarity = CosineSimilarityCalculator.getCosineSimilarity(userTFIDFVector.get("user1"),
userTFIDFVector.get("user2"));
System.out.println(" cosine Similarity Score >> " + cosineSimilarity);
}
@After
public void destroy() {
}
HashMap<String, HashMap<Integer, ArrayList<Long>>> initUserTagTimestamps() {
HashMap<String, HashMap<Integer, ArrayList<Long>>> userTagTimestamps = new HashMap<String, HashMap<Integer, ArrayList<Long>>>();
// adding hashmap for user 1
userTagTimestamps.put("user1", new HashMap<Integer, ArrayList<Long>>());
userTagTimestamps.get("user1").put(1, new ArrayList<Long>());
userTagTimestamps.get("user1").get(1).add(1l);
userTagTimestamps.get("user1").get(1).add(2l);
userTagTimestamps.get("user1").get(1).add(3l);
// adding user map for user 2
userTagTimestamps.get("user1").put(2, new ArrayList<Long>());
userTagTimestamps.get("user1").get(2).add(1l);
userTagTimestamps.get("user1").get(2).add(2l);
userTagTimestamps.put("user2", new HashMap<Integer, ArrayList<Long>>());
userTagTimestamps.get("user2").put(1, new ArrayList<Long>());
userTagTimestamps.get("user2").get(1).add(2l);
userTagTimestamps.get("user2").get(1).add(3l);
userTagTimestamps.get("user2").put(2, new ArrayList<Long>());
userTagTimestamps.get("user2").get(2).add(1l);
userTagTimestamps.get("user2").get(2).add(2l);
userTagTimestamps.get("user2").put(3, new ArrayList<Long>());
userTagTimestamps.get("user2").get(3).add(1l);
// adding hashmap for user 3
userTagTimestamps.put("user3", new HashMap<Integer, ArrayList<Long>>());
userTagTimestamps.get("user3").put(1, new ArrayList<Long>());
userTagTimestamps.get("user3").get(1).add(1l);
userTagTimestamps.get("user3").put(2, new ArrayList<Long>());
userTagTimestamps.get("user3").get(2).add(1l);
userTagTimestamps.get("user3").get(2).add(2l);
userTagTimestamps.put("user4", new HashMap<Integer, ArrayList<Long>>());
userTagTimestamps.get("user4").put(4, new ArrayList<Long>());
userTagTimestamps.get("user4").get(4).add(1l);
userTagTimestamps.get("user4").put(5, new ArrayList<Long>());
userTagTimestamps.get("user4").get(5).add(1l);
userTagTimestamps.get("user4").get(5).add(2l);
return userTagTimestamps;
}
}