// Path: friendly-id/src/main/java/com/devskiller/friendly_id/BigIntegerPairing.java
// static BigInteger pair(BigInteger hi, BigInteger lo) {
// 	BigInteger unsignedLo = toUnsigned.apply(lo);
// 	BigInteger unsignedHi = toUnsigned.apply(hi);
// 	return unsignedLo.add(unsignedHi.multiply(HALF));
// }
// 
// Path: friendly-id/src/main/java/com/devskiller/friendly_id/BigIntegerPairing.java
// static BigInteger[] unpair(BigInteger value) {
// 	BigInteger[] parts = value.divideAndRemainder(HALF);
// 	BigInteger signedHi = toSigned.apply(parts[0]);
// 	BigInteger signedLo = toSigned.apply(parts[1]);
// 	return new BigInteger[]{signedHi, signedLo};
// }


import java.math.BigInteger;
import java.util.Arrays;
import io.vavr.Tuple2;
import org.junit.Test;
import static com.devskiller.friendly_id.BigIntegerPairing.pair;
import static com.devskiller.friendly_id.BigIntegerPairing.unpair;
import static io.vavr.test.Property.def;
import static java.math.BigInteger.valueOf;
import static org.assertj.core.api.Assertions.assertThat;
package com.devskiller.friendly_id;




public class BigIntegerPairingTest {

	@Test
	public void shouldPairTwoLongs() {
		long x = 1;
		long y = 2;

		BigInteger z = pair(valueOf(1), valueOf(2));

		assertThat(unpair(z)).contains(valueOf(x), valueOf(y));
	}

// Path: friendly-id/src/main/java/com/devskiller/friendly_id/BigIntegerPairing.java
// static BigInteger pair(BigInteger hi, BigInteger lo) {
// 	BigInteger unsignedLo = toUnsigned.apply(lo);
// 	BigInteger unsignedHi = toUnsigned.apply(hi);
// 	return unsignedLo.add(unsignedHi.multiply(HALF));
// }
// 
// Path: friendly-id/src/main/java/com/devskiller/friendly_id/BigIntegerPairing.java
// static BigInteger[] unpair(BigInteger value) {
// 	BigInteger[] parts = value.divideAndRemainder(HALF);
// 	BigInteger signedHi = toSigned.apply(parts[0]);
// 	BigInteger signedLo = toSigned.apply(parts[1]);
// 	return new BigInteger[]{signedHi, signedLo};
// }


// Path: friendly-id/src/test/java/com/devskiller/friendly_id/BigIntegerPairingTest.java
import java.math.BigInteger;
import java.util.Arrays;
import io.vavr.Tuple2;
import org.junit.Test;
import static com.devskiller.friendly_id.BigIntegerPairing.pair;
import static com.devskiller.friendly_id.BigIntegerPairing.unpair;
import static io.vavr.test.Property.def;
import static java.math.BigInteger.valueOf;
import static org.assertj.core.api.Assertions.assertThat;

package com.devskiller.friendly_id;




public class BigIntegerPairingTest {

	@Test
	public void shouldPairTwoLongs() {
		long x = 1;
		long y = 2;

		BigInteger z = pair(valueOf(1), valueOf(2));

		assertThat(unpair(z)).contains(valueOf(x), valueOf(y));
	}

	@Test