package org.numenta.nupic.algorithms; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import org.joda.time.DateTime; import org.junit.Test; public class SampleTest { @Test public void testEquals() { Sample s1 = new Sample(new DateTime(2015, 7, 12, 12, 0, 0), 0.75, 0.3); Sample s2 = new Sample(new DateTime(2015, 7, 12, 12, 0, 0), 0.75, 0.3); Sample s3 = new Sample(new DateTime(2015, 7, 12, 12, 0, 0), 0.85, 0.3); Sample s4 = new Sample(new DateTime(2015, 7, 12, 12, 0, 0), 0.75, 0.5); Sample s5 = new Sample(new DateTime(2015, 7, 12, 23, 0, 0), 0.75, 0.3); Sample s6 = new Sample(new DateTime(2015, 7, 12, 23, 0, 0), 0.75, 0.3); assertFalse(s6.equals(this)); assertTrue(s1.equals(s2)); assertFalse(s1.equals(s3)); assertFalse(s1.equals(s4)); assertFalse(s1.equals(s5)); assertTrue(s1.timeStamp().equals(s3.timeStamp())); assertTrue(s1.timeStamp().equals(s4.timeStamp())); assertTrue(s1.score == s5.score); assertTrue(s1.value == s5.value); assertFalse(s1.hashCode() == s5.hashCode()); assertTrue(s1.hashCode() == s2.hashCode()); } @Test public void testBadInitialization() { Sample s1 = null; try { s1 = new Sample(null, 0.75, 0.3); fail(); //Not reached... assertTrue(s1 != null); }catch(Exception e) { assertEquals("Sample must have a valid date", e.getMessage()); } } @Test public void testStringRepresentationEqual() { Sample s1 = new Sample(new DateTime(2015, 7, 12, 12, 0, 0), 0.75, 0.3); Sample s2 = new Sample(new DateTime(2015, 7, 12, 12, 0, 0), 0.75, 0.3); assertEquals(s1.toString(), s2.toString()); } }