blob: 6b92bbd54bd353427a669a98d65fcd6f16325f73 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2017 École Polytechnique de Montréal
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
******************************************************************************/
package org.eclipse.tracecompass.internal.datastore.core.condition;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import org.eclipse.tracecompass.internal.provisional.datastore.core.condition.TimeRangeCondition;
import org.junit.Test;
/**
* Test the singleton time range condition
*
* @author Geneviève Bastien
*/
public class SingletonTimeRangeConditionTest {
private static final long VALUE = 5;
private static final SingletonTimeRangeCondition CONDITION = new SingletonTimeRangeCondition(VALUE);
/**
* Ensure that the minimum and maximum functions return the correct values.
*/
@Test
public void testBounds() {
assertEquals(VALUE, (int) CONDITION.min());
assertEquals(VALUE, (int) CONDITION.max());
}
/**
* Test that the right elements are contained in the condition.
*/
@Test
public void testPredicate() {
assertFalse(CONDITION.test(-5));
assertTrue(CONDITION.test(VALUE));
assertFalse(CONDITION.test(15));
}
/**
* Test that the right intervals intersect the condition.
*/
@Test
public void testIntersects() {
assertFalse(CONDITION.intersects(Integer.MIN_VALUE, VALUE - 1));
assertTrue(CONDITION.intersects(VALUE - 1, VALUE + 1));
assertTrue(CONDITION.intersects(VALUE, VALUE + 1));
assertTrue(CONDITION.intersects(VALUE - 1, VALUE));
assertFalse(CONDITION.intersects(VALUE + 1, Integer.MAX_VALUE));
}
/**
* Test that the returned subcondition has the correct bounds.
*/
@Test
public void testSubCondition() {
TimeRangeCondition sub = CONDITION.subCondition(VALUE - 1, VALUE + 1);
assertNotNull(sub);
assertEquals(sub, CONDITION);
// For a range where no value is include, it should return null
sub = CONDITION.subCondition(Long.MIN_VALUE, VALUE - 1);
assertNull(sub);
sub = CONDITION.subCondition(VALUE + 1, VALUE + 2);
assertNull(sub);
}
}