// Path: iextrading4j-hist-api/src/main/java/pl/zankowski/iextrading4j/hist/api/field/IEXPrice.java
// public class IEXPrice implements Comparable<IEXPrice>, Serializable {
// 
//     private static final int SCALE = 4;
// 
//     private final long number;
// 
//     public IEXPrice(final long number) {
//         this.number = number;
//     }
// 
//     public long getNumber() {
//         return number;
//     }
// 
//     public BigDecimal toBigDecimal() {
//         return BigDecimal.valueOf(number)
//                 .scaleByPowerOfTen(-SCALE);
//     }
// 
//     @Override
//     public int compareTo(final IEXPrice iexPrice) {
//         return compare(this.getNumber(), iexPrice.getNumber());
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
//         IEXPrice iexPrice = (IEXPrice) o;
//         return number == iexPrice.number;
//     }
// 
//     @Override
//     public int hashCode() {
//         return Objects.hashCode(number);
//     }
// 
//     @Override
//     public String toString() {
//         return toBigDecimal()
//                 .toString();
//     }
// }


import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import pl.zankowski.iextrading4j.hist.api.field.IEXPrice;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;
        byte[] bytes = IEXByteTestUtil.convertUnsignedShort(value);

        assertThat(IEXByteConverter.convertBytesToUnsignedShort(bytes)).isEqualTo(value);
    }

    @Test
    void shouldSuccessfullyConvertBytesToInt() {
        final int value = 123456;
        byte[] bytes = IEXByteTestUtil.convert(value);

        assertThat(IEXByteConverter.convertBytesToInt(bytes)).isEqualTo(value);
    }

    @Test
    void shouldSuccessfullyConvertIntegerToBytes() {
        final byte[] bytes = IEXByteConverter.toByteArray(4);
        byte[] bytes2 = IEXByteTestUtil.convert(4);
        assertThat(bytes).containsExactly(bytes2);
    }

    @Test
    void shouldSuccessfullyConvertBytesToLong() {
        final long value = 1234567891L;
        byte[] bytes = IEXByteTestUtil.convert(value);

        assertThat(IEXByteConverter.convertBytesToLong(bytes)).isEqualTo(value);
    }

    @Test
    void shouldSuccessfullyConvertBytesToIEXPrice() {
// Path: iextrading4j-hist-api/src/main/java/pl/zankowski/iextrading4j/hist/api/field/IEXPrice.java
// public class IEXPrice implements Comparable<IEXPrice>, Serializable {
// 
//     private static final int SCALE = 4;
// 
//     private final long number;
// 
//     public IEXPrice(final long number) {
//         this.number = number;
//     }
// 
//     public long getNumber() {
//         return number;
//     }
// 
//     public BigDecimal toBigDecimal() {
//         return BigDecimal.valueOf(number)
//                 .scaleByPowerOfTen(-SCALE);
//     }
// 
//     @Override
//     public int compareTo(final IEXPrice iexPrice) {
//         return compare(this.getNumber(), iexPrice.getNumber());
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
//         IEXPrice iexPrice = (IEXPrice) o;
//         return number == iexPrice.number;
//     }
// 
//     @Override
//     public int hashCode() {
//         return Objects.hashCode(number);
//     }
// 
//     @Override
//     public String toString() {
//         return toBigDecimal()
//                 .toString();
//     }
// }


// Path: iextrading4j-hist-api/src/test/java/pl/zankowski/iextrading4j/hist/api/util/IEXByteConverterTest.java
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import pl.zankowski.iextrading4j.hist.api.field.IEXPrice;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;

        byte[] bytes = IEXByteTestUtil.convertUnsignedShort(value);

        assertThat(IEXByteConverter.convertBytesToUnsignedShort(bytes)).isEqualTo(value);
    }

    @Test
    void shouldSuccessfullyConvertBytesToInt() {
        final int value = 123456;
        byte[] bytes = IEXByteTestUtil.convert(value);

        assertThat(IEXByteConverter.convertBytesToInt(bytes)).isEqualTo(value);
    }

    @Test
    void shouldSuccessfullyConvertIntegerToBytes() {
        final byte[] bytes = IEXByteConverter.toByteArray(4);
        byte[] bytes2 = IEXByteTestUtil.convert(4);
        assertThat(bytes).containsExactly(bytes2);
    }

    @Test
    void shouldSuccessfullyConvertBytesToLong() {
        final long value = 1234567891L;
        byte[] bytes = IEXByteTestUtil.convert(value);

        assertThat(IEXByteConverter.convertBytesToLong(bytes)).isEqualTo(value);
    }

    @Test
    void shouldSuccessfullyConvertBytesToIEXPrice() {
        final IEXPrice iexPrice = new IEXPrice(123456789L);