/** * Copyright (c) 2014-2017 by the respective copyright holders. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ /** * */ package org.eclipse.smarthome.model.script.tests.lib; import java.math.BigDecimal; import java.math.RoundingMode; import org.eclipse.smarthome.core.types.Type; import org.eclipse.smarthome.core.library.types.DecimalType; import org.eclipse.smarthome.model.script.lib.NumberExtensions; import org.junit.Assert; import org.junit.Test; /** * Test case for {@link NumberExtensions} library class * * @author Fabio Marini * */ public class NumberExtensionsTest { /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_plus(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_plus() { Number x = 9; Number y = 0; BigDecimal result = NumberExtensions.operator_plus(x, y); Assert.assertNotNull(result); Assert.assertEquals(result, new BigDecimal(9)); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_plus(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_plusNullLeft() { Number x = null; Number y = 5; BigDecimal result = NumberExtensions.operator_plus(x, y); Assert.assertNotNull(result); Assert.assertEquals(result, new BigDecimal(5)); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_plus(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_plusNullRight() { Number x = 10; Number y = null; BigDecimal result = NumberExtensions.operator_plus(x, y); Assert.assertNotNull(result); Assert.assertEquals(result, new BigDecimal(10)); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_minus(java.lang.Number)} * . */ @Test public void testOperator_minusNumber() { Number x = 2; BigDecimal result = NumberExtensions.operator_minus(x); Assert.assertNotNull(result); Assert.assertEquals(result, new BigDecimal(-2)); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_minus(java.lang.Number)} * . */ @Test public void testOperator_minusNull() { Number x = null; BigDecimal result = NumberExtensions.operator_minus(x); Assert.assertNull(result); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_minus(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_minusNumberNumber() { Number x = 10; Number y = 100; BigDecimal result = NumberExtensions.operator_minus(x, y); Assert.assertNotNull(result); Assert.assertEquals(result, new BigDecimal(10 - 100)); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_minus(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_minusNullNumber() { Number x = null; Number y = 100; BigDecimal result = NumberExtensions.operator_minus(x, y); Assert.assertNotNull(result); Assert.assertEquals(result, new BigDecimal(-100)); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_minus(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_minusNumberNull() { Number x = 10; Number y = null; BigDecimal result = NumberExtensions.operator_minus(x, y); Assert.assertNotNull(result); Assert.assertEquals(result, new BigDecimal(10)); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_multiply(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_multiply() { Number x = 20; Number y = 30; BigDecimal result = NumberExtensions.operator_multiply(x, y); Assert.assertNotNull(result); Assert.assertEquals(result, new BigDecimal(20 * 30)); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_multiply(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_multiplyNullLeft() { Number x = null; Number y = 30; BigDecimal result = NumberExtensions.operator_multiply(x, y); Assert.assertNotNull(result); Assert.assertEquals(result, new BigDecimal(0)); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_multiply(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_multiplyNullRight() { Number x = 20; Number y = null; BigDecimal result = NumberExtensions.operator_multiply(x, y); Assert.assertNotNull(result); Assert.assertEquals(result, new BigDecimal(0)); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_divide(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_divide() { Number x = 12; Number y = 4; BigDecimal result = NumberExtensions.operator_divide(x, y); Assert.assertNotNull(result); Assert.assertEquals(result,new BigDecimal(12).divide(new BigDecimal(4), 8, RoundingMode.HALF_UP)); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_divide(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_divideNullLeft() { Number x = null; Number y = 4; BigDecimal result = NumberExtensions.operator_divide(x, y); Assert.assertNotNull(result); Assert.assertEquals(result,new BigDecimal(0).divide(new BigDecimal(4), 8, RoundingMode.HALF_UP)); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_divide(java.lang.Number, java.lang.Number)} * . */ @Test(expected = ArithmeticException.class) public void testOperator_divideNullRight() { Number x = 12; Number y = null; NumberExtensions.operator_divide(x, y); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_equals(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_equalsNumberNumber() { Number x = 123; Number y = 123; boolean resutl = NumberExtensions.operator_equals(x, y); Assert.assertTrue(resutl); x = 123; y = 321; resutl = NumberExtensions.operator_equals(x, y); Assert.assertFalse(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_equals(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_equalsNullNumber() { Number x = null; Number y = 123; boolean resutl = NumberExtensions.operator_equals(x, y); Assert.assertFalse(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_equals(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_equalsNumberNull() { Number x = 123; Number y = null; boolean resutl = NumberExtensions.operator_equals(x, y); Assert.assertFalse(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_equals(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_equalsNullrNull() { Number x = null; Number y = null; boolean resutl = NumberExtensions.operator_equals(x, y); Assert.assertTrue(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_notEquals(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_notEqualsNumberNumber() { Number x = 123; Number y = 123; boolean resutl = NumberExtensions.operator_notEquals(x, y); Assert.assertFalse(resutl); x = 123; y = 321; resutl = NumberExtensions.operator_notEquals(x, y); Assert.assertTrue(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_notEquals(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_notEqualsNullNumber() { Number x = 123; Number y = null; boolean resutl = NumberExtensions.operator_notEquals(x, y); Assert.assertTrue(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_notEquals(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_notEqualsNumberNull() { Number x = null; Number y = 123; boolean resutl = NumberExtensions.operator_notEquals(x, y); Assert.assertTrue(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_lessThan(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_lessThanNumberNumber() { Number x = 12; Number y = 123; boolean resutl = NumberExtensions.operator_lessThan(x, y); Assert.assertTrue(resutl); x = 90; y = 2; resutl = NumberExtensions.operator_lessThan(x, y); Assert.assertFalse(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_lessThan(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_lessThanNullNumber() { Number x = null; Number y = 123; boolean resutl = NumberExtensions.operator_lessThan(x, y); Assert.assertTrue(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_lessThan(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_lessThanNumberNull() { Number x = 12; Number y = null; boolean resutl = NumberExtensions.operator_lessThan(x, y); Assert.assertFalse(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_greaterThan(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_greaterThanNumberNumber() { Number x = 12; Number y = 123; boolean resutl = NumberExtensions.operator_greaterThan(x, y); Assert.assertFalse(resutl); x = 90; y = 2; resutl = NumberExtensions.operator_greaterThan(x, y); Assert.assertTrue(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_greaterThan(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_greaterThanNullNumber() { Number x = null; Number y = 123; boolean resutl = NumberExtensions.operator_greaterThan(x, y); Assert.assertFalse(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_greaterThan(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_greaterThanNumberNull() { Number x = 123; Number y = null; boolean resutl = NumberExtensions.operator_greaterThan(x, y); Assert.assertTrue(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_lessEqualsThan(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_lessEqualsThanNumberNumber() { Number x = 12; Number y = 123; boolean resutl = NumberExtensions.operator_lessEqualsThan(x, y); Assert.assertTrue(resutl); x = 90; y = 2; resutl = NumberExtensions.operator_lessEqualsThan(x, y); Assert.assertFalse(resutl); x = 3; y = 3; resutl = NumberExtensions.operator_lessEqualsThan(x, y); Assert.assertTrue(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_lessEqualsThan(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_lessEqualsThanNullNumber() { Number x = null; Number y = 123; boolean resutl = NumberExtensions.operator_lessEqualsThan(x, y); Assert.assertTrue(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_lessEqualsThan(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_lessEqualsThanNumberNull() { Number x = 12; Number y = null; boolean resutl = NumberExtensions.operator_lessEqualsThan(x, y); Assert.assertFalse(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_lessEqualsThan(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_lessEqualsThanNullNull() { Number x = null; Number y = null; boolean resutl = NumberExtensions.operator_lessEqualsThan(x, y); Assert.assertTrue(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_greaterEqualsThan(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_greaterEqualsThanNumberNumber() { Number x = 12; Number y = 123; boolean resutl = NumberExtensions.operator_greaterEqualsThan(x, y); Assert.assertFalse(resutl); x = 90; y = 2; resutl = NumberExtensions.operator_greaterEqualsThan(x, y); Assert.assertTrue(resutl); x = 3; y = 3; resutl = NumberExtensions.operator_greaterEqualsThan(x, y); Assert.assertTrue(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_greaterEqualsThan(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_greaterEqualsThanNullNumber() { Number x = null; Number y = 123; boolean resutl = NumberExtensions.operator_greaterEqualsThan(x, y); Assert.assertFalse(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_greaterEqualsThan(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_greaterEqualsThanNumberNull() { Number x = 12; Number y = null; boolean resutl = NumberExtensions.operator_greaterEqualsThan(x, y); Assert.assertTrue(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_greaterEqualsThan(java.lang.Number, java.lang.Number)} * . */ @Test public void testOperator_greaterEqualsThanNullNull() { Number x = null; Number y = null; boolean resutl = NumberExtensions.operator_greaterEqualsThan(x, y); Assert.assertTrue(resutl); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_equals(org.eclipse.smarthome.core.types.Type, java.lang.Number)} * . */ @Test public void testOperator_equalsTypeNumber() { DecimalType type = new DecimalType(10); Number x = 10; boolean result = NumberExtensions.operator_equals((Type)type, x); Assert.assertTrue(result); x = 1; result = NumberExtensions.operator_equals((Type)type, x); Assert.assertFalse(result); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_notEquals(org.eclipse.smarthome.core.types.Type, java.lang.Number)} * . */ @Test public void testOperator_notEqualsTypeNumber() { DecimalType type = new DecimalType(10); Number x = 10; boolean result = NumberExtensions.operator_notEquals((Type)type, x); Assert.assertFalse(result); x = 1; result = NumberExtensions.operator_notEquals((Type)type, x); Assert.assertTrue(result); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_greaterThan(org.eclipse.smarthome.core.types.Type, java.lang.Number)} * . */ @Test public void testOperator_greaterThanTypeNumber() { DecimalType type = new DecimalType(10); Number x = 123; boolean result = NumberExtensions.operator_greaterThan((Type)type, x); Assert.assertFalse(result); x = 2; result = NumberExtensions.operator_greaterThan((Type)type, x); Assert.assertTrue(result); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_greaterEqualsThan(org.eclipse.smarthome.core.types.Type, java.lang.Number)} * . */ @Test public void testOperator_greaterEqualsThanTypeNumber() { DecimalType type = new DecimalType(10); Number x = 123; boolean result = NumberExtensions.operator_greaterEqualsThan((Type)type, x); Assert.assertFalse(result); x = 2; result = NumberExtensions.operator_greaterEqualsThan((Type)type, x); Assert.assertTrue(result); x = 10; result = NumberExtensions.operator_greaterEqualsThan((Type)type, x); Assert.assertTrue(result); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_lessThan(org.eclipse.smarthome.core.types.Type, java.lang.Number)} * . */ @Test public void testOperator_lessThanTypeNumber() { DecimalType type = new DecimalType(10); Number x = 123; boolean result = NumberExtensions.operator_lessThan((Type)type, x); Assert.assertTrue(result); x = 2; result = NumberExtensions.operator_lessThan((Type)type, x); Assert.assertFalse(result); } /** * Test method for * {@link org.eclipse.smarthome.model.script.lib.NumberExtensions#operator_lessEqualsThan(org.eclipse.smarthome.core.types.Type, java.lang.Number)} * . */ @Test public void testOperator_lessEqualsThanTypeNumber() { DecimalType type = new DecimalType(10); Number x = 123; boolean result = NumberExtensions.operator_lessEqualsThan((Type)type, x); Assert.assertTrue(result); x = 2; result = NumberExtensions.operator_lessEqualsThan((Type)type, x); Assert.assertFalse(result); x = 10; result = NumberExtensions.operator_lessEqualsThan((Type)type, x); Assert.assertTrue(result); } }