@Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        PiPacketOperation that = (PiPacketOperation) o;
        return Objects.equal(packetMetadatas, that.packetMetadatas) &&
                Objects.equal(frame, that.data()) &&
                Objects.equal(type, that.type());
    }
@Test
    public void testEquals() {

        new EqualsTester()
                .addEqualityGroup(piPacketOperation1, sameAsPiPacketOperation1)
                .addEqualityGroup(piPacketOperation2)
                .testEquals();
    }