Beispiel #1
0
def check_json_serializaiton(dataset: habitat.Dataset):
    start_time = time.time()
    json_str = str(dataset.to_json())
    logger.info("JSON conversion finished. {} sec".format(
        (time.time() - start_time)))
    decoded_dataset = dataset.__class__()
    decoded_dataset.from_json(json_str)
    assert len(decoded_dataset.episodes) > 0
    episode = decoded_dataset.episodes[0]
    assert isinstance(episode, Episode)
    assert (decoded_dataset.to_json() == json_str
            ), "JSON dataset encoding/decoding isn't consistent"
 def make_easy_dataset(dataset: habitat.Dataset) -> habitat.Dataset:
     episodes = [
         e for e in dataset.episodes if float(e.info["geodesic_distance"]) < 1.5
     ]
     for i, e in enumerate(episodes):
         e.episode_id = str(i)
     dataset.episodes = episodes
     return dataset
Beispiel #3
0
def check_json_serializaiton(dataset: habitat.Dataset):
    start_time = time.time()
    json_str = dataset.to_json()
    logger.info("JSON conversion finished. {} sec".format(
        (time.time() - start_time)))
    decoded_dataset = ObjectNavDatasetV1()
    decoded_dataset.from_json(json_str)
    assert len(decoded_dataset.episodes) == len(dataset.episodes)
    episode = decoded_dataset.episodes[0]
    assert isinstance(episode, Episode)

    # The strings won't match exactly as dictionaries don't have an order for the keys
    # Thus we need to parse the json strings and compare the serialized forms
    assert json.loads(decoded_dataset.to_json()) == json.loads(
        json_str), "JSON dataset encoding/decoding isn't consistent"