1 /*******************************************************************************
2 * Copyright (c) 2016 Ericsson
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *******************************************************************************/
10 package org
.eclipse
.tracecompass
.common
.core
.tests
.math
;
12 import static org
.eclipse
.tracecompass
.common
.core
.math
.SaturatedArithmetic
.add
;
13 import static org
.eclipse
.tracecompass
.common
.core
.math
.SaturatedArithmetic
.multiply
;
14 import static org
.eclipse
.tracecompass
.common
.core
.math
.SaturatedArithmetic
.sameSign
;
15 import static org
.junit
.Assert
.*;
17 import org
.eclipse
.tracecompass
.common
.core
.math
.SaturatedArithmetic
;
18 import org
.junit
.Test
;
21 * Test suite for the {@link SaturatedArithmetic} All tests must test
22 * reciprocity as well as low and high limits
24 * @author Matthew Khouzam
26 public class SaturatedArithmeticTest
{
32 public void testMult0() {
33 assertEquals(0, multiply(0, 0));
34 assertEquals(0, multiply(0, 1));
35 assertEquals(0, multiply(1, 0));
36 assertEquals(0, multiply(42, 0));
37 assertEquals(0, multiply(0, 42));
38 assertEquals(0, multiply(-42, 0));
39 assertEquals(0, multiply(0, -42));
40 assertEquals(0, multiply(Long
.MAX_VALUE
, 0));
41 assertEquals(0, multiply(0, Long
.MAX_VALUE
));
42 assertEquals(0, multiply(Long
.MIN_VALUE
, 0));
43 assertEquals(0, multiply(0, Long
.MIN_VALUE
));
50 public void testMult1() {
51 assertEquals(0, multiply(0, 1));
52 assertEquals(1, multiply(1, 1));
53 assertEquals(42, multiply(42, 1));
54 assertEquals(42, multiply(1, 42));
55 assertEquals(-42, multiply(-42, 1));
56 assertEquals(-42, multiply(1, -42));
57 assertEquals(Long
.MAX_VALUE
, multiply(Long
.MAX_VALUE
, 1));
58 assertEquals(Long
.MAX_VALUE
, multiply(1, Long
.MAX_VALUE
));
59 assertEquals(Long
.MIN_VALUE
, multiply(Long
.MIN_VALUE
, 1));
60 assertEquals(Long
.MIN_VALUE
, multiply(1, Long
.MIN_VALUE
));
67 public void testMult100() {
68 assertEquals(10000, multiply(100, 100));
69 assertEquals(-10000, multiply(100, -100));
70 assertEquals(-10000, multiply(-100, 100));
71 assertEquals(10000, multiply(-100, -100));
73 assertEquals(Long
.MAX_VALUE
, multiply(Long
.MAX_VALUE
, 100));
74 assertEquals(Long
.MAX_VALUE
, multiply(100, Long
.MAX_VALUE
));
75 assertEquals(Long
.MIN_VALUE
, multiply(Long
.MIN_VALUE
, 100));
76 assertEquals(Long
.MIN_VALUE
, multiply(100, Long
.MIN_VALUE
));
78 assertEquals(Long
.MIN_VALUE
, multiply(Long
.MAX_VALUE
, -100));
79 assertEquals(Long
.MIN_VALUE
, multiply(-100, Long
.MAX_VALUE
));
80 assertEquals(Long
.MAX_VALUE
, multiply(Long
.MIN_VALUE
, -100));
81 assertEquals(Long
.MAX_VALUE
, multiply(-100, Long
.MIN_VALUE
));
88 public void testMultLimit() {
89 assertEquals(Long
.MAX_VALUE
, multiply(Long
.MAX_VALUE
, Long
.MAX_VALUE
));
90 assertEquals(Long
.MIN_VALUE
, multiply(Long
.MAX_VALUE
, Long
.MIN_VALUE
));
91 assertEquals(Long
.MIN_VALUE
, multiply(Long
.MIN_VALUE
, Long
.MAX_VALUE
));
92 assertEquals(Long
.MAX_VALUE
, multiply(Long
.MIN_VALUE
, Long
.MIN_VALUE
));
99 public void testAdd0() {
100 assertEquals(0, add(0, 0));
101 assertEquals(1, add(0, 1));
102 assertEquals(1, add(1, 0));
104 assertEquals(42, add(42, 0));
105 assertEquals(42, add(0, 42));
106 assertEquals(-42, add(-42, 0));
107 assertEquals(-42, add(0, -42));
109 assertEquals(Long
.MAX_VALUE
, add(Long
.MAX_VALUE
, 0));
110 assertEquals(Long
.MAX_VALUE
, add(0, Long
.MAX_VALUE
));
111 assertEquals(Long
.MIN_VALUE
, add(Long
.MIN_VALUE
, 0));
112 assertEquals(Long
.MIN_VALUE
, add(0, Long
.MIN_VALUE
));
119 public void testAdd100() {
120 assertEquals(200, add(100, 100));
121 assertEquals(0, add(100, -100));
122 assertEquals(0, add(-100, 100));
123 assertEquals(-200, add(-100, -100));
125 assertEquals(Long
.MAX_VALUE
, add(Long
.MAX_VALUE
, 100));
126 assertEquals(Long
.MAX_VALUE
, add(100, Long
.MAX_VALUE
));
127 assertEquals(Long
.MIN_VALUE
+ 100, add(Long
.MIN_VALUE
, 100));
128 assertEquals(Long
.MIN_VALUE
+ 100, add(100, Long
.MIN_VALUE
));
130 assertEquals(Long
.MAX_VALUE
- 100, add(Long
.MAX_VALUE
, -100));
131 assertEquals(Long
.MAX_VALUE
- 100, add(-100, Long
.MAX_VALUE
));
132 assertEquals(Long
.MIN_VALUE
, add(Long
.MIN_VALUE
, -100));
133 assertEquals(Long
.MIN_VALUE
, add(-100, Long
.MIN_VALUE
));
140 public void testAddLimit() {
141 assertEquals(Long
.MAX_VALUE
, add(Long
.MAX_VALUE
, Long
.MAX_VALUE
));
142 assertEquals(-1, add(Long
.MAX_VALUE
, Long
.MIN_VALUE
)); // min value is 1
145 assertEquals(-1, add(Long
.MIN_VALUE
, Long
.MAX_VALUE
));
146 assertEquals(Long
.MIN_VALUE
, add(Long
.MIN_VALUE
, Long
.MIN_VALUE
));
153 public void testSameSign() {
154 assertTrue(sameSign(0, 0));
155 assertTrue(sameSign(0, -0));
157 assertFalse(sameSign(0, -100));
158 assertFalse(sameSign(-100, 0));
159 assertTrue(sameSign(0, 100));
160 assertTrue(sameSign(100, 0));
162 assertFalse(sameSign(-0, -100));
163 assertFalse(sameSign(-100, -0));
164 assertTrue(sameSign(-0, 100));
165 assertTrue(sameSign(100, -0));
167 assertTrue(sameSign(100, 100));
168 assertFalse(sameSign(100, -100));
169 assertFalse(sameSign(-100, 100));
170 assertTrue(sameSign(-100, -100));
172 assertTrue(sameSign(Long
.MAX_VALUE
, 100));
173 assertTrue(sameSign(100, Long
.MAX_VALUE
));
174 assertFalse(sameSign(Long
.MIN_VALUE
, 100));
175 assertFalse(sameSign(100, Long
.MIN_VALUE
));
177 assertFalse(sameSign(Long
.MAX_VALUE
, -100));
178 assertFalse(sameSign(-100, Long
.MAX_VALUE
));
179 assertTrue(sameSign(Long
.MIN_VALUE
, -100));
180 assertTrue(sameSign(-100, Long
.MIN_VALUE
));
This page took 0.036574 seconds and 5 git commands to generate.