package com.planbase.pdf.layoutmanager;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.organicdesign.testUtils.EqualsContract.equalsDistinctHashCode;
import static org.organicdesign.testUtils.EqualsContract.equalsSameHashCode;
public class PaddingTest {
@Test public void staticFactoryTest() {
assertTrue(Padding.NO_PADDING == Padding.of(0));
assertTrue(Padding.NO_PADDING == Padding.of(0,0,0,0));
assertTrue(Padding.DEFAULT_TEXT_PADDING == Padding.of(1.5f, 1.5f, 2f, 1.5f));
Padding p2 = Padding.of(2);
assertEquals(2.0f, p2.top(), 0.0f);
assertEquals(2.0f, p2.right(), 0.0f);
assertEquals(2.0f, p2.bottom(), 0.0f);
assertEquals(2.0f, p2.left(), 0.0f);
Padding pPrime = Padding.of(3, 5, 7, 11);
assertEquals(3.0f, pPrime.top(), 0.0f);
assertEquals(5.0f, pPrime.right(), 0.0f);
assertEquals(7.0f, pPrime.bottom(), 0.0f);
assertEquals(11.0f, pPrime.left(), 0.0f);
}
@Test public void equalHashTest() {
// Test first item different
equalsDistinctHashCode(Padding.of(1), Padding.of(1,1,1,1), Padding.of(1),
Padding.of(2,1,1,1));
// Test transposed middle items are different (but have same hashcode)
equalsSameHashCode(Padding.of(3, 5, 7, 1.1f), Padding.of(3, 5, 7, 1.1f),
Padding.of(3, 5, 7, 1.1f),
Padding.of(3, 7, 5, 1.1f));
// Padding values that differ by less than 0.1f have the same hashcode
// but are not equal. Prove it (also tests last item is different):
equalsSameHashCode(Padding.of(1), Padding.of(1, 1, 1, 1), Padding.of(1),
Padding.of(1, 1, 1, 1.0001f));
}
}