Example #1
0
    def test_TrackExceptions():
        """
        """

        image = hybridtrack.test_input()
        try:
            Track(image)
            raise RuntimeError('Failed to raise error on Track instantiation')
        except InputError:
            pass

        try:
            Track(image, is_modeled=True, is_measured=True)
            raise RuntimeError('Failed to raise error on Track instantiation')
        except InputError:
            pass

        try:
            Track(image, is_modeled=False, is_measured=False)
            raise RuntimeError('Failed to raise error on Track instantiation')
        except InputError:
            pass
Example #2
0
    def test_TrackExceptions():
        """
        """

        image = hybridtrack.test_input()
        try:
            Track(image)
            raise RuntimeError('Failed to raise error on Track instantiation')
        except InputError:
            pass

        try:
            Track(image, is_modeled=True, is_measured=True)
            raise RuntimeError('Failed to raise error on Track instantiation')
        except InputError:
            pass

        try:
            Track(image, is_modeled=False, is_measured=False)
            raise RuntimeError('Failed to raise error on Track instantiation')
        except InputError:
            pass
Example #3
0
def test_Track():
    """
    """

    def test_Track_read(track):
        # test Track data format
        from etrack.io import trackio
        import os

        filebase = ''.join(
            chr(i) for i in np.random.randint(97, 122, size=(8,)))
        filename = '.'.join([filebase, 'h5'])
        with h5py.File(filename, 'a') as h5file:
            trackio.write_object_to_hdf5(
                track, h5file, 'track')
        with h5py.File(filename, 'r') as h5file:
            track2 = trackio.read_object_from_hdf5(
                h5file['track'])

        assert track2['is_modeled'] == track.is_modeled
        assert track2['pixel_size_um'] == track.pixel_size_um
        assert track2['noise_ev'] == track.noise_ev
        assert track2['label'] == track.label
        assert track2['energy_kev'] == track.energy_kev
        assert np.all(track2['image'] == track.image)

        assert track2['algorithms']['python HT v1.5']['alpha_deg'] == 120.5
        assert track2['algorithms']['python HT v1.5']['beta_deg'] == 43.5

        test_Track_from_pydict(track, track2)

        test_Track_from_hdf5()

        os.remove(filename)

    def test_Track_from_pydict(track, track2):
        """
        track is the original generated Track object
        track2 is the pydict from file

        Returns the track object constructed from pydict.
        """
        track3 = Track.from_pydict(track2)
        assert track3.is_modeled == track.is_modeled
        assert track3.pixel_size_um == track.pixel_size_um
        assert track3.noise_ev == track.noise_ev
        assert track3.label == track.label
        assert track3.energy_kev == track.energy_kev
        assert np.all(track3.image == track.image)

        assert track3.algorithms['python HT v1.5'].alpha_deg == 120.5
        assert track3.algorithms['python HT v1.5'].beta_deg == 43.5

        return track3

    def test_Track_from_hdf5():
        """
        as previously, but test the Track.from_hdf5() constructor.
        """

        # TODO
        print('test_Track_from_hdf5 not implemented yet!')
        pass

    def test_TrackExceptions():
        """
        """

        image = hybridtrack.test_input()
        try:
            Track(image)
            raise RuntimeError('Failed to raise error on Track instantiation')
        except InputError:
            pass

        try:
            Track(image, is_modeled=True, is_measured=True)
            raise RuntimeError('Failed to raise error on Track instantiation')
        except InputError:
            pass

        try:
            Track(image, is_modeled=False, is_measured=False)
            raise RuntimeError('Failed to raise error on Track instantiation')
        except InputError:
            pass

    # test_Track() main

    image = hybridtrack.test_input()

    track = Track(image, is_modeled=True, pixel_size_um=10.5, noise_ev=0.0,
                  label='MultiAngle', energy_kev=np.sum(image))
    options, info = hybridtrack.reconstruct(track)

    track.add_algorithm('python HT v1.5', 120.5, 43.5, info=info)

    test_Track_read(track)

    test_TrackExceptions()
Example #4
0
def test_Track():
    """
    """
    def test_Track_read(track):
        # test Track data format
        from etrack.io import trackio
        import os

        filebase = ''.join(
            chr(i) for i in np.random.randint(97, 122, size=(8, )))
        filename = '.'.join([filebase, 'h5'])
        with h5py.File(filename, 'a') as h5file:
            trackio.write_object_to_hdf5(track, h5file, 'track')
        with h5py.File(filename, 'r') as h5file:
            track2 = trackio.read_object_from_hdf5(h5file['track'])

        assert track2['is_modeled'] == track.is_modeled
        assert track2['pixel_size_um'] == track.pixel_size_um
        assert track2['noise_ev'] == track.noise_ev
        assert track2['label'] == track.label
        assert track2['energy_kev'] == track.energy_kev
        assert np.all(track2['image'] == track.image)

        assert track2['algorithms']['python HT v1.5']['alpha_deg'] == 120.5
        assert track2['algorithms']['python HT v1.5']['beta_deg'] == 43.5

        test_Track_from_pydict(track, track2)

        test_Track_from_hdf5()

        os.remove(filename)

    def test_Track_from_pydict(track, track2):
        """
        track is the original generated Track object
        track2 is the pydict from file

        Returns the track object constructed from pydict.
        """
        track3 = Track.from_pydict(track2)
        assert track3.is_modeled == track.is_modeled
        assert track3.pixel_size_um == track.pixel_size_um
        assert track3.noise_ev == track.noise_ev
        assert track3.label == track.label
        assert track3.energy_kev == track.energy_kev
        assert np.all(track3.image == track.image)

        assert track3.algorithms['python HT v1.5'].alpha_deg == 120.5
        assert track3.algorithms['python HT v1.5'].beta_deg == 43.5

        return track3

    def test_Track_from_hdf5():
        """
        as previously, but test the Track.from_hdf5() constructor.
        """

        # TODO
        print('test_Track_from_hdf5 not implemented yet!')
        pass

    def test_TrackExceptions():
        """
        """

        image = hybridtrack.test_input()
        try:
            Track(image)
            raise RuntimeError('Failed to raise error on Track instantiation')
        except InputError:
            pass

        try:
            Track(image, is_modeled=True, is_measured=True)
            raise RuntimeError('Failed to raise error on Track instantiation')
        except InputError:
            pass

        try:
            Track(image, is_modeled=False, is_measured=False)
            raise RuntimeError('Failed to raise error on Track instantiation')
        except InputError:
            pass

    # test_Track() main

    image = hybridtrack.test_input()

    track = Track(image,
                  is_modeled=True,
                  pixel_size_um=10.5,
                  noise_ev=0.0,
                  label='MultiAngle',
                  energy_kev=np.sum(image))
    options, info = hybridtrack.reconstruct(track)

    track.add_algorithm('python HT v1.5', 120.5, 43.5, info=info)

    test_Track_read(track)

    test_TrackExceptions()