def test_array_elements_round_trip(element, array): generator = bitpacking.pack_array_element(element, array) b = bitpacking._pack_encode_results(list(generator)) decoder = bitpacking.BitPackDecoder(b) decoded_element = decoder.decode_element(array) assert element == decoded_element
def test_sorted_array_elements_round_trip(elements, array): generator = bitpacking.pack_sorted_array_elements(elements, array) b = bitpacking._pack_encode_results(list(generator)) decoder = bitpacking.BitPackDecoder(b) decoded_elements = bitpacking.decode_sorted_array_elements(decoder, array) assert elements == decoded_elements
def test_encode_int_with_limits_round_trip(value: int, limits: Tuple[int, ...], ): # Run data = bitpacking._pack_encode_results(list(bitpacking.encode_int_with_limits(value, limits))) decoded = bitpacking.decode_int_with_limits(bitpacking.BitPackDecoder(data), limits) # Assert assert decoded == value
def test_encode(configuration_with_data): expected, value = configuration_with_data # Run result = bitpacking._pack_encode_results([ (value_argument, value_format) for value_argument, value_format in value.bit_pack_encode({}) ]) # Assert assert result == expected
def test_encode(state_with_data): # Setup item, expected, value = state_with_data # Run result = bitpacking._pack_encode_results([ (value_argument, value_format) for value_argument, value_format in value.bit_pack_encode(item) ]) # Assert assert result == expected
def test_encode(with_data): # Setup reference, expected, value = with_data # Run result = bitpacking._pack_encode_results([ (value_argument, value_format) for value_argument, value_format in value.bit_pack_encode( {"reference": reference}) ]) # Assert assert result == expected
def test_encode_no_tricks_are_removed(): from_json = TrickLevelConfiguration.from_json({ "minimal_logic": False, "specific_levels": { "Dash": "no-tricks" } }) encoded = bitpacking._pack_encode_results([ (value_argument, value_format) for value_argument, value_format in from_json.bit_pack_encode({}) ]) assert encoded == b'\x00\x00\x00\x00' decoder = BitPackDecoder(encoded) decoded = TrickLevelConfiguration.bit_pack_unpack(decoder, {}) assert decoded.specific_levels == {}
def test_encode_no_tricks_are_removed(): from_json = TrickLevelConfiguration.from_json( { "minimal_logic": False, "specific_levels": { "Dash": "disabled" } }, game=RandovaniaGame.PRIME2) encoded = bitpacking._pack_encode_results([ (value_argument, value_format) for value_argument, value_format in from_json.bit_pack_encode({}) ]) assert encoded == b'\x00\x00\x00\x00' decoder = BitPackDecoder(encoded) decoded = TrickLevelConfiguration.bit_pack_unpack(decoder, { "reference": TrickLevelConfiguration(False, {}, RandovaniaGame.PRIME2), }) assert decoded.specific_levels == {}