/* * Copyright 2011 JBoss Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.drools.chance.degree.simple; import junit.framework.TestCase; import org.drools.chance.degree.Degree; import org.drools.chance.degree.interval.IntervalDegree; import org.junit.Test; public class SimpleDegreeTest extends TestCase { @Test public void testSetValue() throws Exception { SimpleDegree x = new SimpleDegree(0.43); x.setValue(0.6349); assertEquals(0.6349,x.getValue()); } @Test public void testGetValue() throws Exception { SimpleDegree x = new SimpleDegree(0.43); assertEquals(0.43,x.getValue()); } @Test public void testHashCode() throws Exception { SimpleDegree s1 = new SimpleDegree(0.1); SimpleDegree s2 = new SimpleDegree(0.2); SimpleDegree s3 = new SimpleDegree(0.1); assertEquals(s1.hashCode(),s1.hashCode()); assertEquals(s1.hashCode(),s3.hashCode()); assertNotSame(s1.hashCode(),s2.hashCode()); } @Test public void testEquals() throws Exception { SimpleDegree s1 = new SimpleDegree(0.1); SimpleDegree s2 = new SimpleDegree(0.2); SimpleDegree s3 = new SimpleDegree(0.1); assertTrue(s1.equals(s1)); assertTrue(s1.equals(s3)); assertFalse(s1.equals(s2)); assertFalse(s1.equals(null)); } @Test public void testTrue() throws Exception { assertEquals(1.0,SimpleDegree.TRUE.getValue()); assertEquals(1.0, new SimpleDegree(0.2).True().getValue()); } @Test public void testFalse() throws Exception { assertEquals(0.0,SimpleDegree.FALSE.getValue()); assertEquals(0.0,new SimpleDegree(0.2).False().getValue()); } @Test public void testUnknown() throws Exception { assertEquals(0.0,new SimpleDegree(0.2).Unknown().getValue()); } @Test public void testToBoolean() throws Exception { assertFalse(new SimpleDegree(0.0).toBoolean()); assertTrue(new SimpleDegree(1.0).toBoolean()); assertTrue(new SimpleDegree(0.8).toBoolean()); } @Test public void testAsSimpleDegree() throws Exception { SimpleDegree x = new SimpleDegree(0.3); assertEquals(x,x.asSimpleDegree()); } @Test public void testToString() throws Exception { SimpleDegree x = new SimpleDegree(0.3); assertNotNull(x.toString()); assertTrue(x.toString().length() > 0); assertTrue(x.toString().contains("0.3")); } @Test public void testGetConfidence() throws Exception { SimpleDegree x = new SimpleDegree(0.3); assertEquals(1.0,x.getConfidence()); } @Test public void testCompareTo() throws Exception { SimpleDegree x = new SimpleDegree(0.3); SimpleDegree y = new SimpleDegree(0.4); SimpleDegree z = new SimpleDegree(0.2); assertEquals(-1,x.compareTo(y)); assertEquals(0,x.compareTo(x)); assertEquals(1,x.compareTo(z)); } @Test public void testAsIntervalDegree() throws Exception { SimpleDegree x = new SimpleDegree(0.3); IntervalDegree i = x.asIntervalDegree(); assertEquals(0.3,i.getTau()); assertEquals(1.0-0.3,i.getPhi()); } @Test public void testConstructor() throws Exception { SimpleDegree x = new SimpleDegree(0.3); try { SimpleDegree z = new SimpleDegree(-0.4); fail(); } catch (IllegalArgumentException iae) { } try { SimpleDegree z = new SimpleDegree(3.1); fail(); } catch (IllegalArgumentException iae) { } } @Test public void testSum() throws Exception { SimpleDegree s1 = new SimpleDegree(0.6); SimpleDegree s2 = new SimpleDegree(0.3); SimpleDegree s3 = new SimpleDegree(0.9); Degree s4 = s1.sum(s2); Degree s5 = s1.sum(s3); assertEquals(new SimpleDegree(0.6),s1); assertEquals(new SimpleDegree(0.3),s2); assertEquals(new SimpleDegree(0.9),s3); assertEquals(s4,s3); assertEquals(new SimpleDegree(1.0),s5); } @Test public void testMul() throws Exception { SimpleDegree s1 = new SimpleDegree(0.6); SimpleDegree s2 = new SimpleDegree(0.3); SimpleDegree s3 = new SimpleDegree(0.9); Degree s4 = s1.mul(s2); Degree s5 = s1.mul(s3); assertEquals(new SimpleDegree(0.6),s1); assertEquals(new SimpleDegree(0.3),s2); assertEquals(new SimpleDegree(0.9),s3); assertEquals(new SimpleDegree(0.18),s4); assertEquals(new SimpleDegree(0.54),s5); } @Test public void testDiv() throws Exception { SimpleDegree s1 = new SimpleDegree(0.6); SimpleDegree s2 = new SimpleDegree(0.3); SimpleDegree s3 = new SimpleDegree(0.9); SimpleDegree s0 = new SimpleDegree(0.0); Degree s4 = s2.div(s1); Degree s5 = s3.div(s1); Degree s9 = s1.div(s0); assertEquals(new SimpleDegree(0.6),s1); assertEquals(new SimpleDegree(0.3),s2); assertEquals(new SimpleDegree(0.9),s3); assertEquals(new SimpleDegree(0.5),s4); assertEquals(new SimpleDegree(1.0),s5); assertEquals(new SimpleDegree(0.0),s9); } @Test public void testSub() throws Exception { SimpleDegree s1 = new SimpleDegree(0.6); SimpleDegree s2 = new SimpleDegree(0.3); SimpleDegree s3 = new SimpleDegree(0.9); Degree s4 = s1.sub(s2); Degree s5 = s1.sub(s3); assertEquals(new SimpleDegree(0.6),s1); assertEquals(new SimpleDegree(0.3),s2); assertEquals(new SimpleDegree(0.9),s3); assertEquals(new SimpleDegree(0.3),s4); assertEquals(new SimpleDegree(0.0),s5); } @Test public void testMax() throws Exception { SimpleDegree s1 = new SimpleDegree(0.6); SimpleDegree s2 = new SimpleDegree(0.3); Degree s4 = s1.max(s2); assertEquals(new SimpleDegree(0.6),s1); assertEquals(new SimpleDegree(0.3),s2); assertEquals(s1,s4); } @Test public void testMin() throws Exception { SimpleDegree s1 = new SimpleDegree(0.6); SimpleDegree s2 = new SimpleDegree(0.3); Degree s4 = s1.min(s2); assertEquals(new SimpleDegree(0.6),s1); assertEquals(new SimpleDegree(0.3),s2); assertEquals(s2,s4); } @Test public void testFromConst() throws Exception { SimpleDegree s1 = new SimpleDegree(0.6); Degree s2 = s1.fromConst(0.33); assertEquals(new SimpleDegree(0.33),s2); } }