Skip to content

Commit

Permalink
Add "unit tests" for diff tool to increase coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
drdavella committed Aug 4, 2017
1 parent 30e12c9 commit 60e762b
Show file tree
Hide file tree
Showing 9 changed files with 345 additions and 0 deletions.
Binary file added asdf/commands/tests/data/block0.asdf
Binary file not shown.
Binary file added asdf/commands/tests/data/block1.asdf
Binary file not shown.
13 changes: 13 additions & 0 deletions asdf/commands/tests/data/blocks.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
tree:
foobar:
bizbaz:
> green
< red
datatype:
> uint64
< float64
shape:
-
> 9000
< 10000
ndarrays differ by shape, datatype and contents
46 changes: 46 additions & 0 deletions asdf/commands/tests/data/frames.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
tree:
asdf_library:
version:
> 1.2.2.dev858
< 1.2.2.dev846
> frames:
> - reference_frame:
> galcen_coord:
> dec:
> unit:
> deg
> value:
> -28.936175
> ra:
> unit:
> deg
> value:
> 266.4051
> wrap_angle:
> unit:
> deg
> value:
> 360.0
> galcen_v_sun:
> - unit:
> km s-1
> value:
> 11.1
> - unit:
> km s-1
> value:
> 232.24
> - unit:
> km s-1
> value:
> 7.25
< galcen_dec:
< unit:
< rad
< value:
< 1.0
< galcen_ra:
< unit:
< deg
< value:
< 45.0
97 changes: 97 additions & 0 deletions asdf/commands/tests/data/frames0.asdf
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
#ASDF 1.0.0
#ASDF_STANDARD 1.1.0
%YAML 1.1
%TAG ! tag:stsci.edu:asdf/
--- !core/asdf-1.0.0
asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf',
name: asdf, version: 1.2.2.dev858}
frames:
- !wcs/celestial_frame-1.1.0
axes_names: [lon, lat]
name: CelestialFrame
reference_frame: {type: ICRS}
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [lon, lat]
name: CelestialFrame
reference_frame: {equinox: !time/time-1.0.0 '2010-01-01 00:00:00.000', type: FK5}
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [lon, lat]
name: CelestialFrame
reference_frame: {equinox: !time/time-1.0.0 '2010-01-01 00:00:00.000', obstime: !time/time-1.0.0 '2015-01-01
00:00:00.000', type: FK4}
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [lon, lat]
name: CelestialFrame
reference_frame: {equinox: !time/time-1.0.0 '2010-01-01 00:00:00.000', obstime: !time/time-1.0.0 '2015-01-01
00:00:00.000', type: FK4_noeterms}
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [lon, lat]
name: CelestialFrame
reference_frame: {type: galactic}
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [x, y, z]
axes_order: [0, 1, 2]
name: CelestialFrame
reference_frame:
galcen_coord: !wcs/icrs_coord-1.1.0
dec: {value: -28.936175}
ra:
value: 266.4051
wrap_angle: !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 deg, value: 360.0}
galcen_distance: !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 m, value: 5.0}
galcen_v_sun:
- !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 km s-1, value: 11.1}
- !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 km s-1, value: 232.24}
- !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 km s-1, value: 7.25}
roll: !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 deg, value: 3.0}
type: galactocentric
z_sun: !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 pc, value: 3.0}
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [lon, lat]
name: CelestialFrame
reference_frame:
obsgeoloc:
- !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 m, value: 3.0856775814671916e+16}
- !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 m, value: 9.257032744401574e+16}
- !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 m, value: 6.1713551629343834e+19}
obsgeovel:
- !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 m s-1, value: 2.0}
- !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 m s-1, value: 1.0}
- !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 m s-1, value: 8.0}
obstime: !time/time-1.0.0 2010-01-01 00:00:00.000
type: GCRS
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [lon, lat]
name: CelestialFrame
reference_frame: {obstime: !time/time-1.0.0 '2010-01-01 00:00:00.000', type: CIRS}
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [x, y, z]
axes_order: [0, 1, 2]
name: CelestialFrame
reference_frame: {obstime: !time/time-1.0.0 '2022-01-03 00:00:00.000', type: ITRS}
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [lon, lat]
name: CelestialFrame
reference_frame:
equinox: !time/time-1.0.0 J2000.000
obsgeoloc:
- !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 m, value: 3.0856775814671916e+16}
- !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 m, value: 9.257032744401574e+16}
- !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 m, value: 6.1713551629343834e+19}
obsgeovel:
- !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 m s-1, value: 2.0}
- !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 m s-1, value: 1.0}
- !unit/quantity-1.1.0 {unit: !unit/unit-1.0.0 m s-1, value: 8.0}
obstime: !time/time-1.0.0 2010-01-01 00:00:00.000
type: precessed_geocentric
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
...
124 changes: 124 additions & 0 deletions asdf/commands/tests/data/frames1.asdf
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
#ASDF 1.0.0
#ASDF_STANDARD 1.1.0
%YAML 1.1
%TAG ! tag:stsci.edu:asdf/
--- !core/asdf-1.0.0
asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf',
name: asdf, version: 1.2.2.dev846}
frames:
- !wcs/celestial_frame-1.1.0
axes_names: [lon, lat, blurg]
name: CelestialFrame
reference_frame: {type: ICRS}
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [lon, lat]
name: CelestialFrame
reference_frame: {equinox: !time/time-1.0.0 '2010-01-01 00:00:00.000', type: FK5}
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [lon, lat]
name: CelestialFrame
reference_frame: {equinox: !time/time-1.0.0 '2010-01-01 00:00:00.000', obstime: !time/time-1.0.0 '2015-01-01
00:00:00.000', type: FK4}
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [lon, lat]
name: CelestialFrame
reference_frame: {equinox: !time/time-1.0.0 '2010-01-01 00:00:00.000', obstime: !time/time-1.0.0 '2015-01-01
00:00:00.000', type: FK4_noeterms}
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [lon, lat]
name: CelestialFrame
reference_frame: {type: galactic}
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [x, y, z]
axes_order: [0, 1, 2]
name: CelestialFrame
reference_frame:
galcen_dec: !unit/quantity-1.1.0
unit: rad
value: 1.0
galcen_distance: !unit/quantity-1.1.0
unit: m
value: 5.0
galcen_ra: !unit/quantity-1.1.0
unit: deg
value: 45.0
roll: !unit/quantity-1.1.0
unit: deg
value: 3.0
type: galactocentric
z_sun: !unit/quantity-1.1.0
unit: pc
value: 3.0
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [lon, lat]
name: CelestialFrame
reference_frame:
obsgeoloc:
- !unit/quantity-1.1.0
unit: m
value: 3.0856775814671916e+16
- !unit/quantity-1.1.0
unit: m
value: 9.257032744401574e+16
- !unit/quantity-1.1.0
unit: m
value: 6.1713551629343834e+19
obsgeovel:
- !unit/quantity-1.1.0
unit: m s-1
value: 2.0
- !unit/quantity-1.1.0
unit: m s-1
value: 1.0
- !unit/quantity-1.1.0
unit: m s-1
value: 8.0
obstime: !time/time-1.0.0 2010-01-01 00:00:00.000
type: GCRS
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [lon, lat]
name: CelestialFrame
reference_frame: {obstime: !time/time-1.0.0 '2010-01-01 00:00:00.000', type: CIRS}
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [x, y, z]
axes_order: [0, 1, 2]
name: CelestialFrame
reference_frame: {obstime: !time/time-1.0.0 '2022-01-03 00:00:00.000', type: ITRS}
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
- !wcs/celestial_frame-1.1.0
axes_names: [lon, lat]
name: CelestialFrame
reference_frame:
equinox: !time/time-1.0.0 J2000.000
obsgeoloc:
- !unit/quantity-1.1.0
unit: m
value: 3.0856775814671916e+16
- !unit/quantity-1.1.0
unit: m
value: 9.257032744401574e+16
- !unit/quantity-1.1.0
unit: m
value: 6.1713551629343834e+19
obsgeovel:
- !unit/quantity-1.1.0
unit: m s-1
value: 2.0
- !unit/quantity-1.1.0
unit: m s-1
value: 1.0
- !unit/quantity-1.1.0
unit: m s-1
value: 8.0
obstime: !time/time-1.0.0 2010-01-01 00:00:00.000
type: precessed_geocentric
unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg]
...
12 changes: 12 additions & 0 deletions asdf/commands/tests/data/frames_minimal.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
tree:
asdf_library:
version:
> 1.2.2.dev858
< 1.2.2.dev846
frames:
-
reference_frame:
> galcen_coord
> galcen_v_sun
< galcen_dec
< galcen_ra
9 changes: 9 additions & 0 deletions asdf/commands/tests/setup_package.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Licensed under a 3-clause BSD style license - see LICENSE.rst
# -*- coding: utf-8 -*-

from __future__ import absolute_import, division, unicode_literals, print_function


def get_package_data(): # pragma: no cover
return {
str(_PACKAGE_NAME_ + '.commands.tests'): ['data/*.asdf', 'data/*.diff']}
44 changes: 44 additions & 0 deletions asdf/commands/tests/test_diff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Licensed under a 3-clause BSD style license - see LICENSE.rst
# -*- coding: utf-8 -*-

from __future__ import absolute_import, division, unicode_literals, print_function

import os
import io

import numpy as np
import pytest

from ... import AsdfFile
from .. import diff


TEST_DATA_PATH = os.path.join(os.path.dirname(__file__), 'data')


def _assert_diffs_equal(filenames, result_file, minimal=False):
iostream = io.StringIO()

file_paths = ["{}/{}".format(TEST_DATA_PATH, name) for name in filenames]
diff(file_paths, minimal=minimal, iostream=iostream)
iostream.seek(0)

result_path = "{}/{}".format(TEST_DATA_PATH, result_file)
with open(result_path, 'r') as handle:
assert handle.read() == iostream.read()

def test_diff():
filenames = ['frames0.asdf', 'frames1.asdf']
result_file = 'frames.diff'
_assert_diffs_equal(filenames, result_file, minimal=False)

def test_diff_minimal():
filenames = ['frames0.asdf', 'frames1.asdf']
result_file = 'frames_minimal.diff'
_assert_diffs_equal(filenames, result_file, minimal=True)

def test_diff_block():
filenames = ['block0.asdf', 'block1.asdf']
result_file = 'blocks.diff'

_assert_diffs_equal(filenames, result_file, minimal=False)

0 comments on commit 60e762b

Please sign in to comment.