assertTrue(Double.isNaN(similarity.itemSimilarity(7L, 8L)));
}
@Test
public void testRefreshAfterFileUpdate() throws Exception {
ItemSimilarity similarity = new FileItemSimilarity(testFile, 0L);
/* call a method to make sure the original file is loaded */
similarity.itemSimilarity(1L, 5L);
/* change the underlying file,
* we have to wait at least a second to see the change in the file's lastModified timestamp */
Thread.sleep(2000L);
writeLines(testFile, changedData);
similarity.refresh(null);
/* we should now see the changes in the data */
assertEquals(0.9, similarity.itemSimilarity(1L, 7L), EPSILON);
assertEquals(0.9, similarity.itemSimilarity(7L, 1L), EPSILON);
assertEquals(0.125, similarity.itemSimilarity(1L, 5L), EPSILON);
assertEquals(0.125, similarity.itemSimilarity(5L, 1L), EPSILON);
assertFalse(Double.isNaN(similarity.itemSimilarity(7L, 8L)));
assertEquals(0.112, similarity.itemSimilarity(7L, 8L), EPSILON);
assertEquals(0.112, similarity.itemSimilarity(8L, 7L), EPSILON);
}