### Question:
BytesValue extends Value implements IByteOperations { public BytesValue bitwiseXor(Value otherValue) throws Exception { BytesValue otherBytesValue = (BytesValue)otherValue; assert getBytesCount() == otherBytesValue.getBytesCount(); byte[] newValue = new byte[type.getBytes()]; for (int i = 0; i < getBytesCount(); ++i) { newValue[i] = (byte)(value[i] ^ otherBytesValue.value[i]); } return new BytesValue(type, newValue); } BytesValue(ASTNode type, /*String*/ byte[] value); int getBytesCount(); @Override ASTNode getType(); @Override ASTNode toASTNode(boolean forJavaScript); String toHexConstantString(); @Override Object toJSONRepresentation(); BoolValue isEqualTo(BytesValue other); BoolValue isNotEqualTo(BytesValue other); BoolValue isSmallerThan(BytesValue value); BoolValue isSmallerThanOrEqualTo(BytesValue value); BoolValue isGreaterThan(BytesValue value); BoolValue isGreaterThanOrEqualTo(BytesValue value); BytesValue negateBitwise(); BytesValue bitwiseOr(Value otherValue); BytesValue bitwiseAnd(Value otherValue); BytesValue bitwiseXor(Value otherValue); BytesValue bitwiseShiftLeft(Value value); BytesValue bitwiseShiftRight(Value value); BytesValue indexAccess(Value index); IntegerValue length(); BytesValue convertToBytesType(ASTElementaryTypeName newType); IntegerValue convertToIntegerType(ASTElementaryTypeName newType);  }### Answer:
@Test public void bitwiseXor() throws Exception { }