class DoubleCondition extends BasicCondition<Double, DoubleCondition> implements FloatingPointChecks<Double, DoubleCondition> {

	@Override
	public DoubleCondition isGreaterThanOrEqual(Double number)
	{
		require(this.subject).isNotNull();
		require(number).isNotNull();

		if (!(Double.compare(this.subject, number) >= 0))
		{
			DbcAssertionError.throwNew(new IllegalArgumentException("Expected double <" + this.subject + "> to be greater than or equal to <" + number + ">"), this.message);
		}

		return result();
	}

}

class DoubleConditionTest {

	@Test
	public void isGreaterThanOrEqual() throws Exception
	{

		DoubleCondition condition = new DoubleCondition(2.0D);
		condition.isGreaterThanOrEqual(2D);

		assertThatThrownBy(() -> condition.isGreaterThanOrEqual(3D))
				.isInstanceOf(DbcAssertionError.class)
				.hasCauseInstanceOf(IllegalArgumentException.class);
	}

}