Example #1
0
def test_old_registry_multiple_load():
    # See Issue #157 for details
    reg1 = UnitRegistry()
    reg1.add("code_length", 1.0, length)
    reg1.add("code_mass", 1.0, mass)
    reg1.add("code_time", 1.0, time)
    reg1.add("code_temperature", 1.0, temperature)
    UnitSystem(
        reg1.unit_system_id,
        "code_length",
        "code_mass",
        "code_time",
        "code_temperature",
        registry=reg1,
    )

    cm = Unit("code_mass", registry=reg1)
    cl = Unit("code_length", registry=reg1)

    (cm / cl).latex_representation()

    with open(OLD_JSON_PATH) as f:
        json_data = f.read()

    reg2 = UnitRegistry.from_json(json_data)
    UnitSystem(
        reg2.unit_system_id,
        "code_length",
        "code_mass",
        "code_time",
        "code_temperature",
        registry=reg2,
    )
Example #2
0
    def _parse_parameter_file(self):
        self._prefix = \
          self.filename[:self.filename.rfind(self._suffix)]

        fh = h5py.File(self.filename, mode="r")
        for attr in ["hubble_constant", "omega_matter", "omega_lambda"]:
            setattr(self, attr, fh.attrs.get(attr, None))
        if "unit_registry_json" in fh.attrs:
            self.unit_registry = \
              UnitRegistry.from_json(
                  parse_h5_attr(fh, "unit_registry_json"))
        if "box_size" in fh.attrs:
            self.box_size = _hdf5_yt_attr(fh,
                                          "box_size",
                                          unit_registry=self.unit_registry)
        self.field_info.update(json.loads(parse_h5_attr(fh, "field_info")))
        self._size = fh.attrs["total_trees"]
        fh.close()

        # analysis fields in sidecar files
        analysis_filename = f"{self._prefix}-analysis{self._suffix}"
        if os.path.exists(analysis_filename):
            self.analysis_filename = analysis_filename
            fh = h5py.File(analysis_filename, mode="r")
            analysis_fi = json.loads(parse_h5_attr(fh, "field_info"))
            fh.close()
            for field in analysis_fi:
                analysis_fi[field]["type"] = "analysis_saved"
            self.field_info.update(analysis_fi)
        else:
            self.analysis_filename = None

        self.field_list = list(self.field_info.keys())
Example #3
0
def test_registry_json():
    reg = UnitRegistry()
    json_reg = reg.to_json()
    unserialized_reg = UnitRegistry.from_json(json_reg)

    assert reg.lut == unserialized_reg.lut

    assert reg.lut["m"][1] is length
    assert reg.lut["erg"][1] is energy
Example #4
0
 def hubble_constant(self, value):
     self._hubble_constant = value
     # reset the unit registry lut while preserving other changes
     self.unit_registry = UnitRegistry.from_json(
         self.unit_registry.to_json())
     if 'h' in self.unit_registry:
         self.unit_registry.modify("h", self.hubble_constant)
     else:
         self.unit_registry.add(
             'h', self.hubble_constant, dimensionless)
Example #5
0
    def _parse_parameter_file(self):
        fh = h5py.File(self.filename, "r")

        for attr in ["hubble_constant", "omega_matter", "omega_lambda"]:
            setattr(self, attr, fh.attrs[attr])

        my_ur = UnitRegistry.from_json(parse_h5_attr(fh, "unit_registry_json"))
        right = _hdf5_yt_attr(fh, "domain_right_edge", unit_registry=my_ur)
        left = _hdf5_yt_attr(fh, "domain_left_edge", unit_registry=my_ur)
        # Drop the "cm" suffix because all lengths will
        # be in comoving units.
        self.box_size = self.quan((right - left)[0].to("Mpccm/h"), "Mpc/h")
        fh.close()
Example #6
0
def test_old_registry_json():
    with open(OLD_JSON_PATH) as f:
        json_text = f.read()
    reg = UnitRegistry.from_json(json_text)
    default_reg = UnitRegistry()

    loaded_keys = reg.keys()

    for k in default_reg.keys():
        assert k in loaded_keys
        loaded_val = reg[k]
        val = default_reg[k]
        assert_allclose(loaded_val[0], val[0])
        assert loaded_val[1:] == val[1:]
Example #7
0
def test_old_registry_json():
    path = os.sep.join([os.path.dirname(__file__), "old_json_registry.txt"])
    with open(path) as f:
        json_text = f.read()
    reg = UnitRegistry.from_json(json_text)
    default_reg = UnitRegistry()

    loaded_keys = reg.keys()

    for k in default_reg.keys():
        assert k in loaded_keys
        loaded_val = reg[k]
        val = default_reg[k]
        assert_allclose(loaded_val[0], val[0])
        assert loaded_val[1:] == val[1:]
Example #8
0
 def _parse_parameter_file(self):
     self._prefix = \
       self.filename[:self.filename.rfind(self._suffix)]
     fh = h5py.File(self.filename, "r")
     for attr in ["hubble_constant",
                  "omega_matter",
                  "omega_lambda"]:
         setattr(self, attr, fh.attrs[attr])
     if "unit_registry_json" in fh.attrs:
         self.unit_registry = \
           UnitRegistry.from_json(
               parse_h5_attr(fh, "unit_registry_json"))
     self.box_size = _hdf5_yt_attr(
         fh, "box_size", unit_registry=self.unit_registry)
     self.field_info.update(
         json.loads(parse_h5_attr(fh, "field_info")))
     self.field_list = list(self.field_info.keys())
     self._size = fh.attrs["total_trees"]
     fh.close()
Example #9
0
def test_registry_json():
    reg = UnitRegistry()
    json_reg = reg.to_json()
    unserialized_reg = UnitRegistry.from_json(json_reg)

    assert_equal(reg.lut, unserialized_reg.lut)