voruby 1.1.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile.rb +107 -224
- data/lib/misc.rb +1 -0
- data/lib/misc/misc.rb +60 -0
- data/lib/misc/propertyfile.rb +31 -0
- data/lib/symphony.rb +1 -0
- data/lib/symphony/symphony.rb +247 -0
- data/lib/voruby.rb +186 -0
- data/lib/voruby/active_votable/active_votable.rb +468 -347
- data/lib/voruby/adql/1.0/adql.rb +2418 -0
- data/lib/voruby/adql/support.rb +2 -0
- data/lib/voruby/misc.rb +351 -0
- data/lib/voruby/misc/connection_monitor.rb +97 -0
- data/lib/voruby/misc/libxml_ext.rb +121 -0
- data/lib/voruby/misc/rexml_ext.rb +223 -0
- data/lib/voruby/resolver/resolver.rb +12 -0
- data/lib/voruby/resolver/sesame.rb +299 -0
- data/lib/voruby/sky_query/sky_query.rb +192 -0
- data/lib/voruby/stc/1.10/coords.rb +2272 -0
- data/lib/voruby/stc/1.10/region.rb +892 -0
- data/lib/voruby/stc/1.10/stc.rb +3271 -0
- data/lib/voruby/stc/1.30/stc.rb +8666 -0
- data/lib/voruby/stc/support.rb +2 -0
- data/lib/voruby/ucd/ucd.rb +173 -0
- data/lib/voruby/voevent/1.1/voevent.rb +1124 -0
- data/lib/voruby/voevent/support.rb +5 -0
- data/lib/voruby/votable/1.0/votable.rb +1807 -0
- data/lib/voruby/votable/1.1/votable.rb +2100 -0
- data/lib/voruby/votable/votable.rb +305 -0
- data/lib/voruby/wesix/wesix.rb +491 -0
- data/lib/voruby/xlink/1.2/xlink.rb +21 -0
- data/test/voruby/active_votable/complex.vot +60 -0
- data/test/voruby/active_votable/error.vot +6 -0
- data/test/voruby/active_votable/large.vot +130040 -0
- data/test/voruby/active_votable/simple1.vot +38 -0
- data/test/voruby/active_votable/simple2.vot +38 -0
- data/test/voruby/active_votable/test.rb +193 -0
- data/test/voruby/adql/1.0/adql-alias.sql +1 -0
- data/test/voruby/adql/1.0/adql-alias.xml +26 -0
- data/test/voruby/adql/1.0/adql-avg.sql +1 -0
- data/test/voruby/adql/1.0/adql-avg.xml +31 -0
- data/test/voruby/adql/1.0/adql-circle.sql +1 -0
- data/test/voruby/adql/1.0/adql-circle.xml +46 -0
- data/test/voruby/adql/1.0/adql-expr.sql +1 -0
- data/test/voruby/adql/1.0/adql-expr.xml +34 -0
- data/test/voruby/adql/1.0/adql-function.sql +1 -0
- data/test/voruby/adql/1.0/adql-function.xml +41 -0
- data/test/voruby/adql/1.0/adql-group.sql +1 -0
- data/test/voruby/adql/1.0/adql-group.xml +51 -0
- data/test/voruby/adql/1.0/adql-having.sql +1 -0
- data/test/voruby/adql/1.0/adql-having.xml +25 -0
- data/test/voruby/adql/1.0/adql-like.sql +1 -0
- data/test/voruby/adql/1.0/adql-like.xml +17 -0
- data/test/voruby/adql/1.0/adql-order.sql +1 -0
- data/test/voruby/adql/1.0/adql-order.xml +37 -0
- data/test/voruby/adql/1.0/adql-simple.sql +1 -0
- data/test/voruby/adql/1.0/adql-simple.xml +12 -0
- data/test/voruby/adql/1.0/adql-top.sql +1 -0
- data/test/voruby/adql/1.0/adql-top.xml +33 -0
- data/test/voruby/adql/1.0/test.rb +2220 -0
- data/test/voruby/misc/test.rb +32 -0
- data/test/voruby/resolver/sesame/test.rb +56 -0
- data/test/voruby/sky_query/test.rb +107 -0
- data/test/voruby/stc/1.10/coords_test.rb +3704 -0
- data/test/voruby/stc/1.10/region_test.rb +993 -0
- data/test/voruby/stc/1.10/stc-catalog-entry-location.xml +112 -0
- data/test/voruby/stc/1.10/stc-obs-data-location.xml +126 -0
- data/test/voruby/stc/1.10/stc-region-circle.xml +5 -0
- data/test/voruby/stc/1.10/stc-region-convex.xml +11 -0
- data/test/voruby/stc/1.10/stc-region-convexhull.xml +5 -0
- data/test/voruby/stc/1.10/stc-region-ellipse.xml +7 -0
- data/test/voruby/stc/1.10/stc-region-intersection.xml +25 -0
- data/test/voruby/stc/1.10/stc-region-negation.xml +7 -0
- data/test/voruby/stc/1.10/stc-region-polygon.xml +13 -0
- data/test/voruby/stc/1.10/stc-region-sector.xml +6 -0
- data/test/voruby/stc/1.10/stc-region-union.xml +25 -0
- data/test/voruby/stc/1.10/stc-resource-profile.xml +60 -0
- data/test/voruby/stc/1.10/stc-search-location.xml +54 -0
- data/test/voruby/stc/1.10/stc_test.rb +4626 -0
- data/test/voruby/stc/1.30/stc-catalog-entry-location.xml +210 -0
- data/test/voruby/stc/1.30/stc-obs-data-location-arecibo.xml +353 -0
- data/test/voruby/stc/1.30/stc-obs-data-location-fits.xml +250 -0
- data/test/voruby/stc/1.30/stc-obs-data-location-xlink.xml +63 -0
- data/test/voruby/stc/1.30/stc-obs-data-location.xml +216 -0
- data/test/voruby/stc/1.30/stc-resource-profile-unusual-ref-pos.xml +39 -0
- data/test/voruby/stc/1.30/stc-resource-profile.xml +129 -0
- data/test/voruby/stc/1.30/stc-search-location-arecibo.xml +86 -0
- data/test/voruby/stc/1.30/stc-search-location.xml +101 -0
- data/test/voruby/stc/1.30/test.rb +6274 -0
- data/test/voruby/ucd/test.rb +48 -0
- data/test/voruby/voevent/1.1/test.rb +812 -0
- data/test/{voevent/voevent_v1_1.xml → voruby/voevent/1.1/voevent.xml} +2 -2
- data/test/voruby/voregistry/0.3/test.rb +137 -0
- data/test/voruby/votable/1.0/test.rb +714 -0
- data/test/voruby/votable/1.0/votable.basic.xml +660 -0
- data/test/voruby/votable/1.0/votable.html +86 -0
- data/test/voruby/votable/1.0/votable.ns.xml +56 -0
- data/test/voruby/votable/1.1/test.rb +785 -0
- data/test/voruby/votable/1.1/votable.basic.xml +38 -0
- data/test/voruby/votable/1.1/votable.html +86 -0
- data/test/voruby/votable/1.1/votable.ns.xml +56 -0
- data/test/voruby/votable/test.rb +15 -0
- data/test/voruby/wesix/test.rb +268 -0
- data/test/voruby/wesix/testr.fits +28 -0
- metadata +234 -247
- data/REQUIREMENTS +0 -6
- data/lib/voruby/active_votable/loader.rb +0 -5
- data/lib/voruby/adql/adql.rb +0 -2787
- data/lib/voruby/adql/ext.rb +0 -14
- data/lib/voruby/adql/loader.rb +0 -6
- data/lib/voruby/adql/operations.rb +0 -54
- data/lib/voruby/adql/parser.rb +0 -160
- data/lib/voruby/adql/transforms.rb +0 -573
- data/lib/voruby/ext.rb +0 -17
- data/lib/voruby/loader.rb +0 -4
- data/lib/voruby/misc/propertyfile.rb +0 -36
- data/lib/voruby/plastic/applications.rb +0 -174
- data/lib/voruby/plastic/constants.rb +0 -30
- data/lib/voruby/plastic/loader.rb +0 -10
- data/lib/voruby/plastic/plastic.rb +0 -1
- data/lib/voruby/resources/conesearch/conesearch.rb +0 -9
- data/lib/voruby/resources/conesearch/conesearch_v0_2.rb +0 -55
- data/lib/voruby/resources/conesearch/conesearch_v0_3.rb +0 -50
- data/lib/voruby/resources/conesearch/conesearch_v1_0.rb +0 -72
- data/lib/voruby/resources/conesearch/loader.rb +0 -4
- data/lib/voruby/resources/loader.rb +0 -50
- data/lib/voruby/resources/nodes.rb +0 -190
- data/lib/voruby/resources/openskynode/loader.rb +0 -4
- data/lib/voruby/resources/openskynode/openskynode.rb +0 -9
- data/lib/voruby/resources/openskynode/openskynode_v0_1.rb +0 -54
- data/lib/voruby/resources/sia/loader.rb +0 -5
- data/lib/voruby/resources/sia/sia.rb +0 -9
- data/lib/voruby/resources/sia/sia_v0_6.rb +0 -90
- data/lib/voruby/resources/sia/sia_v0_7.rb +0 -89
- data/lib/voruby/resources/sia/sia_v1_0.rb +0 -122
- data/lib/voruby/resources/stsci.rb +0 -59
- data/lib/voruby/resources/vodataservice/coverage_v0_2.rb +0 -195
- data/lib/voruby/resources/vodataservice/coverage_v0_3.rb +0 -158
- data/lib/voruby/resources/vodataservice/loader.rb +0 -5
- data/lib/voruby/resources/vodataservice/vodataservice.rb +0 -9
- data/lib/voruby/resources/vodataservice/vodataservice_v0_4.rb +0 -189
- data/lib/voruby/resources/vodataservice/vodataservice_v0_5.rb +0 -163
- data/lib/voruby/resources/vodataservice/vodataservice_v1_0.rb +0 -221
- data/lib/voruby/resources/voregistry/loader.rb +0 -4
- data/lib/voruby/resources/voregistry/voregistry.rb +0 -9
- data/lib/voruby/resources/voregistry/voregistry_v0_2.rb +0 -40
- data/lib/voruby/resources/voregistry/voregistry_v0_3.rb +0 -30
- data/lib/voruby/resources/voregistry/voregistry_v1_0.rb +0 -86
- data/lib/voruby/resources/voresource/loader.rb +0 -17
- data/lib/voruby/resources/voresource/voresource.rb +0 -9
- data/lib/voruby/resources/voresource/voresource_v0_10.rb +0 -327
- data/lib/voruby/resources/voresource/voresource_v0_9.rb +0 -405
- data/lib/voruby/resources/voresource/voresource_v1_0.rb +0 -230
- data/lib/voruby/services/ext.rb +0 -11
- data/lib/voruby/services/gestalt/footprint.rb +0 -95
- data/lib/voruby/services/gestalt/wcs_fixer.rb +0 -105
- data/lib/voruby/services/gestalt/wesix.rb +0 -155
- data/lib/voruby/services/loader.rb +0 -7
- data/lib/voruby/services/registry/registry.rb +0 -53
- data/lib/voruby/services/resolver/resolver.rb +0 -35
- data/lib/voruby/services/schema/schema.rb +0 -644
- data/lib/voruby/sesame/loader.rb +0 -6
- data/lib/voruby/sesame/sesame_v1_0.rb +0 -64
- data/lib/voruby/simple/loader.rb +0 -6
- data/lib/voruby/simple/parameters.rb +0 -196
- data/lib/voruby/simple/sap.rb +0 -446
- data/lib/voruby/spacetime/loader.rb +0 -3
- data/lib/voruby/spacetime/spacetime.rb +0 -607
- data/lib/voruby/stc/coords_v1_20.rb +0 -900
- data/lib/voruby/stc/loader.rb +0 -55
- data/lib/voruby/stc/region_v1_20.rb +0 -274
- data/lib/voruby/stc/stc_v1_20.rb +0 -1196
- data/lib/voruby/util.rb +0 -27
- data/lib/voruby/voevent/loader.rb +0 -7
- data/lib/voruby/voevent/voevent_v1_0.rb +0 -213
- data/lib/voruby/voevent/voevent_v1_1.rb +0 -196
- data/lib/voruby/votables/chandra.rb +0 -373
- data/lib/voruby/votables/data.rb +0 -179
- data/lib/voruby/votables/galex.rb +0 -377
- data/lib/voruby/votables/int.rb +0 -354
- data/lib/voruby/votables/libxml_parser.rb +0 -411
- data/lib/voruby/votables/libxml_votable.rb +0 -67
- data/lib/voruby/votables/loader.rb +0 -10
- data/lib/voruby/votables/meta.rb +0 -763
- data/lib/voruby/votables/misc.rb +0 -51
- data/lib/voruby/votables/nsa.rb +0 -410
- data/lib/voruby/votables/rexml_parser.rb +0 -408
- data/lib/voruby/votables/rexml_votable.rb +0 -67
- data/lib/voruby/votables/sdss.rb +0 -356
- data/lib/voruby/votables/transforms.rb +0 -388
- data/lib/voruby/votables/tree.rb +0 -45
- data/lib/voruby/votables/types.rb +0 -391
- data/lib/voruby/votables/votable.rb +0 -687
- data/test/active_votable/database.yml +0 -6
- data/test/active_votable/test.vot +0 -168492
- data/test/active_votable/unittest.rb +0 -41
- data/test/adql/test1.adql +0 -49
- data/test/adql/test2.adql +0 -51
- data/test/adql/test3.adql +0 -81
- data/test/adql/test4.adql +0 -53
- data/test/adql/test5.adql +0 -55
- data/test/adql/test6.adql +0 -18
- data/test/adql/test7.adql +0 -48
- data/test/adql/unittest.rb +0 -1672
- data/test/plastic/test.rb +0 -44
- data/test/plastic/test.vot +0 -5385
- data/test/plastic/unittest.rb +0 -66
- data/test/resources/conesearch/conesearch_v0_3.xml +0 -31
- data/test/resources/conesearch/conesearch_v1_0.xml +0 -86
- data/test/resources/conesearch/unittest_v0_3.rb +0 -22
- data/test/resources/conesearch/unittest_v1_0.rb +0 -24
- data/test/resources/openskynode/open_sky_node_v0_1.xml +0 -32
- data/test/resources/openskynode/unittest_v0_1.rb +0 -31
- data/test/resources/sia/simple_image_access_v0_7.xml +0 -36
- data/test/resources/sia/simple_image_access_v1_0.xml +0 -122
- data/test/resources/sia/unittest_v0_7.rb +0 -24
- data/test/resources/sia/unittest_v1_0.rb +0 -29
- data/test/resources/stsci.xml +0 -336
- data/test/resources/unittest_stsci.rb +0 -25
- data/test/resources/vodataservice/catalog_service_resource_v1_0.xml +0 -128
- data/test/resources/vodataservice/data_collection_resource_v0_5.xml +0 -54
- data/test/resources/vodataservice/data_collection_resource_v1_0.xml +0 -117
- data/test/resources/vodataservice/data_service_resource_v1_0.xml +0 -115
- data/test/resources/vodataservice/sky_service_resource_v0_10.xml +0 -45
- data/test/resources/vodataservice/table_service_resource_v1_0.xml +0 -122
- data/test/resources/vodataservice/tabular_sky_service_resource_v0_10.xml +0 -60
- data/test/resources/vodataservice/unittest_v0_5.rb +0 -126
- data/test/resources/vodataservice/unittest_v1_0.rb +0 -151
- data/test/resources/voregistry/authority_resource_v0_3.xml +0 -20
- data/test/resources/voregistry/authority_resource_v1_0.xml +0 -82
- data/test/resources/voregistry/registry_service_v0_3.xml +0 -20
- data/test/resources/voregistry/registry_service_v1_0.xml +0 -107
- data/test/resources/voregistry/unittest_v0_3.rb +0 -31
- data/test/resources/voregistry/unittest_v1_0.rb +0 -34
- data/test/resources/voresource/organisation_resource_v1_0.xml +0 -90
- data/test/resources/voresource/resource_organisation_v0_10.xml +0 -22
- data/test/resources/voresource/resource_service_v0_10.xml +0 -19
- data/test/resources/voresource/resource_v0_10.xml +0 -19
- data/test/resources/voresource/resource_v1_0.xml +0 -79
- data/test/resources/voresource/service_resource_v1_0.xml +0 -91
- data/test/resources/voresource/unittest_v0_10.rb +0 -61
- data/test/resources/voresource/unittest_v0_9.rb +0 -4
- data/test/resources/voresource/unittest_v1_0.rb +0 -190
- data/test/services/gestalt/unittest.rb +0 -74
- data/test/services/registry/unittest.rb +0 -34
- data/test/services/resolver/unittest.rb +0 -38
- data/test/simple/unittest.rb +0 -46
- data/test/spacetime/unittest.rb +0 -39
- data/test/stc/catalog_entry_location_v1_20.xml +0 -112
- data/test/stc/obs_data_location_v1_20.xml +0 -108
- data/test/stc/search_location_v1_20.xml +0 -54
- data/test/stc/stc_resource_profile_v1_20.xml +0 -60
- data/test/stc/unittest_v1_20.rb +0 -620
- data/test/voevent/unittest_v1_0.rb +0 -79
- data/test/voevent/unittest_v1_1.rb +0 -70
- data/test/voevent/voevent_v1_0.xml +0 -96
- data/test/votables/test.vot +0 -366
- data/test/votables/unittest.rb +0 -54
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
|
3
|
+
require 'voruby/misc'
|
4
|
+
include VORuby::Misc
|
5
|
+
|
6
|
+
class ConnectionManagerTest < Test::Unit::TestCase
|
7
|
+
def setup
|
8
|
+
@num_iter = 0
|
9
|
+
|
10
|
+
@monitor = ConnectionMonitor.new('http://www.noao.edu/', 2)
|
11
|
+
@monitor.on_success = Proc.new { |pinger, monitor|
|
12
|
+
monitor.stop if @num_iter == 2
|
13
|
+
@num_iter += 1
|
14
|
+
}
|
15
|
+
@monitor.on_failure = Proc.new{ |pinger, monitor|
|
16
|
+
monitor.stop
|
17
|
+
raise "Connection to #{monitor.url} failed: #{pinger.exception}"
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_success
|
22
|
+
assert_nothing_raised { @monitor.start }
|
23
|
+
assert_equal 3, @num_iter
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_failure
|
27
|
+
@monitor.url = 'http://www.noao.edu/blah/'
|
28
|
+
assert_raise RuntimeError do
|
29
|
+
@monitor.start
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
|
3
|
+
require 'voruby/resolver/sesame'
|
4
|
+
include VORuby::Resolver
|
5
|
+
|
6
|
+
class SesameTest < Test::Unit::TestCase
|
7
|
+
def test_resolve
|
8
|
+
sesame = Sesame.resolve('m51', :all)
|
9
|
+
|
10
|
+
assert_equal 'http://cdsws.u-strasbg.fr/axis/services/Sesame', sesame.end_point
|
11
|
+
assert_equal false, sesame.check_availability
|
12
|
+
assert_equal 'm51', sesame.target
|
13
|
+
assert_equal 3, sesame.resolvers.size
|
14
|
+
|
15
|
+
resolver = sesame.resolvers.find { |r| r.name == 'Simbad' }
|
16
|
+
assert_equal 'Simbad', resolver.name
|
17
|
+
|
18
|
+
assert_equal 'Seyfert_2', resolver.otype
|
19
|
+
assert_equal '13:29:52.36 +47:11:40.8', resolver.jpos
|
20
|
+
assert_equal 202.4682083, resolver.jradeg
|
21
|
+
assert_equal 47.1946667, resolver.jdedeg
|
22
|
+
assert_equal '1999ApJS..125..409C', resolver.ref_pos
|
23
|
+
assert_equal 10800, resolver.err_ra_mas
|
24
|
+
assert_equal 10800, resolver.err_de_mas
|
25
|
+
assert_equal nil, resolver.z
|
26
|
+
assert_equal nil, resolver.errz
|
27
|
+
assert_equal nil, resolver.refz
|
28
|
+
assert_equal 600, resolver.vel
|
29
|
+
assert_equal nil, resolver.err_vel
|
30
|
+
assert_equal '2004A&A...422...39S', resolver.ref_vel
|
31
|
+
assert_equal 'Sc', resolver.mtype
|
32
|
+
assert_equal nil, resolver.sptype
|
33
|
+
assert_equal 'M 51', resolver.oname
|
34
|
+
|
35
|
+
assert_equal [202.4682083, 47.1946667], resolver.position
|
36
|
+
assert_equal ['13:29:52.36', '+47:11:40.8'], resolver.position(:sexigesimal)
|
37
|
+
|
38
|
+
assert_equal [
|
39
|
+
"M 51", "NGC 5194", "4C 47.36A", "APG 85A", "APG 85", "BD+47 2063",
|
40
|
+
"[DML87] 671", "GB1 1327+475", "[H92] 27", "IRAS F13277+4727",
|
41
|
+
"IRAS 13277+4727", "ISOSS J13299+4714", "KHG 1-C 5", "KPG 379a",
|
42
|
+
"LEDA 47404", "[LPS2002] 16", "[M98c] 132746.9+472716", "MCG+08-25-012",
|
43
|
+
"NAME WHIRLPOOL", "NAME QUESTION MARK GALAXY", "NAME WHIRLPOOL GALAXY",
|
44
|
+
"PLX 3084", "RX J1329.8+4711", "1RXS J132953.8+471143", "[SLK2004] 853",
|
45
|
+
"[T76] 85A", "TC 827", "UGC 8493", "[VDD93] 187A", "VV 403", "VV 1a",
|
46
|
+
"VV 1", "[VV2000c] J132952.4+471141", "[VV2003c] J132952.4+471141",
|
47
|
+
"[VV2006c] J132952.4+471141", "[VV98c] J132952.7+471143",
|
48
|
+
"XMMU J132952.9+471140", "Z 1327.8+4727", "Z 246 - 8"
|
49
|
+
], resolver.aliases
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_resolve_position
|
53
|
+
assert_equal [202.4682083, 47.1946667],
|
54
|
+
Sesame.resolve_position('m51')
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
|
3
|
+
require 'voruby/sky_query/sky_query'
|
4
|
+
include VORuby::SkyQuery
|
5
|
+
|
6
|
+
class SkyQueryTest < ::Test::Unit::TestCase
|
7
|
+
def setup
|
8
|
+
@portal = Service.new
|
9
|
+
@adql = 'SELECT o.objId, o.ra, o.dec, o.r, o.type, t.objId, t.ra, t.dec ' +
|
10
|
+
'FROM SDSS:PhotoPrimary o, TWOMASS:PhotoPrimary t ' +
|
11
|
+
'WHERE XMATCH(o, t) < 3.5 AND Region(\'CIRCLE J2000 181.3 -0.76 6.5\') AND o.type = 3'
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_sky_nodes
|
15
|
+
vot = nil
|
16
|
+
|
17
|
+
assert_nothing_raised {
|
18
|
+
vot = @portal.sky_nodes
|
19
|
+
}
|
20
|
+
|
21
|
+
assert_kind_of VORuby::VOTable::V1_1::VOTable, vot
|
22
|
+
|
23
|
+
assert vot.resources.first.tables.first.fields.size > 0
|
24
|
+
assert vot.resources.first.tables.first.data.format.trs.size > 0
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_query
|
28
|
+
vot = nil
|
29
|
+
|
30
|
+
assert_nothing_raised {
|
31
|
+
vot = @portal.query(@adql)
|
32
|
+
}
|
33
|
+
|
34
|
+
assert_kind_of VORuby::VOTable::V1_1::VOTable, vot
|
35
|
+
|
36
|
+
assert_equal 9, vot.resources.first.tables.first.fields.size
|
37
|
+
assert vot.resources.first.tables.first.data.format.trs.size > 0
|
38
|
+
|
39
|
+
assert_nothing_raised {
|
40
|
+
vot = Service.query(@adql)
|
41
|
+
}
|
42
|
+
|
43
|
+
assert_kind_of VORuby::VOTable::V1_1::VOTable, vot
|
44
|
+
|
45
|
+
assert_equal 9, vot.resources.first.tables.first.fields.size
|
46
|
+
assert vot.resources.first.tables.first.data.format.trs.size > 0
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_get_tables
|
50
|
+
tables = nil
|
51
|
+
|
52
|
+
assert_nothing_raised {
|
53
|
+
tables = @portal.tables('SDSS')
|
54
|
+
}
|
55
|
+
|
56
|
+
assert tables.size > 0
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_get_table_info
|
60
|
+
tbl_info = nil
|
61
|
+
|
62
|
+
assert_nothing_raised {
|
63
|
+
tbl_info = @portal.table_info('SDSS', 'PhotoPrimary')
|
64
|
+
}
|
65
|
+
|
66
|
+
assert_equal 'These objects are the primary survey objects.', tbl_info.description
|
67
|
+
assert_equal 'PhotoPrimary', tbl_info.name
|
68
|
+
assert_equal -1, tbl_info.rows
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_get_columns
|
72
|
+
columns = nil
|
73
|
+
|
74
|
+
assert_nothing_raised {
|
75
|
+
columns = @portal.columns('SDSS', 'PhotoPrimary')
|
76
|
+
}
|
77
|
+
|
78
|
+
assert columns.size > 0
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_get_column_info
|
82
|
+
col_info = nil
|
83
|
+
|
84
|
+
assert_nothing_raised {
|
85
|
+
col_info = @portal.column_info('SDSS', 'PhotoPrimary', 'modelMag_i')
|
86
|
+
}
|
87
|
+
|
88
|
+
assert_equal 'modelMag_i', col_info.name
|
89
|
+
assert_equal 'mag', col_info.unit
|
90
|
+
assert_equal 'better of DeV/Exp magnitude fit', col_info.description
|
91
|
+
assert_equal 'PHOT_SDSS_I FIT_PARAM', col_info.ucd
|
92
|
+
|
93
|
+
assert_raises SOAP::FaultError do
|
94
|
+
@portal.column_info('SDSS', 'PhotoPrimary', 'blah')
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_get_meta_columns
|
99
|
+
columns = nil
|
100
|
+
|
101
|
+
assert_nothing_raised {
|
102
|
+
columns = @portal.meta_columns('SDSS', 'PhotoPrimary')
|
103
|
+
}
|
104
|
+
|
105
|
+
assert columns.size > 0
|
106
|
+
end
|
107
|
+
end
|
@@ -0,0 +1,3704 @@
|
|
1
|
+
require 'voruby/stc/1.10/coords'
|
2
|
+
require 'test/unit'
|
3
|
+
|
4
|
+
include VORuby::STC::V1_10::Coords
|
5
|
+
|
6
|
+
module VORuby
|
7
|
+
module STC
|
8
|
+
module V1_10
|
9
|
+
module Coords
|
10
|
+
module Test
|
11
|
+
|
12
|
+
class TimeUnitTest < ::Test::Unit::TestCase
|
13
|
+
def test_construction
|
14
|
+
assert_nothing_raised do
|
15
|
+
TimeUnit.new('h')
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_accessors
|
20
|
+
unit = TimeUnit.new('d')
|
21
|
+
assert_equal 'd', unit.value
|
22
|
+
|
23
|
+
unit.value = 'cy'
|
24
|
+
assert_equal 'cy', unit.value
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_enumeration
|
28
|
+
assert_raise ArgumentError do
|
29
|
+
TimeUnit.new('z')
|
30
|
+
end
|
31
|
+
|
32
|
+
unit = TimeUnit.new()
|
33
|
+
assert_raise ArgumentError do
|
34
|
+
unit.value = 'blah'
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_relationships
|
39
|
+
assert_kind_of Unit, TimeUnit.new()
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
class PosUnitTest < ::Test::Unit::TestCase
|
44
|
+
def test_construction
|
45
|
+
assert_nothing_raised do
|
46
|
+
PosUnit.new('rad')
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_accessors
|
51
|
+
unit = PosUnit.new('km')
|
52
|
+
assert_equal 'km', unit.value
|
53
|
+
|
54
|
+
unit.value = 'Mpc'
|
55
|
+
assert_equal 'Mpc', unit.value
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_enumeration
|
59
|
+
assert_raise ArgumentError do
|
60
|
+
PosUnit.new('in')
|
61
|
+
end
|
62
|
+
|
63
|
+
unit = PosUnit.new()
|
64
|
+
assert_raise ArgumentError do
|
65
|
+
unit.value = 'blah'
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_relationships
|
70
|
+
assert_kind_of Unit, PosUnit.new()
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
class VelTimeUnitTest < ::Test::Unit::TestCase
|
75
|
+
def test_construction
|
76
|
+
assert_nothing_raised do
|
77
|
+
VelTimeUnit.new('d')
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_accessors
|
82
|
+
unit = VelTimeUnit.new('s')
|
83
|
+
assert_equal 's', unit.value
|
84
|
+
|
85
|
+
unit.value = 'a'
|
86
|
+
assert_equal 'a', unit.value
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_enumeration
|
90
|
+
assert_raise ArgumentError do
|
91
|
+
VelTimeUnit.new('')
|
92
|
+
end
|
93
|
+
|
94
|
+
unit = VelTimeUnit.new('a')
|
95
|
+
assert_raise ArgumentError do
|
96
|
+
unit.value = 'blah'
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def test_relationships
|
101
|
+
assert_kind_of Unit, VelTimeUnit.new('a')
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
class SpectralUnitTest < ::Test::Unit::TestCase
|
106
|
+
def test_construction
|
107
|
+
assert_nothing_raised do
|
108
|
+
SpectralUnit.new('A')
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
def test_accessors
|
113
|
+
unit = SpectralUnit.new('m')
|
114
|
+
assert_equal 'm', unit.value
|
115
|
+
|
116
|
+
unit.value = 'Hz'
|
117
|
+
assert_equal 'Hz', unit.value
|
118
|
+
end
|
119
|
+
|
120
|
+
def test_enumeration
|
121
|
+
assert_raise ArgumentError do
|
122
|
+
SpectralUnit.new('')
|
123
|
+
end
|
124
|
+
|
125
|
+
unit = SpectralUnit.new('micron')
|
126
|
+
assert_raise ArgumentError do
|
127
|
+
unit.value = 'blah'
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
def test_relationships
|
132
|
+
assert_kind_of Unit, SpectralUnit.new('m')
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
class TimeScaleTest < ::Test::Unit::TestCase
|
137
|
+
def test_construction
|
138
|
+
assert_nothing_raised do
|
139
|
+
TimeScale.new('TAI')
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
def test_accessors
|
144
|
+
ts = TimeScale.new('UTC')
|
145
|
+
assert_equal 'UTC', ts.value
|
146
|
+
|
147
|
+
ts.value = 'ET'
|
148
|
+
assert_equal 'ET', ts.value
|
149
|
+
end
|
150
|
+
|
151
|
+
def test_enumeration
|
152
|
+
assert_raise ArgumentError do
|
153
|
+
TimeScale.new('')
|
154
|
+
end
|
155
|
+
|
156
|
+
ts = TimeScale.new('LST')
|
157
|
+
assert_raise ArgumentError do
|
158
|
+
ts.value = 'blah'
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
class ISOTimeTest < ::Test::Unit::TestCase
|
164
|
+
def test_construction
|
165
|
+
assert_nothing_raised do
|
166
|
+
ISOTime.new(DateTime.now)
|
167
|
+
ISOTime.new(DateTime.now.to_s)
|
168
|
+
end
|
169
|
+
|
170
|
+
assert_raise ArgumentError do
|
171
|
+
ISOTime.new('blah')
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
def test_accessors
|
176
|
+
time = ISOTime.new('2007-02-26T09:20:23')
|
177
|
+
assert_equal DateTime.parse('2007-02-26T09:20:23'), time.value
|
178
|
+
|
179
|
+
assert_raise ArgumentError do
|
180
|
+
time.value = 'blah'
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
def test_to_s
|
185
|
+
time = ISOTime.new('2007-02-26T09:20:23')
|
186
|
+
assert_equal '2007-02-26T09:20:23.000', time.to_s
|
187
|
+
end
|
188
|
+
|
189
|
+
def test_relationships
|
190
|
+
assert_kind_of AbsoluteTime, ISOTime.new('2007-02-26T09:20:23')
|
191
|
+
end
|
192
|
+
|
193
|
+
def test_xml
|
194
|
+
date = '2007-02-26T09:20:23'
|
195
|
+
|
196
|
+
t1 = ISOTime.new(date)
|
197
|
+
assert_equal "<crd:ISOTime xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>#{date}.000</crd:ISOTime>", t1.to_xml.to_s
|
198
|
+
|
199
|
+
t2 = ISOTime.from_xml("<crd:ISOTime xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>#{date}.000</crd:ISOTime>")
|
200
|
+
assert_equal t1, t2
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
class ISOTimeRefTest < ::Test::Unit::TestCase
|
205
|
+
def test_construction
|
206
|
+
assert_nothing_raised do
|
207
|
+
ISOTimeRef.new('ref1')
|
208
|
+
end
|
209
|
+
|
210
|
+
assert_raise ArgumentError do
|
211
|
+
ISOTimeRef.new(' ')
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
215
|
+
def test_accessors
|
216
|
+
time = ISOTimeRef.new('ref2')
|
217
|
+
assert_equal 'ref2', time.value
|
218
|
+
end
|
219
|
+
|
220
|
+
def test_relationships
|
221
|
+
assert_kind_of AbsoluteTime, ISOTimeRef.new('ref3')
|
222
|
+
end
|
223
|
+
|
224
|
+
def test_xml
|
225
|
+
id = 'ref1'
|
226
|
+
|
227
|
+
ref1 = ISOTimeRef.new(id)
|
228
|
+
assert_equal "<crd:ISOTimeRef xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>#{id}</crd:ISOTimeRef>", ref1.to_xml.to_s
|
229
|
+
|
230
|
+
ref2 = ISOTimeRef.from_xml("<crd:ISOTimeRef xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>#{id}</crd:ISOTimeRef>")
|
231
|
+
assert_equal ref1, ref2
|
232
|
+
end
|
233
|
+
end
|
234
|
+
|
235
|
+
class JDTimeTest < ::Test::Unit::TestCase
|
236
|
+
def test_construction
|
237
|
+
assert_nothing_raised do
|
238
|
+
JDTime.new('1234.5')
|
239
|
+
JDTime.new(1234.5)
|
240
|
+
end
|
241
|
+
|
242
|
+
assert_raise ArgumentError do
|
243
|
+
JDTime.new('blah')
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
def test_accessors
|
248
|
+
time = JDTime.new('1234.5')
|
249
|
+
assert_equal 1234.5, time.value
|
250
|
+
|
251
|
+
time = JDTime.new(1234.5)
|
252
|
+
assert_equal 1234.5, time.value
|
253
|
+
end
|
254
|
+
|
255
|
+
def test_relationships
|
256
|
+
assert_kind_of AbsoluteTime, JDTime.new(1234.5)
|
257
|
+
end
|
258
|
+
|
259
|
+
def test_xml
|
260
|
+
date = 2454466.5
|
261
|
+
|
262
|
+
t1 = JDTime.new(date)
|
263
|
+
assert_equal "<crd:JDTime xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>#{date}</crd:JDTime>", t1.to_xml.to_s
|
264
|
+
|
265
|
+
t2 = JDTime.from_xml("<crd:JDTime xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>#{date}</crd:JDTime>")
|
266
|
+
assert_equal t1, t2
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
270
|
+
class JDTimeRefTest < ::Test::Unit::TestCase
|
271
|
+
def test_construction
|
272
|
+
assert_nothing_raised do
|
273
|
+
JDTimeRef.new('ref1')
|
274
|
+
end
|
275
|
+
|
276
|
+
assert_raise ArgumentError do
|
277
|
+
JDTimeRef.new(' ')
|
278
|
+
end
|
279
|
+
end
|
280
|
+
|
281
|
+
def test_accessors
|
282
|
+
time = JDTimeRef.new('ref2')
|
283
|
+
assert_equal 'ref2', time.value
|
284
|
+
end
|
285
|
+
|
286
|
+
def test_relationships
|
287
|
+
assert_kind_of AbsoluteTime, JDTimeRef.new('ref3')
|
288
|
+
end
|
289
|
+
|
290
|
+
def test_xml
|
291
|
+
id = 'ref1'
|
292
|
+
|
293
|
+
ref1 = JDTimeRef.new(id)
|
294
|
+
assert_equal "<crd:JDTimeRef xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>#{id}</crd:JDTimeRef>", ref1.to_xml.to_s
|
295
|
+
|
296
|
+
ref2 = JDTimeRef.from_xml("<crd:JDTimeRef xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>#{id}</crd:JDTimeRef>")
|
297
|
+
assert_equal ref1, ref2
|
298
|
+
end
|
299
|
+
end
|
300
|
+
|
301
|
+
class MJDTimeTest < ::Test::Unit::TestCase
|
302
|
+
def test_construction
|
303
|
+
assert_nothing_raised do
|
304
|
+
MJDTime.new('1234.5')
|
305
|
+
MJDTime.new(1234.5)
|
306
|
+
end
|
307
|
+
|
308
|
+
assert_raise ArgumentError do
|
309
|
+
MJDTime.new('blah')
|
310
|
+
end
|
311
|
+
end
|
312
|
+
|
313
|
+
def test_accessors
|
314
|
+
time = MJDTime.new('1234.5')
|
315
|
+
assert_equal 1234.5, time.value
|
316
|
+
|
317
|
+
time = MJDTime.new(1234.5)
|
318
|
+
assert_equal 1234.5, time.value
|
319
|
+
end
|
320
|
+
|
321
|
+
def test_relationships
|
322
|
+
assert_kind_of AbsoluteTime, MJDTime.new(1234.5)
|
323
|
+
end
|
324
|
+
|
325
|
+
def test_xml
|
326
|
+
date = 2454466.5
|
327
|
+
|
328
|
+
t1 = MJDTime.new(date)
|
329
|
+
assert_equal "<crd:MJDTime xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>#{date}</crd:MJDTime>", t1.to_xml.to_s
|
330
|
+
|
331
|
+
t2 = MJDTime.from_xml("<crd:MJDTime xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>#{date}</crd:MJDTime>")
|
332
|
+
assert_equal t1, t2
|
333
|
+
end
|
334
|
+
end
|
335
|
+
|
336
|
+
class MJDTimeRefTest < ::Test::Unit::TestCase
|
337
|
+
def test_construction
|
338
|
+
assert_nothing_raised do
|
339
|
+
MJDTimeRef.new('ref1')
|
340
|
+
end
|
341
|
+
|
342
|
+
assert_raise ArgumentError do
|
343
|
+
MJDTimeRef.new(' ')
|
344
|
+
end
|
345
|
+
end
|
346
|
+
|
347
|
+
def test_accessors
|
348
|
+
time = MJDTimeRef.new('ref2')
|
349
|
+
assert_equal 'ref2', time.value
|
350
|
+
end
|
351
|
+
|
352
|
+
def test_relationships
|
353
|
+
assert_kind_of AbsoluteTime, MJDTimeRef.new('ref3')
|
354
|
+
end
|
355
|
+
|
356
|
+
def test_xml
|
357
|
+
id = 'ref1'
|
358
|
+
|
359
|
+
ref1 = MJDTimeRef.new(id)
|
360
|
+
assert_equal "<crd:MJDTimeRef xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>#{id}</crd:MJDTimeRef>", ref1.to_xml.to_s
|
361
|
+
|
362
|
+
ref2 = MJDTimeRef.from_xml("<crd:MJDTimeRef xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>#{id}</crd:MJDTimeRef>")
|
363
|
+
assert_equal ref1, ref2
|
364
|
+
end
|
365
|
+
end
|
366
|
+
|
367
|
+
class TimeOriginTest < ::Test::Unit::TestCase
|
368
|
+
def test_construction
|
369
|
+
assert_nothing_raised do
|
370
|
+
TimeOrigin.new
|
371
|
+
end
|
372
|
+
|
373
|
+
assert_raise ArgumentError do
|
374
|
+
TimeOrigin.new('blah')
|
375
|
+
end
|
376
|
+
end
|
377
|
+
|
378
|
+
def test_accessors
|
379
|
+
to = TimeOrigin.new
|
380
|
+
assert_equal 'RELOCATABLE', to.value
|
381
|
+
|
382
|
+
to = TimeOrigin.new('RELOCATABLE')
|
383
|
+
assert_equal 'RELOCATABLE', to.value
|
384
|
+
end
|
385
|
+
|
386
|
+
def test_relationships
|
387
|
+
assert_kind_of AbsoluteTime, TimeOrigin.new
|
388
|
+
end
|
389
|
+
|
390
|
+
def test_xml
|
391
|
+
ref1 = TimeOrigin.new('RELOCATABLE')
|
392
|
+
assert_equal "<crd:TimeOrigin xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>RELOCATABLE</crd:TimeOrigin>", ref1.to_xml.to_s
|
393
|
+
|
394
|
+
ref2 = TimeOrigin.from_xml("<crd:TimeOrigin xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>RELOCATABLE</crd:TimeOrigin>")
|
395
|
+
assert_equal ref1, ref2
|
396
|
+
end
|
397
|
+
end
|
398
|
+
|
399
|
+
class TimeOffsetTest < ::Test::Unit::TestCase
|
400
|
+
def test_construction
|
401
|
+
assert_nothing_raised do
|
402
|
+
TimeOffset.new('1234.5')
|
403
|
+
TimeOffset.new(1234.5)
|
404
|
+
TimeOffset.new(1234.5, 'h')
|
405
|
+
TimeOffset.new(1234.5, TimeUnit.new('h'))
|
406
|
+
end
|
407
|
+
|
408
|
+
assert_raise ArgumentError do
|
409
|
+
TimeOffset.new('blah')
|
410
|
+
end
|
411
|
+
assert_raise ArgumentError do
|
412
|
+
TimeOffset.new(1234.6, 'blah')
|
413
|
+
end
|
414
|
+
end
|
415
|
+
|
416
|
+
def test_accessors
|
417
|
+
to = TimeOffset.new(1234.5, 'h')
|
418
|
+
assert_equal 1234.5, to.offset
|
419
|
+
assert_equal TimeUnit.new('h'), to.unit
|
420
|
+
|
421
|
+
to.offset = 3456
|
422
|
+
assert_equal 3456, to.offset
|
423
|
+
|
424
|
+
to.unit = 'yr'
|
425
|
+
assert_equal TimeUnit.new('yr'), to.unit
|
426
|
+
end
|
427
|
+
|
428
|
+
def test_relationships
|
429
|
+
assert_kind_of RelativeTime, TimeOffset.new(1234.5)
|
430
|
+
end
|
431
|
+
|
432
|
+
def test_to_s
|
433
|
+
to = TimeOffset.new(1234.5, 'yr')
|
434
|
+
assert_equal '1234.5 yr', to.to_s
|
435
|
+
end
|
436
|
+
|
437
|
+
def test_xml
|
438
|
+
o1 = TimeOffset.new(1234.5, TimeUnit.new('h'))
|
439
|
+
assert_equal "<crd:TimeOffset crd:unit='h' xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1234.5</crd:TimeOffset>", o1.to_xml.to_s
|
440
|
+
|
441
|
+
o2 = TimeOffset.from_xml("<crd:TimeOffset crd:unit='h' xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1234.5</crd:TimeOffset>")
|
442
|
+
assert_equal o1, o2
|
443
|
+
end
|
444
|
+
end
|
445
|
+
|
446
|
+
class TimeOffsetRefTest < ::Test::Unit::TestCase
|
447
|
+
def test_construction
|
448
|
+
assert_nothing_raised do
|
449
|
+
TimeOffsetRef.new('ref1')
|
450
|
+
TimeOffsetRef.new('ref1', 'h')
|
451
|
+
TimeOffsetRef.new('ref1', TimeUnit.new('h'))
|
452
|
+
end
|
453
|
+
|
454
|
+
assert_raise ArgumentError do
|
455
|
+
TimeOffsetRef.new(' ')
|
456
|
+
end
|
457
|
+
assert_raise ArgumentError do
|
458
|
+
TimeOffsetRef.new('ref1', 'blah')
|
459
|
+
end
|
460
|
+
end
|
461
|
+
|
462
|
+
def test_accessors
|
463
|
+
to = TimeOffsetRef.new('ref2', 'yr')
|
464
|
+
assert_equal 'ref2', to.value
|
465
|
+
assert_equal TimeUnit.new('yr'), to.unit
|
466
|
+
|
467
|
+
to.value = 'ref3'
|
468
|
+
assert_equal 'ref3', to.value
|
469
|
+
|
470
|
+
to.unit = 's'
|
471
|
+
assert_equal TimeUnit.new('s'), to.unit
|
472
|
+
end
|
473
|
+
|
474
|
+
def test_relationships
|
475
|
+
assert_kind_of RelativeTime, TimeOffsetRef.new('ref3')
|
476
|
+
end
|
477
|
+
|
478
|
+
def test_to_s
|
479
|
+
to = TimeOffsetRef.new('ref2', 'yr')
|
480
|
+
assert_equal 'ref2 yr', to.to_s
|
481
|
+
end
|
482
|
+
|
483
|
+
def test_xml
|
484
|
+
r1 = TimeOffsetRef.new('ref1', 'h')
|
485
|
+
assert_equal "<crd:TimeOffsetRef crd:unit='h' xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:TimeOffsetRef>", r1.to_xml.to_s
|
486
|
+
|
487
|
+
r2 = TimeOffsetRef.from_xml("<crd:TimeOffsetRef crd:unit='h' xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:TimeOffsetRef>")
|
488
|
+
assert_equal r1, r2
|
489
|
+
end
|
490
|
+
end
|
491
|
+
|
492
|
+
class AstronTimeTest < ::Test::Unit::TestCase
|
493
|
+
def test_construction
|
494
|
+
assert_nothing_raised do
|
495
|
+
AstronTime.new('UTC', ISOTime.new(DateTime.now))
|
496
|
+
AstronTime.new(TimeScale.new('UTC'), ISOTime.new(DateTime.now))
|
497
|
+
AstronTime.new(TimeScale.new('UTC'), ISOTime.new(DateTime.now), TimeOffset.new(123, 's'))
|
498
|
+
end
|
499
|
+
|
500
|
+
assert_raise TypeError do
|
501
|
+
AstronTime.new('UTC', nil)
|
502
|
+
end
|
503
|
+
assert_raise TypeError do
|
504
|
+
AstronTime.new('UTC', TimeOffset.new(1234, 's'))
|
505
|
+
end
|
506
|
+
assert_raise TypeError do
|
507
|
+
AstronTime.new('UTC', ISOTime.new(DateTime.now), ISOTime.new(DateTime.now))
|
508
|
+
end
|
509
|
+
end
|
510
|
+
|
511
|
+
def test_accessors
|
512
|
+
now = DateTime.now
|
513
|
+
time = AstronTime.new(TimeScale.new('UTC'), ISOTime.new(now), TimeOffset.new(123, 's'))
|
514
|
+
assert_equal TimeScale.new('UTC'), time.timescale
|
515
|
+
assert_equal ISOTime.new(now), time.absolute_time
|
516
|
+
assert_equal TimeOffset.new(123, 's'), time.relative_time
|
517
|
+
|
518
|
+
time.timescale = 'ET'
|
519
|
+
assert_equal TimeScale.new('ET'), time.timescale
|
520
|
+
|
521
|
+
time.absolute_time = JDTime.new(1234.5)
|
522
|
+
assert_equal JDTime.new(1234.5), time.absolute_time
|
523
|
+
|
524
|
+
time.relative_time = TimeOffset.new(1234.5, 'h')
|
525
|
+
assert_equal TimeOffset.new(1234.5, 'h'), time.relative_time
|
526
|
+
end
|
527
|
+
|
528
|
+
def test_xml
|
529
|
+
t1 = AstronTime.new(TimeScale.new('UTC'), ISOTime.new(DateTime.parse('2007-01-01')), TimeOffset.new(123, 's'))
|
530
|
+
|
531
|
+
t2 = AstronTime.from_xml(t1.to_xml)
|
532
|
+
assert_equal t1, t2
|
533
|
+
end
|
534
|
+
end
|
535
|
+
|
536
|
+
class DoubleArrayTest < ::Test::Unit::TestCase
|
537
|
+
def test_construction
|
538
|
+
assert_nothing_raised do
|
539
|
+
DoubleArray.new([1.0, 2.0, 3.0])
|
540
|
+
end
|
541
|
+
|
542
|
+
assert_raise TypeError do
|
543
|
+
DoubleArray.new([1.0, 'blah', 2.0])
|
544
|
+
end
|
545
|
+
end
|
546
|
+
|
547
|
+
def test_assignment
|
548
|
+
da = DoubleArray.new([1.0, 2.0, 3.0])
|
549
|
+
|
550
|
+
assert_raises TypeError do
|
551
|
+
da[1] = 'blah'
|
552
|
+
end
|
553
|
+
assert_raises TypeError do
|
554
|
+
da << 'blah'
|
555
|
+
end
|
556
|
+
assert_raises TypeError do
|
557
|
+
da.replace([4.5, 2.3, 'blah'])
|
558
|
+
end
|
559
|
+
assert_raises TypeError do
|
560
|
+
da.insert(2, 3.4, 'blah')
|
561
|
+
end
|
562
|
+
end
|
563
|
+
|
564
|
+
def test_relationships
|
565
|
+
assert_kind_of Array, DoubleArray.new([1.0, 2.0, 3.0])
|
566
|
+
end
|
567
|
+
end
|
568
|
+
|
569
|
+
class Double2Test < ::Test::Unit::TestCase
|
570
|
+
def test_construction
|
571
|
+
assert_nothing_raised do
|
572
|
+
Double2.new([3.2, 1.1])
|
573
|
+
end
|
574
|
+
|
575
|
+
assert_raises RuntimeError do
|
576
|
+
Double2.new([3.2])
|
577
|
+
end
|
578
|
+
assert_raises RuntimeError do
|
579
|
+
Double2.new([3.2, 2.5, 5.1])
|
580
|
+
end
|
581
|
+
assert_raises TypeError do
|
582
|
+
Double2.new([3.2, 'blah'])
|
583
|
+
end
|
584
|
+
end
|
585
|
+
|
586
|
+
def test_assignment
|
587
|
+
d2 = Double2.new([1.1, 2.2])
|
588
|
+
|
589
|
+
assert_raises TypeError do
|
590
|
+
d2[1] = 'blah'
|
591
|
+
end
|
592
|
+
assert_raises RuntimeError do
|
593
|
+
d2 << 1.5
|
594
|
+
end
|
595
|
+
assert_raises RuntimeError do
|
596
|
+
d2.clear
|
597
|
+
end
|
598
|
+
end
|
599
|
+
|
600
|
+
def test_relationships
|
601
|
+
assert_kind_of DoubleArray, Double2.new([1.1, 2.2])
|
602
|
+
end
|
603
|
+
end
|
604
|
+
|
605
|
+
class ValueTest < ::Test::Unit::TestCase
|
606
|
+
def test_construction
|
607
|
+
assert_nothing_raised do
|
608
|
+
Value.new(1.2)
|
609
|
+
end
|
610
|
+
|
611
|
+
assert_raises ArgumentError do
|
612
|
+
Value.new('blah')
|
613
|
+
end
|
614
|
+
end
|
615
|
+
|
616
|
+
def test_accessors
|
617
|
+
value = Value.new(1.2)
|
618
|
+
assert_equal 1.2, value.value
|
619
|
+
|
620
|
+
value.value = 3.4
|
621
|
+
assert_equal 3.4, value.value
|
622
|
+
end
|
623
|
+
|
624
|
+
def test_relationships
|
625
|
+
assert_kind_of CValue, Value.new(1.2)
|
626
|
+
end
|
627
|
+
|
628
|
+
def test_xml
|
629
|
+
v1 = Value.new(1.2)
|
630
|
+
assert_equal "<crd:Value xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.2</crd:Value>", v1.to_xml.to_s
|
631
|
+
|
632
|
+
v2 = Value.from_xml("<crd:Value xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.2</crd:Value>")
|
633
|
+
assert_equal v1, v2
|
634
|
+
end
|
635
|
+
end
|
636
|
+
|
637
|
+
class ValueRefTest < ::Test::Unit::TestCase
|
638
|
+
def test_construction
|
639
|
+
assert_nothing_raised do
|
640
|
+
ValueRef.new('ref1')
|
641
|
+
end
|
642
|
+
|
643
|
+
assert_raises ArgumentError do
|
644
|
+
ValueRef.new(' ')
|
645
|
+
end
|
646
|
+
end
|
647
|
+
|
648
|
+
def test_accessors
|
649
|
+
ref = ValueRef.new('ref1')
|
650
|
+
assert_equal 'ref1', ref.value
|
651
|
+
|
652
|
+
ref.value = 'ref2'
|
653
|
+
assert_equal 'ref2', ref.value
|
654
|
+
end
|
655
|
+
|
656
|
+
def test_relationships
|
657
|
+
assert_kind_of CValue, ValueRef.new('ref1')
|
658
|
+
end
|
659
|
+
|
660
|
+
def test_xml
|
661
|
+
r1 = ValueRef.new('ref1')
|
662
|
+
assert_equal "<crd:ValueRef xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:ValueRef>", r1.to_xml.to_s
|
663
|
+
|
664
|
+
r2 = ValueRef.from_xml("<crd:ValueRef xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:ValueRef>")
|
665
|
+
assert_equal r1, r2
|
666
|
+
end
|
667
|
+
end
|
668
|
+
|
669
|
+
class ErrorTest < ::Test::Unit::TestCase
|
670
|
+
def test_construction
|
671
|
+
assert_nothing_raised do
|
672
|
+
Error.new(1.2)
|
673
|
+
end
|
674
|
+
|
675
|
+
assert_raises ArgumentError do
|
676
|
+
Error.new('blah')
|
677
|
+
end
|
678
|
+
end
|
679
|
+
|
680
|
+
def test_accessors
|
681
|
+
err = Error.new(1.2)
|
682
|
+
assert_equal 1.2, err.value
|
683
|
+
|
684
|
+
err.value = 3.4
|
685
|
+
assert_equal 3.4, err.value
|
686
|
+
end
|
687
|
+
|
688
|
+
def test_relationships
|
689
|
+
assert_kind_of CError, Error.new(1.2)
|
690
|
+
end
|
691
|
+
|
692
|
+
def test_xml
|
693
|
+
e1 = Error.new(1.2)
|
694
|
+
assert_equal "<crd:Error xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.2</crd:Error>", e1.to_xml.to_s
|
695
|
+
|
696
|
+
e2 = Error.from_xml("<crd:Error xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.2</crd:Error>")
|
697
|
+
assert_equal e1, e2
|
698
|
+
end
|
699
|
+
end
|
700
|
+
|
701
|
+
class ErrorRefTest < ::Test::Unit::TestCase
|
702
|
+
def test_construction
|
703
|
+
assert_nothing_raised do
|
704
|
+
ErrorRef.new('ref1')
|
705
|
+
end
|
706
|
+
|
707
|
+
assert_raises ArgumentError do
|
708
|
+
ErrorRef.new(' ')
|
709
|
+
end
|
710
|
+
end
|
711
|
+
|
712
|
+
def test_accessors
|
713
|
+
ref = ErrorRef.new('ref1')
|
714
|
+
assert_equal 'ref1', ref.value
|
715
|
+
|
716
|
+
ref.value = 'ref2'
|
717
|
+
assert_equal 'ref2', ref.value
|
718
|
+
end
|
719
|
+
|
720
|
+
def test_relationships
|
721
|
+
assert_kind_of CError, ErrorRef.new('ref1')
|
722
|
+
end
|
723
|
+
|
724
|
+
def test_xml
|
725
|
+
r1 = ErrorRef.new('ref1')
|
726
|
+
assert_equal "<crd:ErrorRef xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:ErrorRef>", r1.to_xml.to_s
|
727
|
+
|
728
|
+
r2 = ErrorRef.from_xml("<crd:ErrorRef xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:ErrorRef>")
|
729
|
+
assert_equal r1, r2
|
730
|
+
end
|
731
|
+
end
|
732
|
+
|
733
|
+
class ResolutionTest < ::Test::Unit::TestCase
|
734
|
+
def test_construction
|
735
|
+
assert_nothing_raised do
|
736
|
+
Resolution.new(1.2)
|
737
|
+
end
|
738
|
+
|
739
|
+
assert_raises ArgumentError do
|
740
|
+
Resolution.new('blah')
|
741
|
+
end
|
742
|
+
end
|
743
|
+
|
744
|
+
def test_accessors
|
745
|
+
res = Resolution.new(1.2)
|
746
|
+
assert_equal 1.2, res.value
|
747
|
+
|
748
|
+
res.value = 3.4
|
749
|
+
assert_equal 3.4, res.value
|
750
|
+
end
|
751
|
+
|
752
|
+
def test_relationships
|
753
|
+
assert_kind_of CResolution, Resolution.new(1.2)
|
754
|
+
end
|
755
|
+
|
756
|
+
def test_xml
|
757
|
+
r1 = Resolution.new(1.2)
|
758
|
+
assert_equal "<crd:Resolution xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.2</crd:Resolution>", r1.to_xml.to_s
|
759
|
+
|
760
|
+
r2 = Resolution.from_xml("<crd:Resolution xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.2</crd:Resolution>")
|
761
|
+
assert_equal r1, r2
|
762
|
+
end
|
763
|
+
end
|
764
|
+
|
765
|
+
class ResolutionRefTest < ::Test::Unit::TestCase
|
766
|
+
def test_construction
|
767
|
+
assert_nothing_raised do
|
768
|
+
ResolutionRef.new('ref1')
|
769
|
+
end
|
770
|
+
|
771
|
+
assert_raises ArgumentError do
|
772
|
+
ResolutionRef.new(' ')
|
773
|
+
end
|
774
|
+
end
|
775
|
+
|
776
|
+
def test_accessors
|
777
|
+
ref = ResolutionRef.new('ref1')
|
778
|
+
assert_equal 'ref1', ref.value
|
779
|
+
|
780
|
+
ref.value = 'ref2'
|
781
|
+
assert_equal 'ref2', ref.value
|
782
|
+
end
|
783
|
+
|
784
|
+
def test_relationships
|
785
|
+
assert_kind_of CResolution, ResolutionRef.new('ref1')
|
786
|
+
end
|
787
|
+
|
788
|
+
def test_xml
|
789
|
+
r1 = ResolutionRef.new('ref1')
|
790
|
+
assert_equal "<crd:ResolutionRef xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:ResolutionRef>", r1.to_xml.to_s
|
791
|
+
|
792
|
+
r2 = ResolutionRef.from_xml("<crd:ResolutionRef xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:ResolutionRef>")
|
793
|
+
assert_equal r1, r2
|
794
|
+
end
|
795
|
+
end
|
796
|
+
|
797
|
+
class SizeTest < ::Test::Unit::TestCase
|
798
|
+
def test_construction
|
799
|
+
assert_nothing_raised do
|
800
|
+
Size.new(1.2)
|
801
|
+
end
|
802
|
+
|
803
|
+
assert_raises ArgumentError do
|
804
|
+
Size.new('blah')
|
805
|
+
end
|
806
|
+
end
|
807
|
+
|
808
|
+
def test_accessors
|
809
|
+
size = Size.new(1.2)
|
810
|
+
assert_equal 1.2, size.value
|
811
|
+
|
812
|
+
size.value = 3.4
|
813
|
+
assert_equal 3.4, size.value
|
814
|
+
end
|
815
|
+
|
816
|
+
def test_relationships
|
817
|
+
assert_kind_of CSize, Size.new(1.2)
|
818
|
+
end
|
819
|
+
|
820
|
+
def test_xml
|
821
|
+
s1 = Size.new(1.2)
|
822
|
+
assert_equal "<crd:Size xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.2</crd:Size>", s1.to_xml.to_s
|
823
|
+
|
824
|
+
s2 = Size.from_xml("<crd:Size xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.2</crd:Size>")
|
825
|
+
assert_equal s1, s2
|
826
|
+
end
|
827
|
+
end
|
828
|
+
|
829
|
+
class SizeRefTest < ::Test::Unit::TestCase
|
830
|
+
def test_construction
|
831
|
+
assert_nothing_raised do
|
832
|
+
SizeRef.new('ref1')
|
833
|
+
end
|
834
|
+
|
835
|
+
assert_raises ArgumentError do
|
836
|
+
SizeRef.new(' ')
|
837
|
+
end
|
838
|
+
end
|
839
|
+
|
840
|
+
def test_accessors
|
841
|
+
ref = SizeRef.new('ref1')
|
842
|
+
assert_equal 'ref1', ref.value
|
843
|
+
|
844
|
+
ref.value = 'ref2'
|
845
|
+
assert_equal 'ref2', ref.value
|
846
|
+
end
|
847
|
+
|
848
|
+
def test_relationships
|
849
|
+
assert_kind_of CSize, SizeRef.new('ref1')
|
850
|
+
end
|
851
|
+
|
852
|
+
def test_xml
|
853
|
+
r1 = SizeRef.new('ref1')
|
854
|
+
assert_equal "<crd:SizeRef xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:SizeRef>", r1.to_xml.to_s
|
855
|
+
|
856
|
+
r2 = SizeRef.from_xml("<crd:SizeRef xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:SizeRef>")
|
857
|
+
assert_equal r1, r2
|
858
|
+
end
|
859
|
+
end
|
860
|
+
|
861
|
+
class PixSizeTest < ::Test::Unit::TestCase
|
862
|
+
def test_construction
|
863
|
+
assert_nothing_raised do
|
864
|
+
PixSize.new(1.2)
|
865
|
+
end
|
866
|
+
|
867
|
+
assert_raises ArgumentError do
|
868
|
+
PixSize.new('blah')
|
869
|
+
end
|
870
|
+
end
|
871
|
+
|
872
|
+
def test_accessors
|
873
|
+
size = PixSize.new(1.2)
|
874
|
+
assert_equal 1.2, size.value
|
875
|
+
|
876
|
+
size.value = 3.4
|
877
|
+
assert_equal 3.4, size.value
|
878
|
+
end
|
879
|
+
|
880
|
+
def test_relationships
|
881
|
+
assert_kind_of CPixSize, PixSize.new(1.2)
|
882
|
+
end
|
883
|
+
|
884
|
+
def test_xml
|
885
|
+
p1 = PixSize.new(1.2)
|
886
|
+
assert_equal "<crd:PixSize xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.2</crd:PixSize>", p1.to_xml.to_s
|
887
|
+
|
888
|
+
p2 = PixSize.from_xml("<crd:PixSize xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.2</crd:PixSize>")
|
889
|
+
assert_equal p1, p2
|
890
|
+
end
|
891
|
+
end
|
892
|
+
|
893
|
+
class PixSizeRefTest < ::Test::Unit::TestCase
|
894
|
+
def test_construction
|
895
|
+
assert_nothing_raised do
|
896
|
+
PixSizeRef.new('ref1')
|
897
|
+
end
|
898
|
+
|
899
|
+
assert_raises ArgumentError do
|
900
|
+
PixSizeRef.new(' ')
|
901
|
+
end
|
902
|
+
end
|
903
|
+
|
904
|
+
def test_accessors
|
905
|
+
ref = PixSizeRef.new('ref1')
|
906
|
+
assert_equal 'ref1', ref.value
|
907
|
+
|
908
|
+
ref.value = 'ref2'
|
909
|
+
assert_equal 'ref2', ref.value
|
910
|
+
end
|
911
|
+
|
912
|
+
def test_relationships
|
913
|
+
assert_kind_of CPixSize, PixSizeRef.new('ref1')
|
914
|
+
end
|
915
|
+
|
916
|
+
def test_xml
|
917
|
+
r1 = PixSizeRef.new('ref1')
|
918
|
+
assert_equal "<crd:PixSizeRef xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:PixSizeRef>", r1.to_xml.to_s
|
919
|
+
|
920
|
+
r2 = PixSizeRef.from_xml("<crd:PixSizeRef xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:PixSizeRef>")
|
921
|
+
assert_equal r1, r2
|
922
|
+
end
|
923
|
+
end
|
924
|
+
|
925
|
+
class ScalarCoordinateTypeTest < ::Test::Unit::TestCase
|
926
|
+
def test_construction
|
927
|
+
assert_nothing_raised do
|
928
|
+
ScalarCoordinateType.new(
|
929
|
+
:value => Value.new(123.4),
|
930
|
+
:error => [Error.new(1.1), Error.new(2.2)],
|
931
|
+
:resolution => [Resolution.new(0.1), Resolution.new(0.5)],
|
932
|
+
:size => [Size.new(10.1), Size.new(8.7)],
|
933
|
+
:pix_size => [PixSize.new(1.9), PixSize.new(2.2)]
|
934
|
+
)
|
935
|
+
|
936
|
+
ScalarCoordinateType.new(
|
937
|
+
:value => Value.new(123.4),
|
938
|
+
:error => Error.new(1.1),
|
939
|
+
:resolution => Resolution.new(0.1),
|
940
|
+
:size => Size.new(10.1),
|
941
|
+
:pix_size => PixSize.new(1.9)
|
942
|
+
)
|
943
|
+
|
944
|
+
ScalarCoordinateType.new(
|
945
|
+
:value => Value.new(123.4),
|
946
|
+
:error => Error.new(1.1)
|
947
|
+
)
|
948
|
+
|
949
|
+
ScalarCoordinateType.new()
|
950
|
+
end
|
951
|
+
|
952
|
+
sc = ScalarCoordinateType.new
|
953
|
+
assert_raises TypeError do
|
954
|
+
sc.value = Error.new(10.2)
|
955
|
+
end
|
956
|
+
|
957
|
+
assert_raises TypeError do
|
958
|
+
sc.error = Value.new(123.4)
|
959
|
+
end
|
960
|
+
assert_raises ArgumentError do
|
961
|
+
sc.error = [Error.new(123.4), Error.new(123.4), Error.new(123.4)]
|
962
|
+
end
|
963
|
+
|
964
|
+
assert_raises TypeError do
|
965
|
+
sc.resolution = Error.new(10.2)
|
966
|
+
end
|
967
|
+
assert_raises ArgumentError do
|
968
|
+
sc.resolution = [Resolution.new(123.4), Resolution.new(123.4), Resolution.new(123.4)]
|
969
|
+
end
|
970
|
+
|
971
|
+
assert_raises TypeError do
|
972
|
+
sc.size = Error.new(10.2)
|
973
|
+
end
|
974
|
+
assert_raises ArgumentError do
|
975
|
+
sc.size = [Size.new(123.4), Size.new(123.4), Size.new(123.4)]
|
976
|
+
end
|
977
|
+
|
978
|
+
assert_raises TypeError do
|
979
|
+
sc.pix_size = Error.new(10.2)
|
980
|
+
end
|
981
|
+
assert_raises ArgumentError do
|
982
|
+
sc.pix_size = [PixSize.new(123.4), PixSize.new(123.4), PixSize.new(123.4)]
|
983
|
+
end
|
984
|
+
end
|
985
|
+
|
986
|
+
def test_accessors
|
987
|
+
sc = ScalarCoordinateType.new(
|
988
|
+
:name => 'MyCoordinate',
|
989
|
+
:value => Value.new(123.4),
|
990
|
+
:error => [Error.new(1.1), Error.new(2.2)],
|
991
|
+
:resolution => [Resolution.new(0.1), Resolution.new(0.2)],
|
992
|
+
:size => [Size.new(10.1), Size.new(8.7)],
|
993
|
+
:pix_size => [PixSize.new(1.9), PixSize.new(2.2)]
|
994
|
+
)
|
995
|
+
|
996
|
+
assert_equal 'MyCoordinate', sc.name
|
997
|
+
assert_equal Value.new(123.4), sc.value
|
998
|
+
assert_equal [Error.new(1.1), Error.new(2.2)], sc.error
|
999
|
+
assert_equal [Resolution.new(0.1), Resolution.new(0.2)], sc.resolution
|
1000
|
+
assert_equal [Size.new(10.1), Size.new(8.7)], sc.size
|
1001
|
+
assert_equal [PixSize.new(1.9), PixSize.new(2.2)], sc.pix_size
|
1002
|
+
|
1003
|
+
sc.name = 'MyOtherCoordinate'
|
1004
|
+
assert_equal 'MyOtherCoordinate', sc.name
|
1005
|
+
sc.error = Error.new(3.3)
|
1006
|
+
assert_equal [Error.new(3.3)], sc.error
|
1007
|
+
sc.resolution = Resolution.new(0.6)
|
1008
|
+
assert_equal [Resolution.new(0.6)], sc.resolution
|
1009
|
+
sc.size = Size.new(5.1)
|
1010
|
+
assert_equal [Size.new(5.1)], sc.size
|
1011
|
+
sc.pix_size = PixSize.new(3.1)
|
1012
|
+
assert_equal [PixSize.new(3.1)], sc.pix_size
|
1013
|
+
end
|
1014
|
+
|
1015
|
+
def test_relationships
|
1016
|
+
assert_kind_of CoordinateType, ScalarCoordinateType.new
|
1017
|
+
end
|
1018
|
+
end
|
1019
|
+
|
1020
|
+
class TimeCoordinateTest < ::Test::Unit::TestCase
|
1021
|
+
def test_constructors
|
1022
|
+
assert_nothing_raised do
|
1023
|
+
TimeCoordinate.new(
|
1024
|
+
:time_instant => AstronTime.new('UTC', ISOTime.new(DateTime.now)),
|
1025
|
+
:error => [Error.new(1.1), Error.new(2.2)],
|
1026
|
+
:resolution => [Resolution.new(0.1), Resolution.new(0.5)],
|
1027
|
+
:size => [Size.new(10.1), Size.new(8.7)],
|
1028
|
+
:pix_size => [PixSize.new(1.9), PixSize.new(2.2)],
|
1029
|
+
:unit => TimeUnit.new('s')
|
1030
|
+
)
|
1031
|
+
|
1032
|
+
TimeCoordinate.new(
|
1033
|
+
:time_instant => AstronTime.new('UTC', ISOTime.new(DateTime.now)),
|
1034
|
+
:error => Error.new(1.1),
|
1035
|
+
:resolution => Resolution.new(0.1),
|
1036
|
+
:size => Size.new(10.1),
|
1037
|
+
:pix_size => PixSize.new(1.9)
|
1038
|
+
)
|
1039
|
+
|
1040
|
+
TimeCoordinate.new(
|
1041
|
+
:time_instant => AstronTime.new('UTC', ISOTime.new(DateTime.now))
|
1042
|
+
)
|
1043
|
+
|
1044
|
+
TimeCoordinate.new()
|
1045
|
+
end
|
1046
|
+
|
1047
|
+
tc = TimeCoordinate.new
|
1048
|
+
assert_raises TypeError do
|
1049
|
+
tc.time_instant = Error.new(10.2)
|
1050
|
+
end
|
1051
|
+
|
1052
|
+
assert_raises TypeError do
|
1053
|
+
tc.error = Value.new(123.4)
|
1054
|
+
end
|
1055
|
+
assert_raises ArgumentError do
|
1056
|
+
tc.error = [Error.new(123.4), Error.new(123.4), Error.new(123.4)]
|
1057
|
+
end
|
1058
|
+
|
1059
|
+
assert_raises TypeError do
|
1060
|
+
tc.resolution = Error.new(10.2)
|
1061
|
+
end
|
1062
|
+
assert_raises ArgumentError do
|
1063
|
+
tc.resolution = [Resolution.new(123.4), Resolution.new(123.4), Resolution.new(123.4)]
|
1064
|
+
end
|
1065
|
+
|
1066
|
+
assert_raises TypeError do
|
1067
|
+
tc.size = Error.new(10.2)
|
1068
|
+
end
|
1069
|
+
assert_raises ArgumentError do
|
1070
|
+
tc.size = [Size.new(123.4), Size.new(123.4), Size.new(123.4)]
|
1071
|
+
end
|
1072
|
+
|
1073
|
+
assert_raises TypeError do
|
1074
|
+
tc.pix_size = Error.new(10.2)
|
1075
|
+
end
|
1076
|
+
assert_raises ArgumentError do
|
1077
|
+
tc.pix_size = [PixSize.new(123.4), PixSize.new(123.4), PixSize.new(123.4)]
|
1078
|
+
end
|
1079
|
+
|
1080
|
+
assert_raises TypeError do
|
1081
|
+
tc.unit = PosUnit.new('rad')
|
1082
|
+
end
|
1083
|
+
end
|
1084
|
+
|
1085
|
+
def test_accessors
|
1086
|
+
now = DateTime.now
|
1087
|
+
|
1088
|
+
tc = TimeCoordinate.new(
|
1089
|
+
:name => 'MyCoordinate',
|
1090
|
+
:time_instant => AstronTime.new('UTC', ISOTime.new(now)),
|
1091
|
+
:error => [Error.new(1.1), Error.new(2.2)],
|
1092
|
+
:resolution => [Resolution.new(0.1), Resolution.new(0.2)],
|
1093
|
+
:size => [Size.new(10.1), Size.new(8.7)],
|
1094
|
+
:pix_size => [PixSize.new(1.9), PixSize.new(2.2)],
|
1095
|
+
:unit => TimeUnit.new('h')
|
1096
|
+
)
|
1097
|
+
|
1098
|
+
assert_equal 'MyCoordinate', tc.name
|
1099
|
+
assert_equal AstronTime.new('UTC', ISOTime.new(now)), tc.time_instant
|
1100
|
+
assert_equal [Error.new(1.1), Error.new(2.2)], tc.error
|
1101
|
+
assert_equal [Resolution.new(0.1), Resolution.new(0.2)], tc.resolution
|
1102
|
+
assert_equal [Size.new(10.1), Size.new(8.7)], tc.size
|
1103
|
+
assert_equal [PixSize.new(1.9), PixSize.new(2.2)], tc.pix_size
|
1104
|
+
assert_equal TimeUnit.new('h'), tc.unit
|
1105
|
+
|
1106
|
+
tc.name = 'MyOtherCoordinate'
|
1107
|
+
assert_equal 'MyOtherCoordinate', tc.name
|
1108
|
+
tc.time_instant = AstronTime.new('LOCAL', ISOTime.new('2007-02-26T16:31:40'))
|
1109
|
+
assert_equal AstronTime.new('LOCAL', ISOTime.new('2007-02-26T16:31:40')), tc.time_instant
|
1110
|
+
tc.error = Error.new(3.3)
|
1111
|
+
assert_equal [Error.new(3.3)], tc.error
|
1112
|
+
tc.resolution = Resolution.new(0.6)
|
1113
|
+
assert_equal [Resolution.new(0.6)], tc.resolution
|
1114
|
+
tc.size = Size.new(5.1)
|
1115
|
+
assert_equal [Size.new(5.1)], tc.size
|
1116
|
+
tc.pix_size = PixSize.new(3.1)
|
1117
|
+
assert_equal [PixSize.new(3.1)], tc.pix_size
|
1118
|
+
tc.unit = TimeUnit.new('cy')
|
1119
|
+
assert_equal TimeUnit.new('cy'), tc.unit
|
1120
|
+
end
|
1121
|
+
|
1122
|
+
def test_relationships
|
1123
|
+
assert_kind_of CoordinateType, TimeCoordinate.new
|
1124
|
+
end
|
1125
|
+
|
1126
|
+
def test_xml
|
1127
|
+
tc1 = TimeCoordinate.new(
|
1128
|
+
:name => 'MyCoordinate',
|
1129
|
+
:time_instant => AstronTime.new('UTC', ISOTime.new(DateTime.parse('2007-01-01'))),
|
1130
|
+
:error => [Error.new(1.1), Error.new(2.2)],
|
1131
|
+
:resolution => [Resolution.new(0.1), Resolution.new(0.2)],
|
1132
|
+
:size => [Size.new(10.1), Size.new(8.7)],
|
1133
|
+
:pix_size => [PixSize.new(1.9), PixSize.new(2.2)],
|
1134
|
+
:unit => TimeUnit.new('h')
|
1135
|
+
)
|
1136
|
+
|
1137
|
+
tc2 = TimeCoordinate.from_xml(tc1.to_xml)
|
1138
|
+
assert_equal tc1, tc2
|
1139
|
+
end
|
1140
|
+
end
|
1141
|
+
|
1142
|
+
class Value2Test < ::Test::Unit::TestCase
|
1143
|
+
def test_construction
|
1144
|
+
assert_nothing_raised do
|
1145
|
+
Value2.new([3.2, 1.1])
|
1146
|
+
end
|
1147
|
+
|
1148
|
+
assert_raises RuntimeError do
|
1149
|
+
Value2.new([3.2])
|
1150
|
+
end
|
1151
|
+
assert_raises RuntimeError do
|
1152
|
+
Value2.new([3.2, 2.5, 5.1])
|
1153
|
+
end
|
1154
|
+
assert_raises TypeError do
|
1155
|
+
Value2.new([3.2, 'blah'])
|
1156
|
+
end
|
1157
|
+
end
|
1158
|
+
|
1159
|
+
def test_assignment
|
1160
|
+
d2 = Value2.new([1.1, 2.2])
|
1161
|
+
|
1162
|
+
assert_raises TypeError do
|
1163
|
+
d2[1] = 'blah'
|
1164
|
+
end
|
1165
|
+
assert_raises RuntimeError do
|
1166
|
+
d2 << 1.5
|
1167
|
+
end
|
1168
|
+
assert_raises RuntimeError do
|
1169
|
+
d2.clear
|
1170
|
+
end
|
1171
|
+
end
|
1172
|
+
|
1173
|
+
def test_relationships
|
1174
|
+
assert_kind_of Double2, Value2.new([1.1, 2.2])
|
1175
|
+
assert_kind_of CValue2, Value2.new([1.1, 2.2])
|
1176
|
+
end
|
1177
|
+
|
1178
|
+
def test_xml
|
1179
|
+
v1 = Value2.new([1.1, 2.2])
|
1180
|
+
assert_equal "<crd:Value2 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2</crd:Value2>", v1.to_xml.to_s
|
1181
|
+
|
1182
|
+
v2 = Value2.from_xml("<crd:Value2 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2</crd:Value2>")
|
1183
|
+
assert_equal v1, v2
|
1184
|
+
end
|
1185
|
+
end
|
1186
|
+
|
1187
|
+
class Value2RefTest < ::Test::Unit::TestCase
|
1188
|
+
def test_construction
|
1189
|
+
assert_nothing_raised do
|
1190
|
+
Value2Ref.new('ref1')
|
1191
|
+
end
|
1192
|
+
|
1193
|
+
assert_raises ArgumentError do
|
1194
|
+
Value2Ref.new(' ')
|
1195
|
+
end
|
1196
|
+
end
|
1197
|
+
|
1198
|
+
def test_accessors
|
1199
|
+
ref = Value2Ref.new('ref1')
|
1200
|
+
assert_equal 'ref1', ref.value
|
1201
|
+
|
1202
|
+
ref.value = 'ref2'
|
1203
|
+
assert_equal 'ref2', ref.value
|
1204
|
+
end
|
1205
|
+
|
1206
|
+
def test_relationships
|
1207
|
+
assert_kind_of CValue2, Value2Ref.new('ref1')
|
1208
|
+
end
|
1209
|
+
|
1210
|
+
def test_xml
|
1211
|
+
r1 = Value2Ref.new('ref1')
|
1212
|
+
assert_equal "<crd:Value2Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:Value2Ref>", r1.to_xml.to_s
|
1213
|
+
|
1214
|
+
r2 = Value2Ref.from_xml("<crd:Value2Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:Value2Ref>")
|
1215
|
+
assert_equal r1, r2
|
1216
|
+
end
|
1217
|
+
end
|
1218
|
+
|
1219
|
+
class Error2Test < ::Test::Unit::TestCase
|
1220
|
+
def test_construction
|
1221
|
+
assert_nothing_raised do
|
1222
|
+
Error2.new([3.2, 1.1])
|
1223
|
+
end
|
1224
|
+
|
1225
|
+
assert_raises RuntimeError do
|
1226
|
+
Error2.new([3.2])
|
1227
|
+
end
|
1228
|
+
assert_raises RuntimeError do
|
1229
|
+
Error2.new([3.2, 2.5, 5.1])
|
1230
|
+
end
|
1231
|
+
assert_raises TypeError do
|
1232
|
+
Error2.new([3.2, 'blah'])
|
1233
|
+
end
|
1234
|
+
end
|
1235
|
+
|
1236
|
+
def test_assignment
|
1237
|
+
e2 = Error2.new([1.1, 2.2])
|
1238
|
+
|
1239
|
+
assert_raises TypeError do
|
1240
|
+
e2[1] = 'blah'
|
1241
|
+
end
|
1242
|
+
assert_raises RuntimeError do
|
1243
|
+
e2 << 1.5
|
1244
|
+
end
|
1245
|
+
assert_raises RuntimeError do
|
1246
|
+
e2.clear
|
1247
|
+
end
|
1248
|
+
end
|
1249
|
+
|
1250
|
+
def test_relationships
|
1251
|
+
assert_kind_of Size2Type, Error2.new([1.1, 2.2])
|
1252
|
+
assert_kind_of CError2, Error2.new([1.1, 2.2])
|
1253
|
+
end
|
1254
|
+
|
1255
|
+
def test_xml
|
1256
|
+
e1 = Error2.new([1.1, 2.2])
|
1257
|
+
assert_equal "<crd:Error2 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2</crd:Error2>", e1.to_xml.to_s
|
1258
|
+
|
1259
|
+
e2 = Error2.from_xml("<crd:Error2 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2</crd:Error2>")
|
1260
|
+
assert_equal e1, e2
|
1261
|
+
end
|
1262
|
+
end
|
1263
|
+
|
1264
|
+
class Error2MatrixTest < ::Test::Unit::TestCase
|
1265
|
+
def test_construction
|
1266
|
+
assert_nothing_raised do
|
1267
|
+
Error2Matrix.new([3.2, 1.1, 5.5, 0.1])
|
1268
|
+
end
|
1269
|
+
|
1270
|
+
assert_raises RuntimeError do
|
1271
|
+
Error2Matrix.new([3.2])
|
1272
|
+
end
|
1273
|
+
assert_raises RuntimeError do
|
1274
|
+
Error2Matrix.new([3.2, 2.5, 5.1, 0.3, 10.9])
|
1275
|
+
end
|
1276
|
+
assert_raises TypeError do
|
1277
|
+
Error2Matrix.new([3.2, 'blah', 9.1, 'yeeha'])
|
1278
|
+
end
|
1279
|
+
end
|
1280
|
+
|
1281
|
+
def test_assignment
|
1282
|
+
e2m = Error2Matrix.new([1.1, 2.2, 10.2, 0.1])
|
1283
|
+
|
1284
|
+
assert_raises TypeError do
|
1285
|
+
e2m[1] = 'blah'
|
1286
|
+
end
|
1287
|
+
assert_raises RuntimeError do
|
1288
|
+
e2m << 1.5
|
1289
|
+
end
|
1290
|
+
assert_raises RuntimeError do
|
1291
|
+
e2m.clear
|
1292
|
+
end
|
1293
|
+
end
|
1294
|
+
|
1295
|
+
def test_relationships
|
1296
|
+
assert_kind_of Double4, Error2Matrix.new([1.1, 2.2, 3.3, 4.4])
|
1297
|
+
assert_kind_of CError2, Error2Matrix.new([1.1, 2.2, 3.3, 4.4])
|
1298
|
+
end
|
1299
|
+
|
1300
|
+
def test_xml
|
1301
|
+
m1 = Error2Matrix.new([1.1, 2.2, 3.3, 4.4])
|
1302
|
+
assert_equal "<crd:Error2Matrix xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3 4.4</crd:Error2Matrix>", m1.to_xml.to_s
|
1303
|
+
|
1304
|
+
m2 = Error2Matrix.from_xml(
|
1305
|
+
"<crd:Error2Matrix xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3 4.4</crd:Error2Matrix>"
|
1306
|
+
)
|
1307
|
+
assert_equal m1, m2
|
1308
|
+
end
|
1309
|
+
end
|
1310
|
+
|
1311
|
+
class Error2RefTest < ::Test::Unit::TestCase
|
1312
|
+
def test_construction
|
1313
|
+
assert_nothing_raised do
|
1314
|
+
Error2Ref.new('ref1')
|
1315
|
+
end
|
1316
|
+
|
1317
|
+
assert_raises ArgumentError do
|
1318
|
+
Error2Ref.new(' ')
|
1319
|
+
end
|
1320
|
+
end
|
1321
|
+
|
1322
|
+
def test_accessors
|
1323
|
+
ref = Error2Ref.new('ref1')
|
1324
|
+
assert_equal 'ref1', ref.value
|
1325
|
+
|
1326
|
+
ref.value = 'ref2'
|
1327
|
+
assert_equal 'ref2', ref.value
|
1328
|
+
end
|
1329
|
+
|
1330
|
+
def test_relationships
|
1331
|
+
assert_kind_of CError2, Error2Ref.new('ref1')
|
1332
|
+
end
|
1333
|
+
|
1334
|
+
def test_xml
|
1335
|
+
r1 = Error2Ref.new('ref1')
|
1336
|
+
assert_equal "<crd:Error2Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:Error2Ref>", r1.to_xml.to_s
|
1337
|
+
|
1338
|
+
r2 = Error2Ref.from_xml("<crd:Error2Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:Error2Ref>")
|
1339
|
+
assert_equal r1, r2
|
1340
|
+
end
|
1341
|
+
end
|
1342
|
+
|
1343
|
+
class Resolution2Test < ::Test::Unit::TestCase
|
1344
|
+
def test_construction
|
1345
|
+
assert_nothing_raised do
|
1346
|
+
Resolution2.new([3.2, 1.1])
|
1347
|
+
end
|
1348
|
+
|
1349
|
+
assert_raises RuntimeError do
|
1350
|
+
Resolution2.new([3.2])
|
1351
|
+
end
|
1352
|
+
assert_raises RuntimeError do
|
1353
|
+
Resolution2.new([3.2, 2.5, 5.1])
|
1354
|
+
end
|
1355
|
+
assert_raises TypeError do
|
1356
|
+
Resolution2.new([3.2, 'blah'])
|
1357
|
+
end
|
1358
|
+
end
|
1359
|
+
|
1360
|
+
def test_assignment
|
1361
|
+
r2 = Resolution2.new([1.1, 2.2])
|
1362
|
+
|
1363
|
+
assert_raises TypeError do
|
1364
|
+
r2[1] = 'blah'
|
1365
|
+
end
|
1366
|
+
assert_raises RuntimeError do
|
1367
|
+
r2 << 1.5
|
1368
|
+
end
|
1369
|
+
assert_raises RuntimeError do
|
1370
|
+
r2.clear
|
1371
|
+
end
|
1372
|
+
end
|
1373
|
+
|
1374
|
+
def test_relationships
|
1375
|
+
assert_kind_of Size2Type, Resolution2.new([1.1, 2.2])
|
1376
|
+
assert_kind_of CResolution2, Resolution2.new([1.1, 2.2])
|
1377
|
+
end
|
1378
|
+
|
1379
|
+
def test_xml
|
1380
|
+
r1 = Resolution2.new([1.1, 2.2])
|
1381
|
+
assert_equal "<crd:Resolution2 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2</crd:Resolution2>", r1.to_xml.to_s
|
1382
|
+
|
1383
|
+
r2 = Resolution2.from_xml("<crd:Resolution2 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2</crd:Resolution2>")
|
1384
|
+
assert_equal r1, r2
|
1385
|
+
end
|
1386
|
+
end
|
1387
|
+
|
1388
|
+
class Resolution2MatrixTest < ::Test::Unit::TestCase
|
1389
|
+
def test_construction
|
1390
|
+
assert_nothing_raised do
|
1391
|
+
Resolution2Matrix.new([3.2, 1.1, 5.5, 0.1])
|
1392
|
+
end
|
1393
|
+
|
1394
|
+
assert_raises RuntimeError do
|
1395
|
+
Resolution2Matrix.new([3.2])
|
1396
|
+
end
|
1397
|
+
assert_raises RuntimeError do
|
1398
|
+
Resolution2Matrix.new([3.2, 2.5, 5.1, 0.3, 10.9])
|
1399
|
+
end
|
1400
|
+
assert_raises TypeError do
|
1401
|
+
Resolution2Matrix.new([3.2, 'blah', 9.1, 'yeeha'])
|
1402
|
+
end
|
1403
|
+
end
|
1404
|
+
|
1405
|
+
def test_assignment
|
1406
|
+
r2m = Resolution2Matrix.new([1.1, 2.2, 10.2, 0.1])
|
1407
|
+
|
1408
|
+
assert_raises TypeError do
|
1409
|
+
r2m[1] = 'blah'
|
1410
|
+
end
|
1411
|
+
assert_raises RuntimeError do
|
1412
|
+
r2m << 1.5
|
1413
|
+
end
|
1414
|
+
assert_raises RuntimeError do
|
1415
|
+
r2m.clear
|
1416
|
+
end
|
1417
|
+
end
|
1418
|
+
|
1419
|
+
def test_relationships
|
1420
|
+
assert_kind_of Double4, Resolution2Matrix.new([1.1, 2.2, 3.3, 4.4])
|
1421
|
+
assert_kind_of CResolution2, Resolution2Matrix.new([1.1, 2.2, 3.3, 4.4])
|
1422
|
+
end
|
1423
|
+
|
1424
|
+
def test_xml
|
1425
|
+
m1 = Resolution2Matrix.new([1.1, 2.2, 3.3, 4.4])
|
1426
|
+
assert_equal(
|
1427
|
+
"<crd:Resolution2Matrix xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3 4.4</crd:Resolution2Matrix>",
|
1428
|
+
m1.to_xml.to_s
|
1429
|
+
)
|
1430
|
+
|
1431
|
+
m2 = Resolution2Matrix.from_xml(
|
1432
|
+
"<crd:Resolution2Matrix xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3 4.4</crd:Resolution2Matrix>"
|
1433
|
+
)
|
1434
|
+
assert_equal m1, m2
|
1435
|
+
end
|
1436
|
+
end
|
1437
|
+
|
1438
|
+
class Resolution2RefTest < ::Test::Unit::TestCase
|
1439
|
+
def test_construction
|
1440
|
+
assert_nothing_raised do
|
1441
|
+
Resolution2Ref.new('ref1')
|
1442
|
+
end
|
1443
|
+
|
1444
|
+
assert_raises ArgumentError do
|
1445
|
+
Resolution2Ref.new(' ')
|
1446
|
+
end
|
1447
|
+
end
|
1448
|
+
|
1449
|
+
def test_accessors
|
1450
|
+
ref = Resolution2Ref.new('ref1')
|
1451
|
+
assert_equal 'ref1', ref.value
|
1452
|
+
|
1453
|
+
ref.value = 'ref2'
|
1454
|
+
assert_equal 'ref2', ref.value
|
1455
|
+
end
|
1456
|
+
|
1457
|
+
def test_relationships
|
1458
|
+
assert_kind_of CResolution2, Resolution2Ref.new('ref1')
|
1459
|
+
end
|
1460
|
+
|
1461
|
+
def test_xml
|
1462
|
+
r1 = Resolution2Ref.new('ref1')
|
1463
|
+
assert_equal "<crd:Resolution2Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:Resolution2Ref>", r1.to_xml.to_s
|
1464
|
+
|
1465
|
+
r2 = Resolution2Ref.from_xml("<crd:Resolution2Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:Resolution2Ref>")
|
1466
|
+
assert_equal r1, r2
|
1467
|
+
end
|
1468
|
+
end
|
1469
|
+
|
1470
|
+
class Size2Test < ::Test::Unit::TestCase
|
1471
|
+
def test_construction
|
1472
|
+
assert_nothing_raised do
|
1473
|
+
Size2.new([3.2, 1.1])
|
1474
|
+
end
|
1475
|
+
|
1476
|
+
assert_raises RuntimeError do
|
1477
|
+
Size2.new([3.2])
|
1478
|
+
end
|
1479
|
+
assert_raises RuntimeError do
|
1480
|
+
Size2.new([3.2, 2.5, 5.1])
|
1481
|
+
end
|
1482
|
+
assert_raises TypeError do
|
1483
|
+
Size2.new([3.2, 'blah'])
|
1484
|
+
end
|
1485
|
+
end
|
1486
|
+
|
1487
|
+
def test_assignment
|
1488
|
+
s2 = Size2.new([1.1, 2.2])
|
1489
|
+
|
1490
|
+
assert_raises TypeError do
|
1491
|
+
s2[1] = 'blah'
|
1492
|
+
end
|
1493
|
+
assert_raises RuntimeError do
|
1494
|
+
s2 << 1.5
|
1495
|
+
end
|
1496
|
+
assert_raises RuntimeError do
|
1497
|
+
s2.clear
|
1498
|
+
end
|
1499
|
+
end
|
1500
|
+
|
1501
|
+
def test_relationships
|
1502
|
+
assert_kind_of Size2Type, Size2.new([1.1, 2.2])
|
1503
|
+
assert_kind_of CSize2, Size2.new([1.1, 2.2])
|
1504
|
+
end
|
1505
|
+
|
1506
|
+
def test_xml
|
1507
|
+
s1 = Size2.new([1.1, 2.2])
|
1508
|
+
assert_equal "<crd:Size2 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2</crd:Size2>", s1.to_xml.to_s
|
1509
|
+
|
1510
|
+
s2 = Size2.from_xml("<crd:Size2 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2</crd:Size2>")
|
1511
|
+
assert_equal s1, s2
|
1512
|
+
end
|
1513
|
+
end
|
1514
|
+
|
1515
|
+
class Size2MatrixTest < ::Test::Unit::TestCase
|
1516
|
+
def test_construction
|
1517
|
+
assert_nothing_raised do
|
1518
|
+
Size2Matrix.new([3.2, 1.1, 5.5, 0.1])
|
1519
|
+
end
|
1520
|
+
|
1521
|
+
assert_raises RuntimeError do
|
1522
|
+
Size2Matrix.new([3.2])
|
1523
|
+
end
|
1524
|
+
assert_raises RuntimeError do
|
1525
|
+
Size2Matrix.new([3.2, 2.5, 5.1, 0.3, 10.9])
|
1526
|
+
end
|
1527
|
+
assert_raises TypeError do
|
1528
|
+
Size2Matrix.new([3.2, 'blah', 9.1, 'yeeha'])
|
1529
|
+
end
|
1530
|
+
end
|
1531
|
+
|
1532
|
+
def test_assignment
|
1533
|
+
s2m = Size2Matrix.new([1.1, 2.2, 10.2, 0.1])
|
1534
|
+
|
1535
|
+
assert_raises TypeError do
|
1536
|
+
s2m[1] = 'blah'
|
1537
|
+
end
|
1538
|
+
assert_raises RuntimeError do
|
1539
|
+
s2m << 1.5
|
1540
|
+
end
|
1541
|
+
assert_raises RuntimeError do
|
1542
|
+
s2m.clear
|
1543
|
+
end
|
1544
|
+
end
|
1545
|
+
|
1546
|
+
def test_relationships
|
1547
|
+
assert_kind_of Double4, Size2Matrix.new([1.1, 2.2, 3.3, 4.4])
|
1548
|
+
assert_kind_of CSize2, Size2Matrix.new([1.1, 2.2, 3.3, 4.4])
|
1549
|
+
end
|
1550
|
+
|
1551
|
+
def test_xml
|
1552
|
+
m1 = Size2Matrix.new([1.1, 2.2, 3.3, 4.4])
|
1553
|
+
assert_equal(
|
1554
|
+
"<crd:Size2Matrix xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3 4.4</crd:Size2Matrix>",
|
1555
|
+
m1.to_xml.to_s
|
1556
|
+
)
|
1557
|
+
|
1558
|
+
m2 = Size2Matrix.from_xml("<crd:Size2Matrix xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3 4.4</crd:Size2Matrix>")
|
1559
|
+
assert_equal m1, m2
|
1560
|
+
end
|
1561
|
+
end
|
1562
|
+
|
1563
|
+
class Size2RefTest < ::Test::Unit::TestCase
|
1564
|
+
def test_construction
|
1565
|
+
assert_nothing_raised do
|
1566
|
+
Size2Ref.new('ref1')
|
1567
|
+
end
|
1568
|
+
|
1569
|
+
assert_raises ArgumentError do
|
1570
|
+
Size2Ref.new(' ')
|
1571
|
+
end
|
1572
|
+
end
|
1573
|
+
|
1574
|
+
def test_accessors
|
1575
|
+
ref = Size2Ref.new('ref1')
|
1576
|
+
assert_equal 'ref1', ref.value
|
1577
|
+
|
1578
|
+
ref.value = 'ref2'
|
1579
|
+
assert_equal 'ref2', ref.value
|
1580
|
+
end
|
1581
|
+
|
1582
|
+
def test_relationships
|
1583
|
+
assert_kind_of CSize2, Size2Ref.new('ref1')
|
1584
|
+
end
|
1585
|
+
|
1586
|
+
def test_xml
|
1587
|
+
r1 = Size2Ref.new('ref1')
|
1588
|
+
assert_equal "<crd:Size2Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:Size2Ref>", r1.to_xml.to_s
|
1589
|
+
|
1590
|
+
r2 = Size2Ref.from_xml("<crd:Size2Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:Size2Ref>")
|
1591
|
+
assert_equal r1, r2
|
1592
|
+
end
|
1593
|
+
end
|
1594
|
+
|
1595
|
+
class PixSize2Test < ::Test::Unit::TestCase
|
1596
|
+
def test_construction
|
1597
|
+
assert_nothing_raised do
|
1598
|
+
PixSize2.new([3.2, 1.1])
|
1599
|
+
end
|
1600
|
+
|
1601
|
+
assert_raises RuntimeError do
|
1602
|
+
PixSize2.new([3.2])
|
1603
|
+
end
|
1604
|
+
assert_raises RuntimeError do
|
1605
|
+
PixSize2.new([3.2, 2.5, 5.1])
|
1606
|
+
end
|
1607
|
+
assert_raises TypeError do
|
1608
|
+
PixSize2.new([3.2, 'blah'])
|
1609
|
+
end
|
1610
|
+
end
|
1611
|
+
|
1612
|
+
def test_assignment
|
1613
|
+
p2 = PixSize2.new([1.1, 2.2])
|
1614
|
+
|
1615
|
+
assert_raises TypeError do
|
1616
|
+
p2[1] = 'blah'
|
1617
|
+
end
|
1618
|
+
assert_raises RuntimeError do
|
1619
|
+
p2 << 1.5
|
1620
|
+
end
|
1621
|
+
assert_raises RuntimeError do
|
1622
|
+
p2.clear
|
1623
|
+
end
|
1624
|
+
end
|
1625
|
+
|
1626
|
+
def test_relationships
|
1627
|
+
assert_kind_of Size2Type, PixSize2.new([1.1, 2.2])
|
1628
|
+
assert_kind_of CPixSize2, PixSize2.new([1.1, 2.2])
|
1629
|
+
end
|
1630
|
+
|
1631
|
+
def test_xml
|
1632
|
+
p1 = PixSize2.new([1.1, 2.2])
|
1633
|
+
assert_equal "<crd:PixSize2 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2</crd:PixSize2>", p1.to_xml.to_s
|
1634
|
+
|
1635
|
+
p2 = PixSize2.from_xml("<crd:PixSize2 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2</crd:PixSize2>")
|
1636
|
+
assert_equal p1, p2
|
1637
|
+
end
|
1638
|
+
end
|
1639
|
+
|
1640
|
+
class PixSize2MatrixTest < ::Test::Unit::TestCase
|
1641
|
+
def test_construction
|
1642
|
+
assert_nothing_raised do
|
1643
|
+
PixSize2Matrix.new([3.2, 1.1, 5.5, 0.1])
|
1644
|
+
end
|
1645
|
+
|
1646
|
+
assert_raises RuntimeError do
|
1647
|
+
PixSize2Matrix.new([3.2])
|
1648
|
+
end
|
1649
|
+
assert_raises RuntimeError do
|
1650
|
+
PixSize2Matrix.new([3.2, 2.5, 5.1, 0.3, 10.9])
|
1651
|
+
end
|
1652
|
+
assert_raises TypeError do
|
1653
|
+
PixSize2Matrix.new([3.2, 'blah', 9.1, 'yeeha'])
|
1654
|
+
end
|
1655
|
+
end
|
1656
|
+
|
1657
|
+
def test_assignment
|
1658
|
+
p2m = PixSize2Matrix.new([1.1, 2.2, 10.2, 0.1])
|
1659
|
+
|
1660
|
+
assert_raises TypeError do
|
1661
|
+
p2m[1] = 'blah'
|
1662
|
+
end
|
1663
|
+
assert_raises RuntimeError do
|
1664
|
+
p2m << 1.5
|
1665
|
+
end
|
1666
|
+
assert_raises RuntimeError do
|
1667
|
+
p2m.clear
|
1668
|
+
end
|
1669
|
+
end
|
1670
|
+
|
1671
|
+
def test_relationships
|
1672
|
+
assert_kind_of Double4, PixSize2Matrix.new([1.1, 2.2, 3.3, 4.4])
|
1673
|
+
assert_kind_of CPixSize2, PixSize2Matrix.new([1.1, 2.2, 3.3, 4.4])
|
1674
|
+
end
|
1675
|
+
|
1676
|
+
def test_xml
|
1677
|
+
m1 = PixSize2Matrix.new([1.1, 2.2, 3.3, 4.4])
|
1678
|
+
assert_equal(
|
1679
|
+
"<crd:PixSize2Matrix xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3 4.4</crd:PixSize2Matrix>",
|
1680
|
+
m1.to_xml.to_s
|
1681
|
+
)
|
1682
|
+
|
1683
|
+
m2 = PixSize2Matrix.from_xml(
|
1684
|
+
"<crd:PixSize2Matrix xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3 4.4</crd:PixSize2Matrix>"
|
1685
|
+
)
|
1686
|
+
assert_equal m1, m2
|
1687
|
+
end
|
1688
|
+
end
|
1689
|
+
|
1690
|
+
class PixSize2RefTest < ::Test::Unit::TestCase
|
1691
|
+
def test_construction
|
1692
|
+
assert_nothing_raised do
|
1693
|
+
PixSize2Ref.new('ref1')
|
1694
|
+
end
|
1695
|
+
|
1696
|
+
assert_raises ArgumentError do
|
1697
|
+
PixSize2Ref.new(' ')
|
1698
|
+
end
|
1699
|
+
end
|
1700
|
+
|
1701
|
+
def test_accessors
|
1702
|
+
ref = PixSize2Ref.new('ref1')
|
1703
|
+
assert_equal 'ref1', ref.value
|
1704
|
+
|
1705
|
+
ref.value = 'ref2'
|
1706
|
+
assert_equal 'ref2', ref.value
|
1707
|
+
end
|
1708
|
+
|
1709
|
+
def test_relationships
|
1710
|
+
assert_kind_of CPixSize2, PixSize2Ref.new('ref1')
|
1711
|
+
end
|
1712
|
+
|
1713
|
+
def test_xml
|
1714
|
+
r1 = PixSize2Ref.new('ref1')
|
1715
|
+
assert_equal "<crd:PixSize2Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:PixSize2Ref>", r1.to_xml.to_s
|
1716
|
+
|
1717
|
+
r2 = PixSize2Ref.from_xml("<crd:PixSize2Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:PixSize2Ref>")
|
1718
|
+
assert_equal r1, r2
|
1719
|
+
end
|
1720
|
+
end
|
1721
|
+
|
1722
|
+
class Vector2CoordinateTest < ::Test::Unit::TestCase
|
1723
|
+
def test_construction
|
1724
|
+
assert_nothing_raised do
|
1725
|
+
Vector2Coordinate.new(
|
1726
|
+
:name => 'My Coordinate',
|
1727
|
+
:value => Value2.new([123.4, 345.6]),
|
1728
|
+
:error => [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])],
|
1729
|
+
:resolution => [Resolution2.new([0.1, 0.2]), Resolution2.new([0.5, 0.6])],
|
1730
|
+
:size => [Size2.new([10.1, 10.2]), Size2.new([8.7, 8.8])],
|
1731
|
+
:pix_size => [PixSize2.new([1.9, 2.0]), PixSize2.new([2.2, 3.3])]
|
1732
|
+
)
|
1733
|
+
|
1734
|
+
Vector2Coordinate.new(
|
1735
|
+
:value => Value2.new([123.4, 345.6]),
|
1736
|
+
:error => [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])],
|
1737
|
+
:resolution => [Resolution2.new([0.1, 0.2]), Resolution2.new([0.5, 0.6])],
|
1738
|
+
:size => [Size2.new([10.1, 10.2]), Size2.new([8.7, 8.8])],
|
1739
|
+
:pix_size => [PixSize2.new([1.9, 2.0]), PixSize2.new([2.2, 3.3])]
|
1740
|
+
)
|
1741
|
+
|
1742
|
+
Vector2Coordinate.new(
|
1743
|
+
:value => Value2.new([123.4, 345.6]),
|
1744
|
+
:error => [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])]
|
1745
|
+
)
|
1746
|
+
|
1747
|
+
Vector2Coordinate.new()
|
1748
|
+
end
|
1749
|
+
|
1750
|
+
vc = Vector2Coordinate.new
|
1751
|
+
assert_raises TypeError do
|
1752
|
+
vc.value = Error.new(10.2)
|
1753
|
+
end
|
1754
|
+
|
1755
|
+
assert_raises TypeError do
|
1756
|
+
vc.error = Value.new(123.4)
|
1757
|
+
end
|
1758
|
+
assert_raises ArgumentError do
|
1759
|
+
vc.error = [Error2.new([123.4, 5.1]), Error2.new([123.4, 5.1]), Error2.new([123.4, 5.1])]
|
1760
|
+
end
|
1761
|
+
|
1762
|
+
assert_raises TypeError do
|
1763
|
+
vc.resolution = Error.new(10.2)
|
1764
|
+
end
|
1765
|
+
assert_raises ArgumentError do
|
1766
|
+
vc.resolution = [Resolution2.new([123.4, 123.5]), Resolution2.new([123.4, 123.5]), Resolution2.new([123.4, 123.5])]
|
1767
|
+
end
|
1768
|
+
|
1769
|
+
assert_raises TypeError do
|
1770
|
+
vc.size = Error.new(10.2)
|
1771
|
+
end
|
1772
|
+
assert_raises ArgumentError do
|
1773
|
+
vc.size = [Size2.new([123.4, 123.4]), Size2.new([123.4, 123.4]), Size2.new([123.4, 123.4])]
|
1774
|
+
end
|
1775
|
+
|
1776
|
+
assert_raises TypeError do
|
1777
|
+
vc.pix_size = Error.new(10.2)
|
1778
|
+
end
|
1779
|
+
assert_raises ArgumentError do
|
1780
|
+
vc.pix_size = [PixSize2.new([123.4, 123.4]), PixSize2.new([123.4, 123.4]), PixSize2.new([123.4, 123.4])]
|
1781
|
+
end
|
1782
|
+
end
|
1783
|
+
|
1784
|
+
def test_accessors
|
1785
|
+
vc = Vector2Coordinate.new(
|
1786
|
+
:name => 'MyCoordinate',
|
1787
|
+
:value => Value2.new([123.4, 345.6]),
|
1788
|
+
:error => [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])],
|
1789
|
+
:resolution => [Resolution2.new([0.1, 0.2]), Resolution2.new([0.5, 0.6])],
|
1790
|
+
:size => [Size2.new([10.1, 10.2]), Size2.new([8.7, 8.8])],
|
1791
|
+
:pix_size => [PixSize2.new([1.9, 2.0]), PixSize2.new([2.2, 3.3])]
|
1792
|
+
)
|
1793
|
+
|
1794
|
+
assert_equal 'MyCoordinate', vc.name
|
1795
|
+
assert_equal Value2.new([123.4, 345.6]), vc.value
|
1796
|
+
assert_equal [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])], vc.error
|
1797
|
+
assert_equal [Resolution2.new([0.1, 0.2]), Resolution2.new([0.5, 0.6])], vc.resolution
|
1798
|
+
assert_equal [Size2.new([10.1, 10.2]), Size2.new([8.7, 8.8])], vc.size
|
1799
|
+
assert_equal [PixSize2.new([1.9, 2.0]), PixSize2.new([2.2, 3.3])], vc.pix_size
|
1800
|
+
|
1801
|
+
vc.name = 'MyOtherCoordinate'
|
1802
|
+
assert_equal 'MyOtherCoordinate', vc.name
|
1803
|
+
vc.error = Error2.new([3.3, 4.4])
|
1804
|
+
assert_equal [Error2.new([3.3, 4.4])], vc.error
|
1805
|
+
vc.resolution = Resolution2.new([0.6, 0.7])
|
1806
|
+
assert_equal [Resolution2.new([0.6, 0.7])], vc.resolution
|
1807
|
+
vc.size = Size2.new([5.1, 5.2])
|
1808
|
+
assert_equal [Size2.new([5.1, 5.2])], vc.size
|
1809
|
+
vc.pix_size = PixSize2.new([3.1, 3.2])
|
1810
|
+
assert_equal [PixSize2.new([3.1, 3.2])], vc.pix_size
|
1811
|
+
end
|
1812
|
+
|
1813
|
+
def test_relationships
|
1814
|
+
assert_kind_of CoordinateType, Vector2Coordinate.new
|
1815
|
+
end
|
1816
|
+
end
|
1817
|
+
|
1818
|
+
class Value3Test < ::Test::Unit::TestCase
|
1819
|
+
def test_construction
|
1820
|
+
assert_nothing_raised do
|
1821
|
+
Value3.new([3.2, 1.1, 2.2])
|
1822
|
+
end
|
1823
|
+
|
1824
|
+
assert_raises RuntimeError do
|
1825
|
+
Value3.new([3.2])
|
1826
|
+
end
|
1827
|
+
assert_raises RuntimeError do
|
1828
|
+
Value3.new([3.2, 2.5, 5.1, 6.9])
|
1829
|
+
end
|
1830
|
+
assert_raises TypeError do
|
1831
|
+
Value3.new([3.2, 'blah'])
|
1832
|
+
end
|
1833
|
+
end
|
1834
|
+
|
1835
|
+
def test_assignment
|
1836
|
+
d3 = Value3.new([1.1, 2.2, 3.3])
|
1837
|
+
|
1838
|
+
assert_raises TypeError do
|
1839
|
+
d3[1] = 'blah'
|
1840
|
+
end
|
1841
|
+
assert_raises RuntimeError do
|
1842
|
+
d3 << 1.5
|
1843
|
+
end
|
1844
|
+
assert_raises RuntimeError do
|
1845
|
+
d3.clear
|
1846
|
+
end
|
1847
|
+
end
|
1848
|
+
|
1849
|
+
def test_relationships
|
1850
|
+
assert_kind_of Double3, Value3.new([1.1, 2.2, 3.3])
|
1851
|
+
assert_kind_of CValue3, Value3.new([1.1, 2.2, 3.3])
|
1852
|
+
end
|
1853
|
+
|
1854
|
+
def test_xml
|
1855
|
+
v1 = Value3.new([1.1, 2.2, 3.3])
|
1856
|
+
assert_equal "<crd:Value3 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3</crd:Value3>", v1.to_xml.to_s
|
1857
|
+
|
1858
|
+
v2 = Value3.from_xml("<crd:Value3 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3</crd:Value3>")
|
1859
|
+
assert_equal v1, v2
|
1860
|
+
end
|
1861
|
+
end
|
1862
|
+
|
1863
|
+
class Value3RefTest < ::Test::Unit::TestCase
|
1864
|
+
def test_construction
|
1865
|
+
assert_nothing_raised do
|
1866
|
+
Value3Ref.new('ref1')
|
1867
|
+
end
|
1868
|
+
|
1869
|
+
assert_raises ArgumentError do
|
1870
|
+
Value3Ref.new(' ')
|
1871
|
+
end
|
1872
|
+
end
|
1873
|
+
|
1874
|
+
def test_accessors
|
1875
|
+
ref = Value3Ref.new('ref1')
|
1876
|
+
assert_equal 'ref1', ref.value
|
1877
|
+
|
1878
|
+
ref.value = 'ref2'
|
1879
|
+
assert_equal 'ref2', ref.value
|
1880
|
+
end
|
1881
|
+
|
1882
|
+
def test_relationships
|
1883
|
+
assert_kind_of CValue3, Value3Ref.new('ref1')
|
1884
|
+
end
|
1885
|
+
|
1886
|
+
def test_xml
|
1887
|
+
r1 = Value3Ref.new('ref1')
|
1888
|
+
assert_equal "<crd:Value3Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:Value3Ref>", r1.to_xml.to_s
|
1889
|
+
|
1890
|
+
r2 = Value3Ref.from_xml("<crd:Value3Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:Value3Ref>")
|
1891
|
+
assert_equal r1, r2
|
1892
|
+
end
|
1893
|
+
end
|
1894
|
+
|
1895
|
+
class Error3Test < ::Test::Unit::TestCase
|
1896
|
+
def test_construction
|
1897
|
+
assert_nothing_raised do
|
1898
|
+
Error3.new([3.2, 1.1, 2.2])
|
1899
|
+
end
|
1900
|
+
|
1901
|
+
assert_raises RuntimeError do
|
1902
|
+
Error3.new([3.2])
|
1903
|
+
end
|
1904
|
+
assert_raises RuntimeError do
|
1905
|
+
Error3.new([3.2, 2.5, 5.1, 6.6])
|
1906
|
+
end
|
1907
|
+
assert_raises TypeError do
|
1908
|
+
Error3.new([3.2, 'blah'])
|
1909
|
+
end
|
1910
|
+
end
|
1911
|
+
|
1912
|
+
def test_assignment
|
1913
|
+
e3 = Error3.new([1.1, 2.2, 7.7])
|
1914
|
+
|
1915
|
+
assert_raises TypeError do
|
1916
|
+
e3[1] = 'blah'
|
1917
|
+
end
|
1918
|
+
assert_raises RuntimeError do
|
1919
|
+
e3 << 1.5
|
1920
|
+
end
|
1921
|
+
assert_raises RuntimeError do
|
1922
|
+
e3.clear
|
1923
|
+
end
|
1924
|
+
end
|
1925
|
+
|
1926
|
+
def test_relationships
|
1927
|
+
assert_kind_of Size3Type, Error3.new([1.1, 2.2, 3.4])
|
1928
|
+
assert_kind_of CError3, Error3.new([1.1, 2.2, 7.5])
|
1929
|
+
end
|
1930
|
+
|
1931
|
+
def test_xml
|
1932
|
+
e1 = Error3.new([1.1, 2.2, 3.3])
|
1933
|
+
assert_equal "<crd:Error3 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3</crd:Error3>", e1.to_xml.to_s
|
1934
|
+
|
1935
|
+
e2 = Error3.from_xml("<crd:Error3 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3</crd:Error3>")
|
1936
|
+
assert_equal e1, e2
|
1937
|
+
end
|
1938
|
+
end
|
1939
|
+
|
1940
|
+
class Error3MatrixTest < ::Test::Unit::TestCase
|
1941
|
+
def test_construction
|
1942
|
+
assert_nothing_raised do
|
1943
|
+
Error3Matrix.new([3.2, 1.1, 9.2, 5.5, 0.1, 6.6, 4.3, 6.0, 1.1])
|
1944
|
+
end
|
1945
|
+
|
1946
|
+
assert_raises RuntimeError do
|
1947
|
+
Error3Matrix.new([3.2])
|
1948
|
+
end
|
1949
|
+
assert_raises RuntimeError do
|
1950
|
+
Error3Matrix.new([3.2, 1.1, 9.2, 5.5, 0.1, 6.6, 4.3, 6.0, 1.1, 5.4])
|
1951
|
+
end
|
1952
|
+
assert_raises TypeError do
|
1953
|
+
Error3Matrix.new([3.2, 1.1, 9.2, 5.5, 'blah', 6.6, 4.3, 6.0, 1.1])
|
1954
|
+
end
|
1955
|
+
end
|
1956
|
+
|
1957
|
+
def test_assignment
|
1958
|
+
e3m = Error3Matrix.new([3.2, 1.1, 9.2, 5.5, 0.1, 6.6, 4.3, 6.0, 1.1])
|
1959
|
+
|
1960
|
+
assert_raises TypeError do
|
1961
|
+
e3m[1] = 'blah'
|
1962
|
+
end
|
1963
|
+
assert_raises RuntimeError do
|
1964
|
+
e3m << 1.5
|
1965
|
+
end
|
1966
|
+
assert_raises RuntimeError do
|
1967
|
+
e3m.clear
|
1968
|
+
end
|
1969
|
+
end
|
1970
|
+
|
1971
|
+
def test_relationships
|
1972
|
+
assert_kind_of Double9, Error3Matrix.new([3.2, 1.1, 9.2, 5.5, 0.1, 6.6, 4.3, 6.0, 1.1])
|
1973
|
+
assert_kind_of CError3, Error3Matrix.new([3.2, 1.1, 9.2, 5.5, 0.1, 6.6, 4.3, 6.0, 1.1])
|
1974
|
+
end
|
1975
|
+
|
1976
|
+
def test_xml
|
1977
|
+
m1 = Error3Matrix.new([1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9])
|
1978
|
+
assert_equal(
|
1979
|
+
"<crd:Error3Matrix xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9</crd:Error3Matrix>",
|
1980
|
+
m1.to_xml.to_s
|
1981
|
+
)
|
1982
|
+
|
1983
|
+
m2 = Error3Matrix.from_xml(
|
1984
|
+
"<crd:Error3Matrix xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9</crd:Error3Matrix>"
|
1985
|
+
)
|
1986
|
+
assert_equal m1, m2
|
1987
|
+
end
|
1988
|
+
end
|
1989
|
+
|
1990
|
+
class Error3RefTest < ::Test::Unit::TestCase
|
1991
|
+
def test_construction
|
1992
|
+
assert_nothing_raised do
|
1993
|
+
Error3Ref.new('ref1')
|
1994
|
+
end
|
1995
|
+
|
1996
|
+
assert_raises ArgumentError do
|
1997
|
+
Error3Ref.new(' ')
|
1998
|
+
end
|
1999
|
+
end
|
2000
|
+
|
2001
|
+
def test_accessors
|
2002
|
+
ref = Error3Ref.new('ref1')
|
2003
|
+
assert_equal 'ref1', ref.value
|
2004
|
+
|
2005
|
+
ref.value = 'ref2'
|
2006
|
+
assert_equal 'ref2', ref.value
|
2007
|
+
end
|
2008
|
+
|
2009
|
+
def test_relationships
|
2010
|
+
assert_kind_of CError3, Error3Ref.new('ref1')
|
2011
|
+
end
|
2012
|
+
|
2013
|
+
def test_xml
|
2014
|
+
r1 = Error3Ref.new('ref1')
|
2015
|
+
assert_equal "<crd:Error3Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:Error3Ref>", r1.to_xml.to_s
|
2016
|
+
|
2017
|
+
r2 = Error3Ref.from_xml("<crd:Error3Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:Error3Ref>")
|
2018
|
+
assert_equal r1, r2
|
2019
|
+
end
|
2020
|
+
end
|
2021
|
+
|
2022
|
+
class Resolution3Test < ::Test::Unit::TestCase
|
2023
|
+
def test_construction
|
2024
|
+
assert_nothing_raised do
|
2025
|
+
Resolution3.new([3.2, 1.1, 5.6])
|
2026
|
+
end
|
2027
|
+
|
2028
|
+
assert_raises RuntimeError do
|
2029
|
+
Resolution3.new([3.2])
|
2030
|
+
end
|
2031
|
+
assert_raises RuntimeError do
|
2032
|
+
Resolution3.new([3.2, 2.5, 5.1, 1.1])
|
2033
|
+
end
|
2034
|
+
assert_raises TypeError do
|
2035
|
+
Resolution3.new([3.2, 4.5, 'blah'])
|
2036
|
+
end
|
2037
|
+
end
|
2038
|
+
|
2039
|
+
def test_assignment
|
2040
|
+
r3 = Resolution3.new([1.1, 2.2, 0.4])
|
2041
|
+
|
2042
|
+
assert_raises TypeError do
|
2043
|
+
r3[1] = 'blah'
|
2044
|
+
end
|
2045
|
+
assert_raises RuntimeError do
|
2046
|
+
r3 << 1.5
|
2047
|
+
end
|
2048
|
+
assert_raises RuntimeError do
|
2049
|
+
r3.clear
|
2050
|
+
end
|
2051
|
+
end
|
2052
|
+
|
2053
|
+
def test_relationships
|
2054
|
+
assert_kind_of Size3Type, Resolution3.new([1.1, 2.2, 0.1])
|
2055
|
+
assert_kind_of CResolution3, Resolution3.new([1.1, 2.2, 0.1])
|
2056
|
+
end
|
2057
|
+
|
2058
|
+
def test_xml
|
2059
|
+
r1 = Resolution3.new([1.1, 2.2, 3.3])
|
2060
|
+
assert_equal "<crd:Resolution3 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3</crd:Resolution3>", r1.to_xml.to_s
|
2061
|
+
|
2062
|
+
r2 = Resolution3.from_xml("<crd:Resolution3 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3</crd:Resolution3>")
|
2063
|
+
assert_equal r1, r2
|
2064
|
+
end
|
2065
|
+
end
|
2066
|
+
|
2067
|
+
class Resolution3RefTest < ::Test::Unit::TestCase
|
2068
|
+
def test_construction
|
2069
|
+
assert_nothing_raised do
|
2070
|
+
Resolution3Ref.new('ref1')
|
2071
|
+
end
|
2072
|
+
|
2073
|
+
assert_raises ArgumentError do
|
2074
|
+
Resolution3Ref.new(' ')
|
2075
|
+
end
|
2076
|
+
end
|
2077
|
+
|
2078
|
+
def test_accessors
|
2079
|
+
ref = Resolution3Ref.new('ref1')
|
2080
|
+
assert_equal 'ref1', ref.value
|
2081
|
+
|
2082
|
+
ref.value = 'ref2'
|
2083
|
+
assert_equal 'ref2', ref.value
|
2084
|
+
end
|
2085
|
+
|
2086
|
+
def test_relationships
|
2087
|
+
assert_kind_of CResolution3, Resolution3Ref.new('ref1')
|
2088
|
+
end
|
2089
|
+
|
2090
|
+
def test_xml
|
2091
|
+
r1 = Resolution3Ref.new('ref1')
|
2092
|
+
assert_equal "<crd:Resolution3Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:Resolution3Ref>", r1.to_xml.to_s
|
2093
|
+
|
2094
|
+
r2 = Resolution3Ref.from_xml("<crd:Resolution3Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:Resolution3Ref>")
|
2095
|
+
assert_equal r1, r2
|
2096
|
+
end
|
2097
|
+
end
|
2098
|
+
|
2099
|
+
class Size3Test < ::Test::Unit::TestCase
|
2100
|
+
def test_construction
|
2101
|
+
assert_nothing_raised do
|
2102
|
+
Size3.new([3.2, 1.1, 5.1])
|
2103
|
+
end
|
2104
|
+
|
2105
|
+
assert_raises RuntimeError do
|
2106
|
+
Size3.new([3.2])
|
2107
|
+
end
|
2108
|
+
assert_raises RuntimeError do
|
2109
|
+
Size3.new([3.2, 2.5, 5.1, 1.1])
|
2110
|
+
end
|
2111
|
+
assert_raises TypeError do
|
2112
|
+
Size3.new([3.2, 'blah', 0.1])
|
2113
|
+
end
|
2114
|
+
end
|
2115
|
+
|
2116
|
+
def test_assignment
|
2117
|
+
s3 = Size3.new([1.1, 2.2, 3.3])
|
2118
|
+
|
2119
|
+
assert_raises TypeError do
|
2120
|
+
s3[1] = 'blah'
|
2121
|
+
end
|
2122
|
+
assert_raises RuntimeError do
|
2123
|
+
s3 << 1.5
|
2124
|
+
end
|
2125
|
+
assert_raises RuntimeError do
|
2126
|
+
s3.clear
|
2127
|
+
end
|
2128
|
+
end
|
2129
|
+
|
2130
|
+
def test_relationships
|
2131
|
+
assert_kind_of Size3Type, Size3.new([1.1, 2.2, 3.3])
|
2132
|
+
assert_kind_of CSize3, Size3.new([1.1, 2.2, 3.3])
|
2133
|
+
end
|
2134
|
+
|
2135
|
+
def test_xml
|
2136
|
+
s1 = Size3.new([1.1, 2.2, 3.3])
|
2137
|
+
assert_equal "<crd:Size3 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3</crd:Size3>", s1.to_xml.to_s
|
2138
|
+
|
2139
|
+
s2 = Size3.from_xml("<crd:Size3 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3</crd:Size3>")
|
2140
|
+
assert_equal s1, s2
|
2141
|
+
end
|
2142
|
+
end
|
2143
|
+
|
2144
|
+
class Size3MatrixTest < ::Test::Unit::TestCase
|
2145
|
+
def test_construction
|
2146
|
+
assert_nothing_raised do
|
2147
|
+
Size3Matrix.new([3.2, 1.1, 9.2, 5.5, 0.1, 6.6, 4.3, 6.0, 1.1])
|
2148
|
+
end
|
2149
|
+
|
2150
|
+
assert_raises RuntimeError do
|
2151
|
+
Size3Matrix.new([3.2])
|
2152
|
+
end
|
2153
|
+
assert_raises RuntimeError do
|
2154
|
+
Size3Matrix.new([3.2, 1.1, 9.2, 5.5, 0.1, 6.6, 4.3, 6.0, 1.1, 5.4])
|
2155
|
+
end
|
2156
|
+
assert_raises TypeError do
|
2157
|
+
Size3Matrix.new([3.2, 1.1, 9.2, 5.5, 'blah', 6.6, 4.3, 6.0, 1.1])
|
2158
|
+
end
|
2159
|
+
end
|
2160
|
+
|
2161
|
+
def test_assignment
|
2162
|
+
s3m = Size3Matrix.new([3.2, 1.1, 9.2, 5.5, 0.1, 6.6, 4.3, 6.0, 1.1])
|
2163
|
+
|
2164
|
+
assert_raises TypeError do
|
2165
|
+
s3m[1] = 'blah'
|
2166
|
+
end
|
2167
|
+
assert_raises RuntimeError do
|
2168
|
+
s3m << 1.5
|
2169
|
+
end
|
2170
|
+
assert_raises RuntimeError do
|
2171
|
+
s3m.clear
|
2172
|
+
end
|
2173
|
+
end
|
2174
|
+
|
2175
|
+
def test_relationships
|
2176
|
+
assert_kind_of Double9, Size3Matrix.new([3.2, 1.1, 9.2, 5.5, 0.1, 6.6, 4.3, 6.0, 1.1])
|
2177
|
+
assert_kind_of CSize3, Size3Matrix.new([3.2, 1.1, 9.2, 5.5, 0.1, 6.6, 4.3, 6.0, 1.1])
|
2178
|
+
end
|
2179
|
+
|
2180
|
+
def test_xml
|
2181
|
+
m1 = Size3Matrix.new([1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9])
|
2182
|
+
assert_equal(
|
2183
|
+
"<crd:Size3Matrix xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9</crd:Size3Matrix>",
|
2184
|
+
m1.to_xml.to_s
|
2185
|
+
)
|
2186
|
+
|
2187
|
+
m2 = Size3Matrix.from_xml(
|
2188
|
+
"<crd:Size3Matrix xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9</crd:Size3Matrix>"
|
2189
|
+
)
|
2190
|
+
assert_equal m1, m2
|
2191
|
+
end
|
2192
|
+
end
|
2193
|
+
|
2194
|
+
class Size3RefTest < ::Test::Unit::TestCase
|
2195
|
+
def test_construction
|
2196
|
+
assert_nothing_raised do
|
2197
|
+
Size3Ref.new('ref1')
|
2198
|
+
end
|
2199
|
+
|
2200
|
+
assert_raises ArgumentError do
|
2201
|
+
Size3Ref.new(' ')
|
2202
|
+
end
|
2203
|
+
end
|
2204
|
+
|
2205
|
+
def test_accessors
|
2206
|
+
ref = Size3Ref.new('ref1')
|
2207
|
+
assert_equal 'ref1', ref.value
|
2208
|
+
|
2209
|
+
ref.value = 'ref2'
|
2210
|
+
assert_equal 'ref2', ref.value
|
2211
|
+
end
|
2212
|
+
|
2213
|
+
def test_relationships
|
2214
|
+
assert_kind_of CSize3, Size3Ref.new('ref1')
|
2215
|
+
end
|
2216
|
+
|
2217
|
+
def test_xml
|
2218
|
+
r1 = Size3Ref.new('ref1')
|
2219
|
+
assert_equal "<crd:Size3Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:Size3Ref>", r1.to_xml.to_s
|
2220
|
+
|
2221
|
+
r2 = Size3Ref.from_xml("<crd:Size3Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:Size3Ref>")
|
2222
|
+
assert_equal r1, r2
|
2223
|
+
end
|
2224
|
+
end
|
2225
|
+
|
2226
|
+
class PixSize3Test < ::Test::Unit::TestCase
|
2227
|
+
def test_construction
|
2228
|
+
assert_nothing_raised do
|
2229
|
+
PixSize3.new([3.2, 1.1, 5.1])
|
2230
|
+
end
|
2231
|
+
|
2232
|
+
assert_raises RuntimeError do
|
2233
|
+
PixSize3.new([3.2])
|
2234
|
+
end
|
2235
|
+
assert_raises RuntimeError do
|
2236
|
+
PixSize3.new([3.2, 2.5, 5.1, 0.1])
|
2237
|
+
end
|
2238
|
+
assert_raises TypeError do
|
2239
|
+
PixSize3.new([3.2, 1.1, 'blah'])
|
2240
|
+
end
|
2241
|
+
end
|
2242
|
+
|
2243
|
+
def test_assignment
|
2244
|
+
p3 = PixSize3.new([1.1, 2.2, 0.5])
|
2245
|
+
|
2246
|
+
assert_raises TypeError do
|
2247
|
+
p3[1] = 'blah'
|
2248
|
+
end
|
2249
|
+
assert_raises RuntimeError do
|
2250
|
+
p3 << 1.5
|
2251
|
+
end
|
2252
|
+
assert_raises RuntimeError do
|
2253
|
+
p3.clear
|
2254
|
+
end
|
2255
|
+
end
|
2256
|
+
|
2257
|
+
def test_relationships
|
2258
|
+
assert_kind_of Size3Type, PixSize3.new([1.1, 2.2, 0.1])
|
2259
|
+
assert_kind_of CPixSize3, PixSize3.new([1.1, 2.2, 0.1])
|
2260
|
+
end
|
2261
|
+
|
2262
|
+
def test_xml
|
2263
|
+
p1 = PixSize3.new([1.1, 2.2, 3.3])
|
2264
|
+
assert_equal "<crd:PixSize3 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3</crd:PixSize3>", p1.to_xml.to_s
|
2265
|
+
|
2266
|
+
p2 = PixSize3.from_xml("<crd:PixSize3 xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3</crd:PixSize3>")
|
2267
|
+
assert_equal p1, p2
|
2268
|
+
end
|
2269
|
+
end
|
2270
|
+
|
2271
|
+
class PixSize3MatrixTest < ::Test::Unit::TestCase
|
2272
|
+
def test_construction
|
2273
|
+
assert_nothing_raised do
|
2274
|
+
PixSize3Matrix.new([3.2, 1.1, 9.2, 5.5, 0.1, 6.6, 4.3, 6.0, 1.1])
|
2275
|
+
end
|
2276
|
+
|
2277
|
+
assert_raises RuntimeError do
|
2278
|
+
PixSize3Matrix.new([3.2])
|
2279
|
+
end
|
2280
|
+
assert_raises RuntimeError do
|
2281
|
+
PixSize3Matrix.new([3.2, 1.1, 9.2, 5.5, 0.1, 6.6, 4.3, 6.0, 1.1, 5.4])
|
2282
|
+
end
|
2283
|
+
assert_raises TypeError do
|
2284
|
+
PixSize3Matrix.new([3.2, 1.1, 9.2, 5.5, 'blah', 6.6, 4.3, 6.0, 1.1])
|
2285
|
+
end
|
2286
|
+
end
|
2287
|
+
|
2288
|
+
def test_assignment
|
2289
|
+
p3m = PixSize3Matrix.new([3.2, 1.1, 9.2, 5.5, 0.1, 6.6, 4.3, 6.0, 1.1])
|
2290
|
+
|
2291
|
+
assert_raises TypeError do
|
2292
|
+
p3m[1] = 'blah'
|
2293
|
+
end
|
2294
|
+
assert_raises RuntimeError do
|
2295
|
+
p3m << 1.5
|
2296
|
+
end
|
2297
|
+
assert_raises RuntimeError do
|
2298
|
+
p3m.clear
|
2299
|
+
end
|
2300
|
+
end
|
2301
|
+
|
2302
|
+
def test_relationships
|
2303
|
+
assert_kind_of Double9, PixSize3Matrix.new([3.2, 1.1, 9.2, 5.5, 0.1, 6.6, 4.3, 6.0, 1.1])
|
2304
|
+
assert_kind_of CPixSize3, PixSize3Matrix.new([3.2, 1.1, 9.2, 5.5, 0.1, 6.6, 4.3, 6.0, 1.1])
|
2305
|
+
end
|
2306
|
+
|
2307
|
+
def test_xml
|
2308
|
+
m1 = PixSize3Matrix.new([1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9])
|
2309
|
+
assert_equal(
|
2310
|
+
"<crd:PixSize3Matrix xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9</crd:PixSize3Matrix>",
|
2311
|
+
m1.to_xml.to_s
|
2312
|
+
)
|
2313
|
+
|
2314
|
+
m2 = PixSize3Matrix.from_xml(
|
2315
|
+
"<crd:PixSize3Matrix xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9</crd:PixSize3Matrix>"
|
2316
|
+
)
|
2317
|
+
assert_equal m1, m2
|
2318
|
+
end
|
2319
|
+
end
|
2320
|
+
|
2321
|
+
class PixSize3RefTest < ::Test::Unit::TestCase
|
2322
|
+
def test_construction
|
2323
|
+
assert_nothing_raised do
|
2324
|
+
PixSize3Ref.new('ref1')
|
2325
|
+
end
|
2326
|
+
|
2327
|
+
assert_raises ArgumentError do
|
2328
|
+
PixSize3Ref.new(' ')
|
2329
|
+
end
|
2330
|
+
end
|
2331
|
+
|
2332
|
+
def test_accessors
|
2333
|
+
ref = PixSize3Ref.new('ref1')
|
2334
|
+
assert_equal 'ref1', ref.value
|
2335
|
+
|
2336
|
+
ref.value = 'ref2'
|
2337
|
+
assert_equal 'ref2', ref.value
|
2338
|
+
end
|
2339
|
+
|
2340
|
+
def test_relationships
|
2341
|
+
assert_kind_of CPixSize3, PixSize3Ref.new('ref1')
|
2342
|
+
end
|
2343
|
+
|
2344
|
+
def test_xml
|
2345
|
+
r1 = PixSize3Ref.new('ref1')
|
2346
|
+
assert_equal "<crd:PixSize3Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:PixSize3Ref>", r1.to_xml.to_s
|
2347
|
+
|
2348
|
+
r2 = PixSize3Ref.from_xml("<crd:PixSize3Ref xmlns:crd='http://www.ivoa.net/xml/STC/STCcoords/v1.10'>ref1</crd:PixSize3Ref>")
|
2349
|
+
assert_equal r1, r2
|
2350
|
+
end
|
2351
|
+
end
|
2352
|
+
|
2353
|
+
class Vector3CoordinateTest < ::Test::Unit::TestCase
|
2354
|
+
def test_construction
|
2355
|
+
assert_nothing_raised do
|
2356
|
+
Vector3Coordinate.new(
|
2357
|
+
:name => 'My Coordinate',
|
2358
|
+
:value => Value3.new([123.4, 345.6, 567.8]),
|
2359
|
+
:error => [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 4.4])],
|
2360
|
+
:resolution => [Resolution3.new([0.1, 0.2, 0.3]), Resolution3.new([0.5, 0.6, 0.7])],
|
2361
|
+
:size => [Size3.new([10.1, 10.2, 10.3]), Size3.new([8.7, 8.8, 8.9])],
|
2362
|
+
:pix_size => [PixSize3.new([1.9, 2.0, 2.1]), PixSize3.new([2.2, 3.3, 4.4])]
|
2363
|
+
)
|
2364
|
+
|
2365
|
+
Vector3Coordinate.new(
|
2366
|
+
:value => Value3.new([123.4, 345.6, 567.8]),
|
2367
|
+
:error => [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 4.4])],
|
2368
|
+
:resolution => [Resolution3.new([0.1, 0.2, 0.3]), Resolution3.new([0.5, 0.6, 0.7])],
|
2369
|
+
:size => [Size3.new([10.1, 10.2, 10.3]), Size3.new([8.7, 8.8, 8.9])],
|
2370
|
+
:pix_size => [PixSize3.new([1.9, 2.0, 2.1]), PixSize3.new([2.2, 3.3, 4.4])]
|
2371
|
+
)
|
2372
|
+
|
2373
|
+
Vector3Coordinate.new(
|
2374
|
+
:value => Value3.new([123.4, 345.6, 567.8]),
|
2375
|
+
:error => [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 4.4])]
|
2376
|
+
)
|
2377
|
+
|
2378
|
+
Vector3Coordinate.new()
|
2379
|
+
end
|
2380
|
+
|
2381
|
+
vc = Vector3Coordinate.new
|
2382
|
+
assert_raises TypeError do
|
2383
|
+
vc.value = Error.new(10.2)
|
2384
|
+
end
|
2385
|
+
|
2386
|
+
assert_raises TypeError do
|
2387
|
+
vc.error = Value.new(123.4)
|
2388
|
+
end
|
2389
|
+
assert_raises ArgumentError do
|
2390
|
+
vc.error = [Error3.new([123.4, 5.1, 2.2]), Error3.new([123.4, 5.1, 2.2]), Error3.new([123.4, 5.1, 2.2])]
|
2391
|
+
end
|
2392
|
+
|
2393
|
+
assert_raises TypeError do
|
2394
|
+
vc.resolution = Error.new(10.2)
|
2395
|
+
end
|
2396
|
+
assert_raises ArgumentError do
|
2397
|
+
vc.resolution = [Resolution3.new([123.4, 123.5, 1.1]), Resolution3.new([123.4, 123.5, 1.1]), Resolution3.new([123.4, 123.5, 1.1])]
|
2398
|
+
end
|
2399
|
+
|
2400
|
+
assert_raises TypeError do
|
2401
|
+
vc.size = Error.new(10.2)
|
2402
|
+
end
|
2403
|
+
assert_raises ArgumentError do
|
2404
|
+
vc.size = [Size3.new([123.4, 123.4, 123.4]), Size3.new([123.4, 123.4, 123.4]), Size3.new([123.4, 123.4, 123.4])]
|
2405
|
+
end
|
2406
|
+
|
2407
|
+
assert_raises TypeError do
|
2408
|
+
vc.pix_size = Error.new(10.2)
|
2409
|
+
end
|
2410
|
+
assert_raises ArgumentError do
|
2411
|
+
vc.pix_size = [PixSize3.new([123.4, 123.4, 123.4]), PixSize3.new([123.4, 123.4, 123.4]), PixSize3.new([123.4, 123.4, 123.4])]
|
2412
|
+
end
|
2413
|
+
end
|
2414
|
+
|
2415
|
+
def test_accessors
|
2416
|
+
vc = Vector3Coordinate.new(
|
2417
|
+
:name => 'MyCoordinate',
|
2418
|
+
:value => Value3.new([123.4, 345.6, 789.0]),
|
2419
|
+
:error => [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 2.2])],
|
2420
|
+
:resolution => [Resolution3.new([0.1, 0.2, 0.5]), Resolution3.new([0.5, 0.6, 0.5])],
|
2421
|
+
:size => [Size3.new([10.1, 10.2, 1.1]), Size3.new([8.7, 8.8, 1.1])],
|
2422
|
+
:pix_size => [PixSize3.new([1.9, 2.0, 3.0]), PixSize3.new([2.2, 3.3, 4.1])]
|
2423
|
+
)
|
2424
|
+
|
2425
|
+
assert_equal 'MyCoordinate', vc.name
|
2426
|
+
assert_equal Value3.new([123.4, 345.6, 789.0]), vc.value
|
2427
|
+
assert_equal [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 2.2])], vc.error
|
2428
|
+
assert_equal [Resolution3.new([0.1, 0.2, 0.5]), Resolution3.new([0.5, 0.6, 0.5])], vc.resolution
|
2429
|
+
assert_equal [Size3.new([10.1, 10.2, 1.1]), Size3.new([8.7, 8.8, 1.1])], vc.size
|
2430
|
+
assert_equal [PixSize3.new([1.9, 2.0, 3.0]), PixSize3.new([2.2, 3.3, 4.1])], vc.pix_size
|
2431
|
+
|
2432
|
+
vc.name = 'MyOtherCoordinate'
|
2433
|
+
assert_equal 'MyOtherCoordinate', vc.name
|
2434
|
+
vc.error = Error3.new([3.3, 4.4, 5.5])
|
2435
|
+
assert_equal [Error3.new([3.3, 4.4, 5.5])], vc.error
|
2436
|
+
vc.resolution = Resolution3.new([0.6, 0.7, 0.8])
|
2437
|
+
assert_equal [Resolution3.new([0.6, 0.7, 0.8])], vc.resolution
|
2438
|
+
vc.size = Size3.new([5.1, 5.2, 5.3])
|
2439
|
+
assert_equal [Size3.new([5.1, 5.2, 5.3])], vc.size
|
2440
|
+
vc.pix_size = PixSize3.new([3.1, 3.2, 3.3])
|
2441
|
+
assert_equal [PixSize3.new([3.1, 3.2, 3.3])], vc.pix_size
|
2442
|
+
end
|
2443
|
+
|
2444
|
+
def test_relationships
|
2445
|
+
assert_kind_of CoordinateType, Vector3Coordinate.new
|
2446
|
+
end
|
2447
|
+
end
|
2448
|
+
|
2449
|
+
class ScalarCoordinateTest < ::Test::Unit::TestCase
|
2450
|
+
def test_unit
|
2451
|
+
sc = ScalarCoordinate.new(:unit => 'mm')
|
2452
|
+
assert_equal 'mm', sc.unit
|
2453
|
+
|
2454
|
+
sc.unit = 'cm'
|
2455
|
+
assert_equal 'cm', sc.unit
|
2456
|
+
|
2457
|
+
assert_kind_of Coordinate, sc
|
2458
|
+
end
|
2459
|
+
|
2460
|
+
def test_xml
|
2461
|
+
sc1 = ScalarCoordinate.new(
|
2462
|
+
:name => 'myScalarCoordinate',
|
2463
|
+
:unit => 'm',
|
2464
|
+
:value => Value.new(1.1),
|
2465
|
+
:error => [ErrorRef.new('error_ref1'), Error.new(0.1)],
|
2466
|
+
:resolution => [ResolutionRef.new('pix_size_ref1')],
|
2467
|
+
:size => [Size.new(10.0)],
|
2468
|
+
:pix_size => [PixSizeRef.new('pix_size_ref1')]
|
2469
|
+
)
|
2470
|
+
|
2471
|
+
sc2 = ScalarCoordinate.from_xml(sc1.to_xml)
|
2472
|
+
assert_equal sc1, sc2
|
2473
|
+
end
|
2474
|
+
end
|
2475
|
+
|
2476
|
+
class CoordinateTypeTest < ::Test::Unit::TestCase
|
2477
|
+
def test_constructor
|
2478
|
+
assert_nothing_raised do
|
2479
|
+
c = CoordinateType.new('coord1')
|
2480
|
+
assert_equal 'coord1', c.name
|
2481
|
+
end
|
2482
|
+
end
|
2483
|
+
|
2484
|
+
def test_accessors
|
2485
|
+
c = CoordinateType.new('coord1')
|
2486
|
+
|
2487
|
+
assert_equal 'coord1', c.name
|
2488
|
+
c.name = 'coord2'
|
2489
|
+
assert_equal 'coord2', c.name
|
2490
|
+
end
|
2491
|
+
end
|
2492
|
+
|
2493
|
+
class StringCoordinateTest < ::Test::Unit::TestCase
|
2494
|
+
def test_constructors
|
2495
|
+
assert_nothing_raised do
|
2496
|
+
StringCoordinate.new(:name => 'coord1', :unit => 'mm', :value => 'a bunch of')
|
2497
|
+
StringCoordinate.new(:name => 'coord1', :value => 'a bunch of')
|
2498
|
+
end
|
2499
|
+
end
|
2500
|
+
|
2501
|
+
def test_accessors
|
2502
|
+
sc = StringCoordinate.new(:name => 'coord1', :unit => 'mm', :value => 'a bunch of')
|
2503
|
+
assert_equal 'coord1', sc.name
|
2504
|
+
assert_equal 'mm', sc.unit
|
2505
|
+
assert_equal 'a bunch of', sc.value
|
2506
|
+
|
2507
|
+
sc.name = 'coord2'
|
2508
|
+
assert_equal 'coord2', sc.name
|
2509
|
+
sc.unit = 'cm'
|
2510
|
+
assert_equal 'cm', sc.unit
|
2511
|
+
sc.value = 'some'
|
2512
|
+
assert_equal 'some', sc.value
|
2513
|
+
end
|
2514
|
+
|
2515
|
+
def test_relationships
|
2516
|
+
sc = StringCoordinate.new(:name => 'coord1', :value => 'a bunch of')
|
2517
|
+
assert_kind_of CoordinateType, sc
|
2518
|
+
assert_kind_of Coordinate, sc
|
2519
|
+
end
|
2520
|
+
|
2521
|
+
def test_xml
|
2522
|
+
sc1 = StringCoordinate.new(
|
2523
|
+
:unit => 'm',
|
2524
|
+
:name => 'myCoordinate',
|
2525
|
+
:value => 'blah'
|
2526
|
+
)
|
2527
|
+
|
2528
|
+
sc2 = StringCoordinate.from_xml(sc1.to_xml)
|
2529
|
+
assert_equal sc1, sc2
|
2530
|
+
end
|
2531
|
+
end
|
2532
|
+
|
2533
|
+
class PixelCoordinateTest < ::Test::Unit::TestCase
|
2534
|
+
def test_constructors
|
2535
|
+
assert_nothing_raised do
|
2536
|
+
PixelCoordinate.new(:name => 'coord1', :value => 10.1)
|
2537
|
+
end
|
2538
|
+
end
|
2539
|
+
|
2540
|
+
def test_accessors
|
2541
|
+
pc = PixelCoordinate.new(:name => 'coord1', :value => 10.1)
|
2542
|
+
assert_equal 'coord1', pc.name
|
2543
|
+
assert_equal 10.1, pc.value
|
2544
|
+
|
2545
|
+
pc.name = 'coord2'
|
2546
|
+
assert_equal 'coord2', pc.name
|
2547
|
+
pc.value = 1.1
|
2548
|
+
assert_equal 1.1, pc.value
|
2549
|
+
end
|
2550
|
+
|
2551
|
+
def test_relationships
|
2552
|
+
pc = PixelCoordinate.new(:name => 'coord1', :value => 10.1)
|
2553
|
+
assert_kind_of CoordinateType, pc
|
2554
|
+
assert_kind_of Coordinate, pc
|
2555
|
+
end
|
2556
|
+
|
2557
|
+
def test_xml
|
2558
|
+
pc1 = PixelCoordinate.new(
|
2559
|
+
:name => 'myCoordinate',
|
2560
|
+
:value => 100.1
|
2561
|
+
)
|
2562
|
+
|
2563
|
+
pc2 = PixelCoordinate.from_xml(pc1.to_xml)
|
2564
|
+
assert_equal pc1, pc2
|
2565
|
+
end
|
2566
|
+
end
|
2567
|
+
|
2568
|
+
class Position1DTest < ::Test::Unit::TestCase
|
2569
|
+
def test_construction
|
2570
|
+
assert_nothing_raised do
|
2571
|
+
Position1D.new(
|
2572
|
+
:value => Value.new(123.4),
|
2573
|
+
:error => [Error.new(1.1), Error.new(2.2)],
|
2574
|
+
:resolution => [Resolution.new(0.1), Resolution.new(0.5)],
|
2575
|
+
:size => [Size.new(10.1), Size.new(8.7)],
|
2576
|
+
:pix_size => [PixSize.new(1.9), PixSize.new(2.2)],
|
2577
|
+
:unit => PosUnit.new('m')
|
2578
|
+
)
|
2579
|
+
|
2580
|
+
Position1D.new(
|
2581
|
+
:value => Value.new(123.4),
|
2582
|
+
:error => Error.new(1.1),
|
2583
|
+
:resolution => Resolution.new(0.1),
|
2584
|
+
:size => Size.new(10.1),
|
2585
|
+
:pix_size => PixSize.new(1.9),
|
2586
|
+
:unit => PosUnit.new('m')
|
2587
|
+
)
|
2588
|
+
|
2589
|
+
Position1D.new(
|
2590
|
+
:value => Value.new(123.4),
|
2591
|
+
:error => Error.new(1.1),
|
2592
|
+
:unit => PosUnit.new('m')
|
2593
|
+
)
|
2594
|
+
|
2595
|
+
Position1D.new(:unit => PosUnit.new('m'))
|
2596
|
+
end
|
2597
|
+
|
2598
|
+
assert_raises ArgumentError do
|
2599
|
+
Position1D.new
|
2600
|
+
end
|
2601
|
+
|
2602
|
+
p = Position1D.new(:unit => PosUnit.new('lyr'))
|
2603
|
+
assert_raises TypeError do
|
2604
|
+
p.value = Error.new(10.2)
|
2605
|
+
end
|
2606
|
+
|
2607
|
+
assert_raises TypeError do
|
2608
|
+
p.error = Value.new(123.4)
|
2609
|
+
end
|
2610
|
+
assert_raises ArgumentError do
|
2611
|
+
p.error = [Error.new(123.4), Error.new(123.4), Error.new(123.4)]
|
2612
|
+
end
|
2613
|
+
|
2614
|
+
assert_raises TypeError do
|
2615
|
+
p.resolution = Error.new(10.2)
|
2616
|
+
end
|
2617
|
+
assert_raises ArgumentError do
|
2618
|
+
p.resolution = [Resolution.new(123.4), Resolution.new(123.4), Resolution.new(123.4)]
|
2619
|
+
end
|
2620
|
+
|
2621
|
+
assert_raises TypeError do
|
2622
|
+
p.size = Error.new(10.2)
|
2623
|
+
end
|
2624
|
+
assert_raises ArgumentError do
|
2625
|
+
p.size = [Size.new(123.4), Size.new(123.4), Size.new(123.4)]
|
2626
|
+
end
|
2627
|
+
|
2628
|
+
assert_raises TypeError do
|
2629
|
+
p.pix_size = Error.new(10.2)
|
2630
|
+
end
|
2631
|
+
assert_raises ArgumentError do
|
2632
|
+
p.pix_size = [PixSize.new(123.4), PixSize.new(123.4), PixSize.new(123.4)]
|
2633
|
+
end
|
2634
|
+
end
|
2635
|
+
|
2636
|
+
def test_accessors
|
2637
|
+
p = Position1D.new(
|
2638
|
+
:name => 'MyCoordinate',
|
2639
|
+
:value => Value.new(123.4),
|
2640
|
+
:error => [Error.new(1.1), Error.new(2.2)],
|
2641
|
+
:resolution => [Resolution.new(0.1), Resolution.new(0.2)],
|
2642
|
+
:size => [Size.new(10.1), Size.new(8.7)],
|
2643
|
+
:pix_size => [PixSize.new(1.9), PixSize.new(2.2)],
|
2644
|
+
:unit => PosUnit.new('m')
|
2645
|
+
)
|
2646
|
+
|
2647
|
+
assert_equal 'MyCoordinate', p.name
|
2648
|
+
assert_equal Value.new(123.4), p.value
|
2649
|
+
assert_equal [Error.new(1.1), Error.new(2.2)], p.error
|
2650
|
+
assert_equal [Resolution.new(0.1), Resolution.new(0.2)], p.resolution
|
2651
|
+
assert_equal [Size.new(10.1), Size.new(8.7)], p.size
|
2652
|
+
assert_equal [PixSize.new(1.9), PixSize.new(2.2)], p.pix_size
|
2653
|
+
assert_equal PosUnit.new('m'), p.unit
|
2654
|
+
|
2655
|
+
p.name = 'MyOtherCoordinate'
|
2656
|
+
assert_equal 'MyOtherCoordinate', p.name
|
2657
|
+
p.error = Error.new(3.3)
|
2658
|
+
assert_equal [Error.new(3.3)], p.error
|
2659
|
+
p.resolution = Resolution.new(0.6)
|
2660
|
+
assert_equal [Resolution.new(0.6)], p.resolution
|
2661
|
+
p.size = Size.new(5.1)
|
2662
|
+
assert_equal [Size.new(5.1)], p.size
|
2663
|
+
p.pix_size = PixSize.new(3.1)
|
2664
|
+
assert_equal [PixSize.new(3.1)], p.pix_size
|
2665
|
+
p.unit = PosUnit.new('m')
|
2666
|
+
assert_equal PosUnit.new('m'), p.unit
|
2667
|
+
end
|
2668
|
+
|
2669
|
+
def test_relationships
|
2670
|
+
p = Position1D.new(:unit => PosUnit.new('m'))
|
2671
|
+
assert_kind_of ScalarCoordinateType, p
|
2672
|
+
assert_kind_of Position, p
|
2673
|
+
end
|
2674
|
+
|
2675
|
+
def test_xml
|
2676
|
+
p1 = Position1D.new(
|
2677
|
+
:name => 'MyCoordinate',
|
2678
|
+
:value => Value.new(123.4),
|
2679
|
+
:error => [Error.new(1.1), Error.new(2.2)],
|
2680
|
+
:resolution => [Resolution.new(0.1), Resolution.new(0.2)],
|
2681
|
+
:size => [Size.new(10.1), Size.new(8.7)],
|
2682
|
+
:pix_size => [PixSize.new(1.9), PixSize.new(2.2)],
|
2683
|
+
:unit => PosUnit.new('m')
|
2684
|
+
)
|
2685
|
+
|
2686
|
+
p2 = Position1D.from_xml(p1.to_xml)
|
2687
|
+
assert_equal p1, p2
|
2688
|
+
end
|
2689
|
+
end
|
2690
|
+
|
2691
|
+
class Position2DTest < ::Test::Unit::TestCase
|
2692
|
+
def test_construction
|
2693
|
+
assert_nothing_raised do
|
2694
|
+
Position2D.new(
|
2695
|
+
:name => 'My Coordinate',
|
2696
|
+
:value => Value2.new([123.4, 345.6]),
|
2697
|
+
:error => [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])],
|
2698
|
+
:resolution => [Resolution2.new([0.1, 0.2]), Resolution2.new([0.5, 0.6])],
|
2699
|
+
:size => [Size2.new([10.1, 10.2]), Size2.new([8.7, 8.8])],
|
2700
|
+
:pix_size => [PixSize2.new([1.9, 2.0]), PixSize2.new([2.2, 3.3])],
|
2701
|
+
:unit => PosUnit.new('m')
|
2702
|
+
)
|
2703
|
+
|
2704
|
+
Position2D.new(
|
2705
|
+
:value => Value2.new([123.4, 345.6]),
|
2706
|
+
:error => [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])],
|
2707
|
+
:resolution => [Resolution2.new([0.1, 0.2]), Resolution2.new([0.5, 0.6])],
|
2708
|
+
:size => [Size2.new([10.1, 10.2]), Size2.new([8.7, 8.8])],
|
2709
|
+
:pix_size => [PixSize2.new([1.9, 2.0]), PixSize2.new([2.2, 3.3])],
|
2710
|
+
:unit => PosUnit.new('m')
|
2711
|
+
)
|
2712
|
+
|
2713
|
+
Position2D.new(
|
2714
|
+
:value => Value2.new([123.4, 345.6]),
|
2715
|
+
:error => [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])],
|
2716
|
+
:unit => PosUnit.new('m')
|
2717
|
+
)
|
2718
|
+
|
2719
|
+
Position2D.new(:unit => PosUnit.new('m'))
|
2720
|
+
end
|
2721
|
+
|
2722
|
+
assert_raises ArgumentError do
|
2723
|
+
Position2D.new
|
2724
|
+
end
|
2725
|
+
|
2726
|
+
p = Position2D.new(:unit => PosUnit.new('m'))
|
2727
|
+
assert_raises TypeError do
|
2728
|
+
p.value = Error.new(10.2)
|
2729
|
+
end
|
2730
|
+
|
2731
|
+
assert_raises TypeError do
|
2732
|
+
p.error = Value.new(123.4)
|
2733
|
+
end
|
2734
|
+
assert_raises ArgumentError do
|
2735
|
+
p.error = [Error2.new([123.4, 5.1]), Error2.new([123.4, 5.1]), Error2.new([123.4, 5.1])]
|
2736
|
+
end
|
2737
|
+
|
2738
|
+
assert_raises TypeError do
|
2739
|
+
p.resolution = Error.new(10.2)
|
2740
|
+
end
|
2741
|
+
assert_raises ArgumentError do
|
2742
|
+
p.resolution = [Resolution2.new([123.4, 123.5]), Resolution2.new([123.4, 123.5]), Resolution2.new([123.4, 123.5])]
|
2743
|
+
end
|
2744
|
+
|
2745
|
+
assert_raises TypeError do
|
2746
|
+
p.size = Error.new(10.2)
|
2747
|
+
end
|
2748
|
+
assert_raises ArgumentError do
|
2749
|
+
p.size = [Size2.new([123.4, 123.4]), Size2.new([123.4, 123.4]), Size2.new([123.4, 123.4])]
|
2750
|
+
end
|
2751
|
+
|
2752
|
+
assert_raises TypeError do
|
2753
|
+
p.pix_size = Error.new(10.2)
|
2754
|
+
end
|
2755
|
+
assert_raises ArgumentError do
|
2756
|
+
p.pix_size = [PixSize2.new([123.4, 123.4]), PixSize2.new([123.4, 123.4]), PixSize2.new([123.4, 123.4])]
|
2757
|
+
end
|
2758
|
+
end
|
2759
|
+
|
2760
|
+
def test_accessors
|
2761
|
+
p = Position2D.new(
|
2762
|
+
:name => 'MyCoordinate',
|
2763
|
+
:value => Value2.new([123.4, 345.6]),
|
2764
|
+
:error => [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])],
|
2765
|
+
:resolution => [Resolution2.new([0.1, 0.2]), Resolution2.new([0.5, 0.6])],
|
2766
|
+
:size => [Size2.new([10.1, 10.2]), Size2.new([8.7, 8.8])],
|
2767
|
+
:pix_size => [PixSize2.new([1.9, 2.0]), PixSize2.new([2.2, 3.3])],
|
2768
|
+
:unit => PosUnit.new('m')
|
2769
|
+
)
|
2770
|
+
|
2771
|
+
assert_equal 'MyCoordinate', p.name
|
2772
|
+
assert_equal Value2.new([123.4, 345.6]), p.value
|
2773
|
+
assert_equal [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])], p.error
|
2774
|
+
assert_equal [Resolution2.new([0.1, 0.2]), Resolution2.new([0.5, 0.6])], p.resolution
|
2775
|
+
assert_equal [Size2.new([10.1, 10.2]), Size2.new([8.7, 8.8])], p.size
|
2776
|
+
assert_equal [PixSize2.new([1.9, 2.0]), PixSize2.new([2.2, 3.3])], p.pix_size
|
2777
|
+
assert_equal PosUnit.new('m'), p.unit
|
2778
|
+
|
2779
|
+
p.name = 'MyOtherCoordinate'
|
2780
|
+
assert_equal 'MyOtherCoordinate', p.name
|
2781
|
+
p.error = Error2.new([3.3, 4.4])
|
2782
|
+
assert_equal [Error2.new([3.3, 4.4])], p.error
|
2783
|
+
p.resolution = Resolution2.new([0.6, 0.7])
|
2784
|
+
assert_equal [Resolution2.new([0.6, 0.7])], p.resolution
|
2785
|
+
p.size = Size2.new([5.1, 5.2])
|
2786
|
+
assert_equal [Size2.new([5.1, 5.2])], p.size
|
2787
|
+
p.pix_size = PixSize2.new([3.1, 3.2])
|
2788
|
+
assert_equal [PixSize2.new([3.1, 3.2])], p.pix_size
|
2789
|
+
p.unit = PosUnit.new('lyr')
|
2790
|
+
assert_equal PosUnit.new('lyr'), p.unit
|
2791
|
+
end
|
2792
|
+
|
2793
|
+
def test_relationships
|
2794
|
+
p = Position2D.new(:unit => PosUnit.new('m'))
|
2795
|
+
assert_kind_of Vector2Coordinate, p
|
2796
|
+
assert_kind_of Position, p
|
2797
|
+
end
|
2798
|
+
|
2799
|
+
def test_xml
|
2800
|
+
p1 = Position2D.new(
|
2801
|
+
:name => 'My2DCoordinate',
|
2802
|
+
:value => Value2.new([123.4, 345.6]),
|
2803
|
+
:error => [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])],
|
2804
|
+
:resolution => [Resolution2.new([0.1, 0.2]), Resolution2.new([0.5, 0.6])],
|
2805
|
+
:size => [Size2.new([10.1, 10.2]), Size2.new([8.7, 8.8])],
|
2806
|
+
:pix_size => [PixSize2.new([1.9, 2.0]), PixSize2.new([2.2, 3.3])],
|
2807
|
+
:unit => PosUnit.new('m')
|
2808
|
+
)
|
2809
|
+
|
2810
|
+
p2 = Position2D.from_xml(p1.to_xml)
|
2811
|
+
assert_equal p1, p2
|
2812
|
+
end
|
2813
|
+
end
|
2814
|
+
|
2815
|
+
class Position3DTest < ::Test::Unit::TestCase
|
2816
|
+
def test_construction
|
2817
|
+
assert_nothing_raised do
|
2818
|
+
Position3D.new(
|
2819
|
+
:name => 'My Coordinate',
|
2820
|
+
:value => Value3.new([123.4, 345.6, 456.7]),
|
2821
|
+
:error => [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 4.4])],
|
2822
|
+
:resolution => [Resolution3.new([0.1, 0.2, 0.3]), Resolution3.new([0.5, 0.6, 0.7])],
|
2823
|
+
:size => [Size3.new([10.1, 10.2, 10.3]), Size3.new([8.7, 8.8, 8.9])],
|
2824
|
+
:pix_size => [PixSize3.new([1.9, 2.0, 2.1]), PixSize3.new([2.2, 3.3, 4.4])],
|
2825
|
+
:unit => PosUnit.new('m')
|
2826
|
+
)
|
2827
|
+
|
2828
|
+
Position3D.new(
|
2829
|
+
:value => Value3.new([123.4, 345.6, 456.7]),
|
2830
|
+
:error => [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 4.4])],
|
2831
|
+
:resolution => [Resolution3.new([0.1, 0.2, 0.3]), Resolution3.new([0.5, 0.6, 0.7])],
|
2832
|
+
:size => [Size3.new([10.1, 10.2, 10.3]), Size3.new([8.7, 8.8, 8.9])],
|
2833
|
+
:pix_size => [PixSize3.new([1.9, 2.0, 2.1]), PixSize3.new([2.2, 3.3, 4.4])],
|
2834
|
+
:unit => PosUnit.new('m')
|
2835
|
+
)
|
2836
|
+
|
2837
|
+
Position3D.new(
|
2838
|
+
:value => Value3.new([123.4, 345.6, 456.7]),
|
2839
|
+
:error => [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 4.4])],
|
2840
|
+
:unit => PosUnit.new('m')
|
2841
|
+
)
|
2842
|
+
|
2843
|
+
Position3D.new(:unit => PosUnit.new('m'))
|
2844
|
+
end
|
2845
|
+
|
2846
|
+
assert_raises ArgumentError do
|
2847
|
+
Position3D.new
|
2848
|
+
end
|
2849
|
+
|
2850
|
+
p = Position3D.new(:unit => PosUnit.new('m'))
|
2851
|
+
assert_raises TypeError do
|
2852
|
+
p.value = Error.new(10.2)
|
2853
|
+
end
|
2854
|
+
|
2855
|
+
assert_raises TypeError do
|
2856
|
+
p.error = Value.new(123.4)
|
2857
|
+
end
|
2858
|
+
assert_raises ArgumentError do
|
2859
|
+
p.error = [Error3.new([123.4, 5.1, 1.1]), Error3.new([123.4, 5.1, 1.1]), Error3.new([123.4, 5.1, 1.1])]
|
2860
|
+
end
|
2861
|
+
|
2862
|
+
assert_raises TypeError do
|
2863
|
+
p.resolution = Error.new(10.2)
|
2864
|
+
end
|
2865
|
+
assert_raises ArgumentError do
|
2866
|
+
p.resolution = [Resolution3.new([123.4, 123.5, 1.1]), Resolution3.new([123.4, 123.5, 1.1]), Resolution3.new([123.4, 123.5, 1.1])]
|
2867
|
+
end
|
2868
|
+
|
2869
|
+
assert_raises TypeError do
|
2870
|
+
p.size = Error.new(10.2)
|
2871
|
+
end
|
2872
|
+
assert_raises ArgumentError do
|
2873
|
+
p.size = [Size3.new([123.4, 123.4, 1.1]), Size3.new([123.4, 123.4, 1.1]), Size3.new([123.4, 123.4, 1.1])]
|
2874
|
+
end
|
2875
|
+
|
2876
|
+
assert_raises TypeError do
|
2877
|
+
p.pix_size = Error.new(10.2)
|
2878
|
+
end
|
2879
|
+
assert_raises ArgumentError do
|
2880
|
+
p.pix_size = [PixSize3.new([123.4, 123.4, 1.1]), PixSize3.new([123.4, 123.4, 1.1]), PixSize3.new([123.4, 123.4, 1.1])]
|
2881
|
+
end
|
2882
|
+
end
|
2883
|
+
|
2884
|
+
def test_accessors
|
2885
|
+
p = Position3D.new(
|
2886
|
+
:name => 'MyCoordinate',
|
2887
|
+
:value => Value3.new([123.4, 345.6, 456.7]),
|
2888
|
+
:error => [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 4.4])],
|
2889
|
+
:resolution => [Resolution3.new([0.1, 0.2, 0.3]), Resolution3.new([0.5, 0.6, 0.7])],
|
2890
|
+
:size => [Size3.new([10.1, 10.2, 10.3]), Size3.new([8.7, 8.8, 8.9])],
|
2891
|
+
:pix_size => [PixSize3.new([1.9, 2.0, 2.1]), PixSize3.new([2.2, 3.3, 4.4])],
|
2892
|
+
:unit => PosUnit.new('m')
|
2893
|
+
)
|
2894
|
+
|
2895
|
+
assert_equal 'MyCoordinate', p.name
|
2896
|
+
assert_equal Value3.new([123.4, 345.6, 456.7]), p.value
|
2897
|
+
assert_equal [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 4.4])], p.error
|
2898
|
+
assert_equal [Resolution3.new([0.1, 0.2, 0.3]), Resolution3.new([0.5, 0.6, 0.7])], p.resolution
|
2899
|
+
assert_equal [Size3.new([10.1, 10.2, 10.3]), Size3.new([8.7, 8.8, 8.9])], p.size
|
2900
|
+
assert_equal [PixSize3.new([1.9, 2.0, 2.1]), PixSize3.new([2.2, 3.3, 4.4])], p.pix_size
|
2901
|
+
assert_equal PosUnit.new('m'), p.unit
|
2902
|
+
|
2903
|
+
p.name = 'MyOtherCoordinate'
|
2904
|
+
assert_equal 'MyOtherCoordinate', p.name
|
2905
|
+
p.error = Error3.new([3.3, 4.4, 5.5])
|
2906
|
+
assert_equal [Error3.new([3.3, 4.4, 5.5])], p.error
|
2907
|
+
p.resolution = Resolution3.new([0.6, 0.7, 0.8])
|
2908
|
+
assert_equal [Resolution3.new([0.6, 0.7, 0.8])], p.resolution
|
2909
|
+
p.size = Size3.new([5.1, 5.2, 5.3])
|
2910
|
+
assert_equal [Size3.new([5.1, 5.2, 5.3])], p.size
|
2911
|
+
p.pix_size = PixSize3.new([3.1, 3.2, 3.3])
|
2912
|
+
assert_equal [PixSize3.new([3.1, 3.2, 3.3])], p.pix_size
|
2913
|
+
p.unit = PosUnit.new('lyr')
|
2914
|
+
assert_equal PosUnit.new('lyr'), p.unit
|
2915
|
+
end
|
2916
|
+
|
2917
|
+
def test_relationships
|
2918
|
+
p = Position3D.new(:unit => PosUnit.new('m'))
|
2919
|
+
assert_kind_of Vector3Coordinate, p
|
2920
|
+
assert_kind_of Position, p
|
2921
|
+
end
|
2922
|
+
|
2923
|
+
def test_xml
|
2924
|
+
p1 = Position3D.new(
|
2925
|
+
:name => 'MyCoordinate',
|
2926
|
+
:value => Value3.new([123.4, 345.6, 456.7]),
|
2927
|
+
:error => [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 4.4])],
|
2928
|
+
:resolution => [Resolution3.new([0.1, 0.2, 0.3]), Resolution3.new([0.5, 0.6, 0.7])],
|
2929
|
+
:size => [Size3.new([10.1, 10.2, 10.3]), Size3.new([8.7, 8.8, 8.9])],
|
2930
|
+
:pix_size => [PixSize3.new([1.9, 2.0, 2.1]), PixSize3.new([2.2, 3.3, 4.4])],
|
2931
|
+
:unit => PosUnit.new('m')
|
2932
|
+
)
|
2933
|
+
|
2934
|
+
p2 = Position3D.from_xml(p1.to_xml)
|
2935
|
+
assert_equal p1, p2
|
2936
|
+
end
|
2937
|
+
end
|
2938
|
+
|
2939
|
+
class Velocity1DTest < ::Test::Unit::TestCase
|
2940
|
+
def test_construction
|
2941
|
+
assert_nothing_raised do
|
2942
|
+
Velocity1D.new(
|
2943
|
+
:value => Value.new(123.4),
|
2944
|
+
:error => [Error.new(1.1), Error.new(2.2)],
|
2945
|
+
:resolution => [Resolution.new(0.1), Resolution.new(0.5)],
|
2946
|
+
:size => [Size.new(10.1), Size.new(8.7)],
|
2947
|
+
:pix_size => [PixSize.new(1.9), PixSize.new(2.2)],
|
2948
|
+
:unit => PosUnit.new('m'),
|
2949
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
2950
|
+
)
|
2951
|
+
|
2952
|
+
Velocity1D.new(
|
2953
|
+
:value => Value.new(123.4),
|
2954
|
+
:error => Error.new(1.1),
|
2955
|
+
:resolution => Resolution.new(0.1),
|
2956
|
+
:size => Size.new(10.1),
|
2957
|
+
:pix_size => PixSize.new(1.9),
|
2958
|
+
:unit => PosUnit.new('m'),
|
2959
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
2960
|
+
)
|
2961
|
+
|
2962
|
+
Velocity1D.new(
|
2963
|
+
:value => Value.new(123.4),
|
2964
|
+
:error => Error.new(1.1),
|
2965
|
+
:unit => PosUnit.new('m'),
|
2966
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
2967
|
+
)
|
2968
|
+
|
2969
|
+
Velocity1D.new(
|
2970
|
+
:unit => PosUnit.new('m'),
|
2971
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
2972
|
+
)
|
2973
|
+
end
|
2974
|
+
|
2975
|
+
assert_raises ArgumentError do
|
2976
|
+
Velocity1D.new(:unit => PosUnit.new('m'))
|
2977
|
+
end
|
2978
|
+
assert_raises ArgumentError do
|
2979
|
+
Velocity1D.new(:vel_time_unit => VelTimeUnit.new('s'))
|
2980
|
+
end
|
2981
|
+
|
2982
|
+
sc = Velocity1D.new(
|
2983
|
+
:unit => PosUnit.new('m'),
|
2984
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
2985
|
+
)
|
2986
|
+
assert_raises TypeError do
|
2987
|
+
sc.value = Error.new(10.2)
|
2988
|
+
end
|
2989
|
+
|
2990
|
+
assert_raises TypeError do
|
2991
|
+
sc.error = Value.new(123.4)
|
2992
|
+
end
|
2993
|
+
assert_raises ArgumentError do
|
2994
|
+
sc.error = [Error.new(123.4), Error.new(123.4), Error.new(123.4)]
|
2995
|
+
end
|
2996
|
+
|
2997
|
+
assert_raises TypeError do
|
2998
|
+
sc.resolution = Error.new(10.2)
|
2999
|
+
end
|
3000
|
+
assert_raises ArgumentError do
|
3001
|
+
sc.resolution = [Resolution.new(123.4), Resolution.new(123.4), Resolution.new(123.4)]
|
3002
|
+
end
|
3003
|
+
|
3004
|
+
assert_raises TypeError do
|
3005
|
+
sc.size = Error.new(10.2)
|
3006
|
+
end
|
3007
|
+
assert_raises ArgumentError do
|
3008
|
+
sc.size = [Size.new(123.4), Size.new(123.4), Size.new(123.4)]
|
3009
|
+
end
|
3010
|
+
|
3011
|
+
assert_raises TypeError do
|
3012
|
+
sc.pix_size = Error.new(10.2)
|
3013
|
+
end
|
3014
|
+
assert_raises ArgumentError do
|
3015
|
+
sc.pix_size = [PixSize.new(123.4), PixSize.new(123.4), PixSize.new(123.4)]
|
3016
|
+
end
|
3017
|
+
|
3018
|
+
assert_raises TypeError do
|
3019
|
+
sc.unit = VelTimeUnit.new('s')
|
3020
|
+
end
|
3021
|
+
assert_raises TypeError do
|
3022
|
+
sc.vel_time_unit = PosUnit.new('m')
|
3023
|
+
end
|
3024
|
+
end
|
3025
|
+
|
3026
|
+
def test_accessors
|
3027
|
+
sc = Velocity1D.new(
|
3028
|
+
:name => 'MyCoordinate',
|
3029
|
+
:value => Value.new(123.4),
|
3030
|
+
:error => [Error.new(1.1), Error.new(2.2)],
|
3031
|
+
:resolution => [Resolution.new(0.1), Resolution.new(0.2)],
|
3032
|
+
:size => [Size.new(10.1), Size.new(8.7)],
|
3033
|
+
:pix_size => [PixSize.new(1.9), PixSize.new(2.2)],
|
3034
|
+
:unit => PosUnit.new('m'),
|
3035
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
3036
|
+
)
|
3037
|
+
|
3038
|
+
assert_equal 'MyCoordinate', sc.name
|
3039
|
+
assert_equal Value.new(123.4), sc.value
|
3040
|
+
assert_equal [Error.new(1.1), Error.new(2.2)], sc.error
|
3041
|
+
assert_equal [Resolution.new(0.1), Resolution.new(0.2)], sc.resolution
|
3042
|
+
assert_equal [Size.new(10.1), Size.new(8.7)], sc.size
|
3043
|
+
assert_equal [PixSize.new(1.9), PixSize.new(2.2)], sc.pix_size
|
3044
|
+
assert_equal PosUnit.new('m'), sc.unit
|
3045
|
+
assert_equal VelTimeUnit.new('s'), sc.vel_time_unit
|
3046
|
+
|
3047
|
+
sc.name = 'MyOtherCoordinate'
|
3048
|
+
assert_equal 'MyOtherCoordinate', sc.name
|
3049
|
+
sc.error = Error.new(3.3)
|
3050
|
+
assert_equal [Error.new(3.3)], sc.error
|
3051
|
+
sc.resolution = Resolution.new(0.6)
|
3052
|
+
assert_equal [Resolution.new(0.6)], sc.resolution
|
3053
|
+
sc.size = Size.new(5.1)
|
3054
|
+
assert_equal [Size.new(5.1)], sc.size
|
3055
|
+
sc.pix_size = PixSize.new(3.1)
|
3056
|
+
assert_equal [PixSize.new(3.1)], sc.pix_size
|
3057
|
+
sc.unit = PosUnit.new('lyr')
|
3058
|
+
assert_equal PosUnit.new('lyr'), sc.unit
|
3059
|
+
sc.vel_time_unit = VelTimeUnit.new('h')
|
3060
|
+
assert_equal VelTimeUnit.new('h'), sc.vel_time_unit
|
3061
|
+
end
|
3062
|
+
|
3063
|
+
def test_relationships
|
3064
|
+
v = Velocity1D.new(:unit => PosUnit.new('m'), :vel_time_unit => VelTimeUnit.new('s'))
|
3065
|
+
assert_kind_of ScalarCoordinateType, v
|
3066
|
+
assert_kind_of Velocity, v
|
3067
|
+
end
|
3068
|
+
|
3069
|
+
def test_xml
|
3070
|
+
v1 = Velocity1D.new(
|
3071
|
+
:name => 'MyCoordinate',
|
3072
|
+
:value => Value.new(123.4),
|
3073
|
+
:error => [Error.new(1.1), Error.new(2.2)],
|
3074
|
+
:resolution => [Resolution.new(0.1), Resolution.new(0.2)],
|
3075
|
+
:size => [Size.new(10.1), Size.new(8.7)],
|
3076
|
+
:pix_size => [PixSize.new(1.9), PixSize.new(2.2)],
|
3077
|
+
:unit => PosUnit.new('m'),
|
3078
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
3079
|
+
)
|
3080
|
+
|
3081
|
+
v2 = Velocity1D.from_xml(v1.to_xml)
|
3082
|
+
assert_equal v1, v2
|
3083
|
+
end
|
3084
|
+
end
|
3085
|
+
|
3086
|
+
class Velocity2DTest < ::Test::Unit::TestCase
|
3087
|
+
def test_construction
|
3088
|
+
assert_nothing_raised do
|
3089
|
+
Velocity2D.new(
|
3090
|
+
:name => 'My Coordinate',
|
3091
|
+
:value => Value2.new([123.4, 345.6]),
|
3092
|
+
:error => [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])],
|
3093
|
+
:resolution => [Resolution2.new([0.1, 0.2]), Resolution2.new([0.5, 0.6])],
|
3094
|
+
:size => [Size2.new([10.1, 10.2]), Size2.new([8.7, 8.8])],
|
3095
|
+
:pix_size => [PixSize2.new([1.9, 2.0]), PixSize2.new([2.2, 3.3])],
|
3096
|
+
:unit => PosUnit.new('m'),
|
3097
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
3098
|
+
)
|
3099
|
+
|
3100
|
+
Velocity2D.new(
|
3101
|
+
:value => Value2.new([123.4, 345.6]),
|
3102
|
+
:error => [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])],
|
3103
|
+
:resolution => [Resolution2.new([0.1, 0.2]), Resolution2.new([0.5, 0.6])],
|
3104
|
+
:size => [Size2.new([10.1, 10.2]), Size2.new([8.7, 8.8])],
|
3105
|
+
:pix_size => [PixSize2.new([1.9, 2.0]), PixSize2.new([2.2, 3.3])],
|
3106
|
+
:unit => PosUnit.new('m'),
|
3107
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
3108
|
+
)
|
3109
|
+
|
3110
|
+
Velocity2D.new(
|
3111
|
+
:value => Value2.new([123.4, 345.6]),
|
3112
|
+
:error => [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])],
|
3113
|
+
:unit => PosUnit.new('m'),
|
3114
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
3115
|
+
)
|
3116
|
+
|
3117
|
+
Velocity2D.new(
|
3118
|
+
:unit => PosUnit.new('m'),
|
3119
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
3120
|
+
)
|
3121
|
+
end
|
3122
|
+
|
3123
|
+
assert_raises ArgumentError do
|
3124
|
+
Velocity2D.new(:unit => PosUnit.new('m'))
|
3125
|
+
end
|
3126
|
+
assert_raises ArgumentError do
|
3127
|
+
Velocity2D.new(:vel_time_unit => VelTimeUnit.new('s'))
|
3128
|
+
end
|
3129
|
+
|
3130
|
+
vc = Velocity2D.new(:unit => PosUnit.new('m'), :vel_time_unit => VelTimeUnit.new('s'))
|
3131
|
+
assert_raises TypeError do
|
3132
|
+
vc.value = Error.new(10.2)
|
3133
|
+
end
|
3134
|
+
|
3135
|
+
assert_raises TypeError do
|
3136
|
+
vc.error = Value.new(123.4)
|
3137
|
+
end
|
3138
|
+
assert_raises ArgumentError do
|
3139
|
+
vc.error = [Error2.new([123.4, 5.1]), Error2.new([123.4, 5.1]), Error2.new([123.4, 5.1])]
|
3140
|
+
end
|
3141
|
+
|
3142
|
+
assert_raises TypeError do
|
3143
|
+
vc.resolution = Error.new(10.2)
|
3144
|
+
end
|
3145
|
+
assert_raises ArgumentError do
|
3146
|
+
vc.resolution = [Resolution2.new([123.4, 123.5]), Resolution2.new([123.4, 123.5]), Resolution2.new([123.4, 123.5])]
|
3147
|
+
end
|
3148
|
+
|
3149
|
+
assert_raises TypeError do
|
3150
|
+
vc.size = Error.new(10.2)
|
3151
|
+
end
|
3152
|
+
assert_raises ArgumentError do
|
3153
|
+
vc.size = [Size2.new([123.4, 123.4]), Size2.new([123.4, 123.4]), Size2.new([123.4, 123.4])]
|
3154
|
+
end
|
3155
|
+
|
3156
|
+
assert_raises TypeError do
|
3157
|
+
vc.pix_size = Error.new(10.2)
|
3158
|
+
end
|
3159
|
+
assert_raises ArgumentError do
|
3160
|
+
vc.pix_size = [PixSize2.new([123.4, 123.4]), PixSize2.new([123.4, 123.4]), PixSize2.new([123.4, 123.4])]
|
3161
|
+
end
|
3162
|
+
|
3163
|
+
assert_raises TypeError do
|
3164
|
+
vc.unit = VelTimeUnit.new('s')
|
3165
|
+
end
|
3166
|
+
assert_raises TypeError do
|
3167
|
+
vc.vel_time_unit = PosUnit.new('m')
|
3168
|
+
end
|
3169
|
+
end
|
3170
|
+
|
3171
|
+
def test_accessors
|
3172
|
+
vc = Velocity2D.new(
|
3173
|
+
:name => 'MyCoordinate',
|
3174
|
+
:value => Value2.new([123.4, 345.6]),
|
3175
|
+
:error => [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])],
|
3176
|
+
:resolution => [Resolution2.new([0.1, 0.2]), Resolution2.new([0.5, 0.6])],
|
3177
|
+
:size => [Size2.new([10.1, 10.2]), Size2.new([8.7, 8.8])],
|
3178
|
+
:pix_size => [PixSize2.new([1.9, 2.0]), PixSize2.new([2.2, 3.3])],
|
3179
|
+
:unit => PosUnit.new('m'),
|
3180
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
3181
|
+
)
|
3182
|
+
|
3183
|
+
assert_equal 'MyCoordinate', vc.name
|
3184
|
+
assert_equal Value2.new([123.4, 345.6]), vc.value
|
3185
|
+
assert_equal [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])], vc.error
|
3186
|
+
assert_equal [Resolution2.new([0.1, 0.2]), Resolution2.new([0.5, 0.6])], vc.resolution
|
3187
|
+
assert_equal [Size2.new([10.1, 10.2]), Size2.new([8.7, 8.8])], vc.size
|
3188
|
+
assert_equal [PixSize2.new([1.9, 2.0]), PixSize2.new([2.2, 3.3])], vc.pix_size
|
3189
|
+
assert_equal PosUnit.new('m'), vc.unit
|
3190
|
+
assert_equal VelTimeUnit.new('s'), vc.vel_time_unit
|
3191
|
+
|
3192
|
+
vc.name = 'MyOtherCoordinate'
|
3193
|
+
assert_equal 'MyOtherCoordinate', vc.name
|
3194
|
+
vc.error = Error2.new([3.3, 4.4])
|
3195
|
+
assert_equal [Error2.new([3.3, 4.4])], vc.error
|
3196
|
+
vc.resolution = Resolution2.new([0.6, 0.7])
|
3197
|
+
assert_equal [Resolution2.new([0.6, 0.7])], vc.resolution
|
3198
|
+
vc.size = Size2.new([5.1, 5.2])
|
3199
|
+
assert_equal [Size2.new([5.1, 5.2])], vc.size
|
3200
|
+
vc.pix_size = PixSize2.new([3.1, 3.2])
|
3201
|
+
assert_equal [PixSize2.new([3.1, 3.2])], vc.pix_size
|
3202
|
+
vc.unit = PosUnit.new('lyr')
|
3203
|
+
assert_equal PosUnit.new('lyr'), vc.unit
|
3204
|
+
vc.vel_time_unit = VelTimeUnit.new('h')
|
3205
|
+
assert_equal VelTimeUnit.new('h'), vc.vel_time_unit
|
3206
|
+
end
|
3207
|
+
|
3208
|
+
def test_relationships
|
3209
|
+
v = Velocity2D.new(:unit => PosUnit.new('m'), :vel_time_unit => VelTimeUnit.new('s'))
|
3210
|
+
assert_kind_of Vector2Coordinate, v
|
3211
|
+
assert_kind_of Velocity, v
|
3212
|
+
end
|
3213
|
+
|
3214
|
+
def test_xml
|
3215
|
+
v1 = Velocity2D.new(
|
3216
|
+
:name => 'MyCoordinate',
|
3217
|
+
:value => Value2.new([123.4, 345.6]),
|
3218
|
+
:error => [Error2.new([1.1, 2.2]), Error2.new([2.2, 3.3])],
|
3219
|
+
:resolution => [Resolution2.new([0.1, 0.2]), Resolution2.new([0.5, 0.6])],
|
3220
|
+
:size => [Size2.new([10.1, 10.2]), Size2.new([8.7, 8.8])],
|
3221
|
+
:pix_size => [PixSize2.new([1.9, 2.0]), PixSize2.new([2.2, 3.3])],
|
3222
|
+
:unit => PosUnit.new('m'),
|
3223
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
3224
|
+
)
|
3225
|
+
|
3226
|
+
v2 = Velocity2D.from_xml(v1.to_xml)
|
3227
|
+
assert_equal v1, v2
|
3228
|
+
end
|
3229
|
+
end
|
3230
|
+
|
3231
|
+
class Velocity3DTest < ::Test::Unit::TestCase
|
3232
|
+
def test_construction
|
3233
|
+
assert_nothing_raised do
|
3234
|
+
Velocity3D.new(
|
3235
|
+
:name => 'My Coordinate',
|
3236
|
+
:value => Value3.new([123.4, 345.6, 567.8]),
|
3237
|
+
:error => [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 4.4])],
|
3238
|
+
:resolution => [Resolution3.new([0.1, 0.2, 0.3]), Resolution3.new([0.5, 0.6, 0.7])],
|
3239
|
+
:size => [Size3.new([10.1, 10.2, 10.3]), Size3.new([8.7, 8.8, 8.9])],
|
3240
|
+
:pix_size => [PixSize3.new([1.9, 2.0, 2.1]), PixSize3.new([2.2, 3.3, 4.4])],
|
3241
|
+
:unit => PosUnit.new('m'),
|
3242
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
3243
|
+
)
|
3244
|
+
|
3245
|
+
Velocity3D.new(
|
3246
|
+
:value => Value3.new([123.4, 345.6, 567.8]),
|
3247
|
+
:error => [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 4.4])],
|
3248
|
+
:resolution => [Resolution3.new([0.1, 0.2, 0.3]), Resolution3.new([0.5, 0.6, 0.7])],
|
3249
|
+
:size => [Size3.new([10.1, 10.2, 10.3]), Size3.new([8.7, 8.8, 8.9])],
|
3250
|
+
:pix_size => [PixSize3.new([1.9, 2.0, 2.1]), PixSize3.new([2.2, 3.3, 4.4])],
|
3251
|
+
:unit => PosUnit.new('m'),
|
3252
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
3253
|
+
)
|
3254
|
+
|
3255
|
+
Velocity3D.new(
|
3256
|
+
:value => Value3.new([123.4, 345.6, 567.8]),
|
3257
|
+
:error => [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 4.4])],
|
3258
|
+
:unit => PosUnit.new('m'),
|
3259
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
3260
|
+
)
|
3261
|
+
|
3262
|
+
Velocity3D.new(
|
3263
|
+
:unit => PosUnit.new('m'),
|
3264
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
3265
|
+
)
|
3266
|
+
end
|
3267
|
+
|
3268
|
+
assert_raises ArgumentError do
|
3269
|
+
Velocity3D.new(:unit => PosUnit.new('m'))
|
3270
|
+
end
|
3271
|
+
assert_raises ArgumentError do
|
3272
|
+
Velocity3D.new(:vel_time_unit => VelTimeUnit.new('s'))
|
3273
|
+
end
|
3274
|
+
|
3275
|
+
vc = Velocity3D.new(:unit => PosUnit.new('m'), :vel_time_unit => VelTimeUnit.new('s'))
|
3276
|
+
assert_raises TypeError do
|
3277
|
+
vc.value = Error.new(10.2)
|
3278
|
+
end
|
3279
|
+
|
3280
|
+
assert_raises TypeError do
|
3281
|
+
vc.error = Value.new(123.4)
|
3282
|
+
end
|
3283
|
+
assert_raises ArgumentError do
|
3284
|
+
vc.error = [Error3.new([123.4, 5.1, 2.2]), Error3.new([123.4, 5.1, 2.2]), Error3.new([123.4, 5.1, 2.2])]
|
3285
|
+
end
|
3286
|
+
|
3287
|
+
assert_raises TypeError do
|
3288
|
+
vc.resolution = Error.new(10.2)
|
3289
|
+
end
|
3290
|
+
assert_raises ArgumentError do
|
3291
|
+
vc.resolution = [Resolution3.new([123.4, 123.5, 1.1]), Resolution3.new([123.4, 123.5, 1.1]), Resolution3.new([123.4, 123.5, 1.1])]
|
3292
|
+
end
|
3293
|
+
|
3294
|
+
assert_raises TypeError do
|
3295
|
+
vc.size = Error.new(10.2)
|
3296
|
+
end
|
3297
|
+
assert_raises ArgumentError do
|
3298
|
+
vc.size = [Size3.new([123.4, 123.4, 123.4]), Size3.new([123.4, 123.4, 123.4]), Size3.new([123.4, 123.4, 123.4])]
|
3299
|
+
end
|
3300
|
+
|
3301
|
+
assert_raises TypeError do
|
3302
|
+
vc.pix_size = Error.new(10.2)
|
3303
|
+
end
|
3304
|
+
assert_raises ArgumentError do
|
3305
|
+
vc.pix_size = [PixSize3.new([123.4, 123.4, 123.4]), PixSize3.new([123.4, 123.4, 123.4]), PixSize3.new([123.4, 123.4, 123.4])]
|
3306
|
+
end
|
3307
|
+
|
3308
|
+
assert_raises TypeError do
|
3309
|
+
vc.unit = VelTimeUnit.new('s')
|
3310
|
+
end
|
3311
|
+
assert_raises TypeError do
|
3312
|
+
vc.vel_time_unit = PosUnit.new('m')
|
3313
|
+
end
|
3314
|
+
end
|
3315
|
+
|
3316
|
+
def test_accessors
|
3317
|
+
vc = Velocity3D.new(
|
3318
|
+
:name => 'MyCoordinate',
|
3319
|
+
:value => Value3.new([123.4, 345.6, 789.0]),
|
3320
|
+
:error => [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 2.2])],
|
3321
|
+
:resolution => [Resolution3.new([0.1, 0.2, 0.5]), Resolution3.new([0.5, 0.6, 0.5])],
|
3322
|
+
:size => [Size3.new([10.1, 10.2, 1.1]), Size3.new([8.7, 8.8, 1.1])],
|
3323
|
+
:pix_size => [PixSize3.new([1.9, 2.0, 3.0]), PixSize3.new([2.2, 3.3, 4.1])],
|
3324
|
+
:unit => PosUnit.new('m'),
|
3325
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
3326
|
+
)
|
3327
|
+
|
3328
|
+
assert_equal 'MyCoordinate', vc.name
|
3329
|
+
assert_equal Value3.new([123.4, 345.6, 789.0]), vc.value
|
3330
|
+
assert_equal [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 2.2])], vc.error
|
3331
|
+
assert_equal [Resolution3.new([0.1, 0.2, 0.5]), Resolution3.new([0.5, 0.6, 0.5])], vc.resolution
|
3332
|
+
assert_equal [Size3.new([10.1, 10.2, 1.1]), Size3.new([8.7, 8.8, 1.1])], vc.size
|
3333
|
+
assert_equal [PixSize3.new([1.9, 2.0, 3.0]), PixSize3.new([2.2, 3.3, 4.1])], vc.pix_size
|
3334
|
+
assert_equal PosUnit.new('m'), vc.unit
|
3335
|
+
assert_equal VelTimeUnit.new('s'), vc.vel_time_unit
|
3336
|
+
|
3337
|
+
vc.name = 'MyOtherCoordinate'
|
3338
|
+
assert_equal 'MyOtherCoordinate', vc.name
|
3339
|
+
vc.error = Error3.new([3.3, 4.4, 5.5])
|
3340
|
+
assert_equal [Error3.new([3.3, 4.4, 5.5])], vc.error
|
3341
|
+
vc.resolution = Resolution3.new([0.6, 0.7, 0.8])
|
3342
|
+
assert_equal [Resolution3.new([0.6, 0.7, 0.8])], vc.resolution
|
3343
|
+
vc.size = Size3.new([5.1, 5.2, 5.3])
|
3344
|
+
assert_equal [Size3.new([5.1, 5.2, 5.3])], vc.size
|
3345
|
+
vc.pix_size = PixSize3.new([3.1, 3.2, 3.3])
|
3346
|
+
assert_equal [PixSize3.new([3.1, 3.2, 3.3])], vc.pix_size
|
3347
|
+
vc.unit = PosUnit.new('lyr')
|
3348
|
+
assert_equal PosUnit.new('lyr'), vc.unit
|
3349
|
+
vc.vel_time_unit = VelTimeUnit.new('h')
|
3350
|
+
assert_equal VelTimeUnit.new('h'), vc.vel_time_unit
|
3351
|
+
end
|
3352
|
+
|
3353
|
+
def test_relationships
|
3354
|
+
v = Velocity3D.new(:unit => PosUnit.new('m'), :vel_time_unit => VelTimeUnit.new('s'))
|
3355
|
+
assert_kind_of Vector3Coordinate, v
|
3356
|
+
assert_kind_of Velocity, v
|
3357
|
+
end
|
3358
|
+
|
3359
|
+
def test_xml
|
3360
|
+
v1 = Velocity3D.new(
|
3361
|
+
:name => 'MyCoordinate',
|
3362
|
+
:value => Value3.new([123.4, 345.6, 789.0]),
|
3363
|
+
:error => [Error3.new([1.1, 2.2, 3.3]), Error3.new([2.2, 3.3, 2.2])],
|
3364
|
+
:resolution => [Resolution3.new([0.1, 0.2, 0.5]), Resolution3.new([0.5, 0.6, 0.5])],
|
3365
|
+
:size => [Size3.new([10.1, 10.2, 1.1]), Size3.new([8.7, 8.8, 1.1])],
|
3366
|
+
:pix_size => [PixSize3.new([1.9, 2.0, 3.0]), PixSize3.new([2.2, 3.3, 4.1])],
|
3367
|
+
:unit => PosUnit.new('m'),
|
3368
|
+
:vel_time_unit => VelTimeUnit.new('s')
|
3369
|
+
)
|
3370
|
+
|
3371
|
+
v2 = Velocity3D.from_xml(v1.to_xml)
|
3372
|
+
assert_equal v1, v2
|
3373
|
+
end
|
3374
|
+
end
|
3375
|
+
|
3376
|
+
class FitsTest < ::Test::Unit::TestCase
|
3377
|
+
def test_constructor
|
3378
|
+
assert_nothing_raised do
|
3379
|
+
Fits.new(:uri => 'http://www.noao.edu/')
|
3380
|
+
Fits.new(:uri => 'http://www.noao.edu/', :hdu_num => 1)
|
3381
|
+
Fits.new(:uri => 'http://www.noao.edu/', :hdu_name => 'ext1')
|
3382
|
+
end
|
3383
|
+
end
|
3384
|
+
|
3385
|
+
def test_accessors
|
3386
|
+
f = Fits.new(:uri => 'http://www.noao.edu/', :hdu_num => 1, :hdu_name => 'ext1')
|
3387
|
+
assert_equal URI.parse('http://www.noao.edu/'), f.uri
|
3388
|
+
assert_equal 1, f.hdu_num
|
3389
|
+
assert_equal 'ext1', f.hdu_name
|
3390
|
+
|
3391
|
+
f.uri = 'http://www.stsci.edu/'
|
3392
|
+
assert_equal URI.parse('http://www.stsci.edu/'), f.uri
|
3393
|
+
f.hdu_num = 2
|
3394
|
+
assert_equal 2, f.hdu_num
|
3395
|
+
f.hdu_name = 'ext2'
|
3396
|
+
assert_equal 'ext2', f.hdu_name
|
3397
|
+
end
|
3398
|
+
|
3399
|
+
def test_xml
|
3400
|
+
f1 = Fits.new(:uri => 'http://www.noao.edu/', :hdu_name => 'ext1', :hdu_num => 1)
|
3401
|
+
|
3402
|
+
f2 = Fits.from_xml(f1.to_xml)
|
3403
|
+
assert_equal f1, f2
|
3404
|
+
end
|
3405
|
+
end
|
3406
|
+
|
3407
|
+
class CoordFitsColumnsTest < ::Test::Unit::TestCase
|
3408
|
+
def test_constructor
|
3409
|
+
assert_nothing_raised do
|
3410
|
+
CoordFitsColumns.new(:name => 'column1')
|
3411
|
+
CoordFitsColumns.new(
|
3412
|
+
:name => 'column1',
|
3413
|
+
:value => 'OBJECT1',
|
3414
|
+
:error => 'ERROR1',
|
3415
|
+
:resolution => 'RESOLUTION1',
|
3416
|
+
:size => 'SIZE1',
|
3417
|
+
:pix_size => 'PIXSIZE1'
|
3418
|
+
)
|
3419
|
+
end
|
3420
|
+
|
3421
|
+
assert_raises ArgumentError do
|
3422
|
+
CoordFitsColumns.new
|
3423
|
+
end
|
3424
|
+
end
|
3425
|
+
|
3426
|
+
def test_accessors
|
3427
|
+
c = CoordFitsColumns.new(
|
3428
|
+
:name => 'column1',
|
3429
|
+
:value => 'OBJECT1',
|
3430
|
+
:error => 'ERROR1',
|
3431
|
+
:resolution => 'RESOLUTION1',
|
3432
|
+
:size => 'SIZE1',
|
3433
|
+
:pix_size => 'PIXSIZE1'
|
3434
|
+
)
|
3435
|
+
assert_equal 'column1', c.name
|
3436
|
+
assert_equal 'OBJECT1', c.value
|
3437
|
+
assert_equal 'ERROR1', c.error
|
3438
|
+
assert_equal 'RESOLUTION1', c.resolution
|
3439
|
+
assert_equal 'SIZE1', c.size
|
3440
|
+
assert_equal 'PIXSIZE1', c.pix_size
|
3441
|
+
|
3442
|
+
c.name = 'column2'
|
3443
|
+
assert_equal 'column2', c.name
|
3444
|
+
c.value = 'OBJECT2'
|
3445
|
+
assert_equal 'OBJECT2', c.value
|
3446
|
+
c.error = 'ERROR2'
|
3447
|
+
assert_equal 'ERROR2', c.error
|
3448
|
+
c.resolution = 'RESOLUTION2'
|
3449
|
+
assert_equal 'RESOLUTION2', c.resolution
|
3450
|
+
c.size = 'SIZE2'
|
3451
|
+
assert_equal 'SIZE2', c.size
|
3452
|
+
c.pix_size = 'PIXSIZE2'
|
3453
|
+
assert_equal c.pix_size, 'PIXSIZE2'
|
3454
|
+
end
|
3455
|
+
|
3456
|
+
def test_xml
|
3457
|
+
c1 = CoordFitsColumns.new(
|
3458
|
+
:name => 'column1',
|
3459
|
+
:value => 'OBJECT1',
|
3460
|
+
:error => 'ERROR1',
|
3461
|
+
:resolution => 'RESOLUTION1',
|
3462
|
+
:size => 'SIZE1',
|
3463
|
+
:pix_size => 'PIXSIZE1'
|
3464
|
+
)
|
3465
|
+
|
3466
|
+
c2 = CoordFitsColumns.from_xml(c1.to_xml('FITSPosition'))
|
3467
|
+
assert_equal c1, c2
|
3468
|
+
end
|
3469
|
+
end
|
3470
|
+
|
3471
|
+
class AstroCoordsFileTest < ::Test::Unit::TestCase
|
3472
|
+
def test_constructor
|
3473
|
+
assert_nothing_raised do
|
3474
|
+
AstroCoordsFile.new(:file => Fits.new(:uri => 'http://www.noao.edu/'))
|
3475
|
+
AstroCoordsFile.new(
|
3476
|
+
:file => Fits.new(:uri => 'http://www.noao.edu/'),
|
3477
|
+
:time => CoordFitsColumns.new(:name => 'col1'),
|
3478
|
+
:position => CoordFitsColumns.new(:name => 'col2'),
|
3479
|
+
:velocity => CoordFitsColumns.new(:name => 'col3'),
|
3480
|
+
:spectral => CoordFitsColumns.new(:name => 'col4'),
|
3481
|
+
:redshift => CoordFitsColumns.new(:name => 'col5')
|
3482
|
+
)
|
3483
|
+
end
|
3484
|
+
|
3485
|
+
assert_raises ArgumentError do
|
3486
|
+
AstroCoordsFile.new
|
3487
|
+
end
|
3488
|
+
end
|
3489
|
+
|
3490
|
+
def test_accessors
|
3491
|
+
c = AstroCoordsFile.new(
|
3492
|
+
:file => Fits.new(:uri => 'http://www.noao.edu/'),
|
3493
|
+
:time => CoordFitsColumns.new(:name => 'col1'),
|
3494
|
+
:position => CoordFitsColumns.new(:name => 'col2'),
|
3495
|
+
:velocity => CoordFitsColumns.new(:name => 'col3'),
|
3496
|
+
:spectral => CoordFitsColumns.new(:name => 'col4'),
|
3497
|
+
:redshift => CoordFitsColumns.new(:name => 'col5')
|
3498
|
+
)
|
3499
|
+
|
3500
|
+
assert_equal Fits.new(:uri => 'http://www.noao.edu/'), c.file
|
3501
|
+
assert_equal CoordFitsColumns.new(:name => 'col1'), c.time
|
3502
|
+
assert_equal CoordFitsColumns.new(:name => 'col2'), c.position
|
3503
|
+
assert_equal CoordFitsColumns.new(:name => 'col3'), c.velocity
|
3504
|
+
assert_equal CoordFitsColumns.new(:name => 'col4'), c.spectral
|
3505
|
+
assert_equal CoordFitsColumns.new(:name => 'col5'), c.redshift
|
3506
|
+
|
3507
|
+
c.file = Fits.new(:uri => 'http://www.stsci.edu/')
|
3508
|
+
assert_equal Fits.new(:uri => 'http://www.stsci.edu/'), c.file
|
3509
|
+
c.time = CoordFitsColumns.new(:name => 'col0')
|
3510
|
+
assert_equal CoordFitsColumns.new(:name => 'col0'), c.time
|
3511
|
+
c.position = CoordFitsColumns.new(:name => 'col1')
|
3512
|
+
assert_equal CoordFitsColumns.new(:name => 'col1'), c.position
|
3513
|
+
c.velocity = CoordFitsColumns.new(:name => 'col2')
|
3514
|
+
assert_equal CoordFitsColumns.new(:name => 'col2'), c.velocity
|
3515
|
+
c.spectral = CoordFitsColumns.new(:name => 'col3')
|
3516
|
+
assert_equal CoordFitsColumns.new(:name => 'col3'), c.spectral
|
3517
|
+
c.redshift = CoordFitsColumns.new(:name => 'col4')
|
3518
|
+
assert_equal CoordFitsColumns.new(:name => 'col4'), c.redshift
|
3519
|
+
end
|
3520
|
+
|
3521
|
+
def test_xml
|
3522
|
+
c1 = AstroCoordsFile.new(
|
3523
|
+
:file => Fits.new(:uri => 'http://www.noao.edu/'),
|
3524
|
+
:time => CoordFitsColumns.new(:name => 'col1'),
|
3525
|
+
:position => CoordFitsColumns.new(:name => 'col2'),
|
3526
|
+
:velocity => CoordFitsColumns.new(:name => 'col3'),
|
3527
|
+
:spectral => CoordFitsColumns.new(:name => 'col4'),
|
3528
|
+
:redshift => CoordFitsColumns.new(:name => 'col5')
|
3529
|
+
)
|
3530
|
+
|
3531
|
+
c2 = AstroCoordsFile.from_xml(c1.to_xml)
|
3532
|
+
assert_equal c1, c2
|
3533
|
+
end
|
3534
|
+
end
|
3535
|
+
|
3536
|
+
class CoordsTypeTest < ::Test::Unit::TestCase
|
3537
|
+
def test_constructor
|
3538
|
+
assert_nothing_raised do
|
3539
|
+
CoordsType.new(:coord_system_id => 'coord_ref')
|
3540
|
+
CoordsType.new(
|
3541
|
+
:coord_system_id => 'coord_ref',
|
3542
|
+
:coordinates => [PixelCoordinate.new(:value => 1.2), StringCoordinate.new(:value => 'column')]
|
3543
|
+
)
|
3544
|
+
end
|
3545
|
+
|
3546
|
+
assert_raises ArgumentError do
|
3547
|
+
::CoordsType.new
|
3548
|
+
end
|
3549
|
+
end
|
3550
|
+
|
3551
|
+
def test_accessor
|
3552
|
+
c = CoordsType.new(
|
3553
|
+
:coord_system_id => 'coord_ref',
|
3554
|
+
:coordinates => [PixelCoordinate.new(:value => 1.2), StringCoordinate.new(:value => 'column')]
|
3555
|
+
)
|
3556
|
+
|
3557
|
+
assert_equal IdRef.new('coord_ref'), c.coord_system_id
|
3558
|
+
assert_equal ListOfCoordinates.new([PixelCoordinate.new(:value => 1.2), StringCoordinate.new(:value => 'column')]), c.coordinates
|
3559
|
+
|
3560
|
+
c.coord_system_id = 'coord_ref2'
|
3561
|
+
assert_equal IdRef.new('coord_ref2'), c.coord_system_id
|
3562
|
+
c.coordinates = [PixelCoordinate.new(:value => 1.2), StringCoordinate.new(:value => 'column'), PixelCoordinate.new(:value => 5.4)]
|
3563
|
+
assert_equal(
|
3564
|
+
ListOfCoordinates.new([PixelCoordinate.new(:value => 1.2), StringCoordinate.new(:value => 'column'), PixelCoordinate.new(:value => 5.4)]),
|
3565
|
+
c.coordinates
|
3566
|
+
)
|
3567
|
+
end
|
3568
|
+
end
|
3569
|
+
|
3570
|
+
class AstroCoordsTypeTest < ::Test::Unit::TestCase
|
3571
|
+
def test_constructor
|
3572
|
+
assert_nothing_raised do
|
3573
|
+
AstroCoordsType.new(
|
3574
|
+
:coord_system_id => 'FK5-UTC-VEL',
|
3575
|
+
:time => TimeCoordinate.new(:name => 'Time'),
|
3576
|
+
:position => Position1D.new(:name => 'FK5Cart', :unit => PosUnit.new('m')),
|
3577
|
+
:velocity => Velocity1D.new(:name => 'Vel', :unit => PosUnit.new('m'), :vel_time_unit => VelTimeUnit.new('h')),
|
3578
|
+
:spectral => Spectral.new(:name => 'Spectrum'),
|
3579
|
+
:redshift => Redshift.new(:name => 'Redshift'),
|
3580
|
+
:coord_file => AstroCoordsFile.new(:file => Fits.new(:uri => 'http://www.noao.edu/'))
|
3581
|
+
)
|
3582
|
+
end
|
3583
|
+
|
3584
|
+
assert_raises ArgumentError do
|
3585
|
+
AstroCoordsType.new
|
3586
|
+
end
|
3587
|
+
end
|
3588
|
+
|
3589
|
+
def test_accessors
|
3590
|
+
c = AstroCoordsType.new(
|
3591
|
+
:coord_system_id => 'FK5-UTC-VEL',
|
3592
|
+
:time => TimeCoordinate.new(:name => 'Time'),
|
3593
|
+
:position => Position1D.new(:name => 'FK5Cart', :unit => PosUnit.new('m')),
|
3594
|
+
:velocity => Velocity1D.new(:name => 'Vel', :unit => PosUnit.new('m'), :vel_time_unit => VelTimeUnit.new('h')),
|
3595
|
+
:spectral => Spectral.new(:name => 'Spectrum'),
|
3596
|
+
:redshift => Redshift.new(:name => 'Redshift'),
|
3597
|
+
:coord_file => AstroCoordsFile.new(:file => Fits.new(:uri => 'http://www.noao.edu/'))
|
3598
|
+
)
|
3599
|
+
|
3600
|
+
assert_equal IdRef.new('FK5-UTC-VEL'), c.coord_system_id
|
3601
|
+
assert_equal TimeCoordinate.new(:name => 'Time'), c.time
|
3602
|
+
assert_equal Position1D.new(:name => 'FK5Cart', :unit => PosUnit.new('m')), c.position
|
3603
|
+
assert_equal Velocity1D.new(:name => 'Vel', :unit => PosUnit.new('m'), :vel_time_unit => VelTimeUnit.new('h')), c.velocity
|
3604
|
+
assert_equal Spectral.new(:name => 'Spectrum'), c.spectral
|
3605
|
+
assert_equal Redshift.new(:name => 'Redshift'), c.redshift
|
3606
|
+
assert_equal AstroCoordsFile.new(:file => Fits.new(:uri => 'http://www.noao.edu/')), c.coord_file
|
3607
|
+
|
3608
|
+
c.coord_system_id = 'FK5-LOCAL-VEL'
|
3609
|
+
assert_equal IdRef.new('FK5-LOCAL-VEL'), c.coord_system_id
|
3610
|
+
c.time = TimeCoordinate.new(:name => 'Time1')
|
3611
|
+
assert_equal TimeCoordinate.new(:name => 'Time1'), c.time
|
3612
|
+
c.position = Position1D.new(:name => 'FK5Cart', :unit => PosUnit.new('lyr'))
|
3613
|
+
assert_equal Position1D.new(:name => 'FK5Cart', :unit => PosUnit.new('lyr')), c.position
|
3614
|
+
c.velocity = Velocity1D.new(:name => 'Vel', :unit => PosUnit.new('lyr'), :vel_time_unit => VelTimeUnit.new('s'))
|
3615
|
+
assert_equal Velocity1D.new(:name => 'Vel', :unit => PosUnit.new('lyr'), :vel_time_unit => VelTimeUnit.new('s')), c.velocity
|
3616
|
+
c.spectral = Spectral.new(:name => 'Spectrum1')
|
3617
|
+
assert_equal Spectral.new(:name => 'Spectrum1'), c.spectral
|
3618
|
+
c.redshift = Redshift.new(:name => 'Redshift1')
|
3619
|
+
assert_equal Redshift.new(:name => 'Redshift1'), c.redshift
|
3620
|
+
c.coord_file = AstroCoordsFile.new(:file => Fits.new(:uri => 'http://www.stsci.edu/'))
|
3621
|
+
assert_equal AstroCoordsFile.new(:file => Fits.new(:uri => 'http://www.stsci.edu/')), c.coord_file
|
3622
|
+
end
|
3623
|
+
|
3624
|
+
def test_relationships
|
3625
|
+
c = AstroCoordsType.new(:coord_system_id => 'FK5-UTC-VEL')
|
3626
|
+
assert_kind_of CoordsType, c
|
3627
|
+
end
|
3628
|
+
end
|
3629
|
+
|
3630
|
+
class AstroCoordsTest < ::Test::Unit::TestCase
|
3631
|
+
def test_xml
|
3632
|
+
c1 = AstroCoords.new(
|
3633
|
+
:coord_system_id => 'FK5-UTC-VEL',
|
3634
|
+
:time => TimeCoordinate.new(:name => 'Time'),
|
3635
|
+
:position => Position1D.new(:name => 'FK5Cart', :unit => PosUnit.new('m')),
|
3636
|
+
:velocity => Velocity1D.new(:name => 'Vel', :unit => PosUnit.new('m'), :vel_time_unit => VelTimeUnit.new('h')),
|
3637
|
+
:spectral => Spectral.new(:name => 'Spectrum'),
|
3638
|
+
:redshift => Redshift.new(:name => 'Redshift'),
|
3639
|
+
:coord_file => AstroCoordsFile.new(:file => Fits.new(:uri => 'http://www.noao.edu/'))
|
3640
|
+
)
|
3641
|
+
|
3642
|
+
c2 = AstroCoords.from_xml(c1.to_xml)
|
3643
|
+
assert_equal c1, c2
|
3644
|
+
end
|
3645
|
+
end
|
3646
|
+
|
3647
|
+
class PixelCoordsTypeTest < ::Test::Unit::TestCase
|
3648
|
+
def test_initialize
|
3649
|
+
assert_nothing_raised do
|
3650
|
+
PixelCoordsType.new(
|
3651
|
+
:coordinates => [PixelCoordinate.new(:value => 2.3)],
|
3652
|
+
:coord_system_id => IdRef.new('ref')
|
3653
|
+
)
|
3654
|
+
end
|
3655
|
+
|
3656
|
+
assert_raises ArgumentError do
|
3657
|
+
PixelCoordsType.new
|
3658
|
+
end
|
3659
|
+
|
3660
|
+
assert_raises RuntimeError do
|
3661
|
+
PixelCoordsType.new(
|
3662
|
+
:coordinates => [],
|
3663
|
+
:coord_system_id => IdRef.new('ref')
|
3664
|
+
)
|
3665
|
+
end
|
3666
|
+
end
|
3667
|
+
|
3668
|
+
def test_accessors
|
3669
|
+
c = PixelCoordsType.new(
|
3670
|
+
:coordinates => [PixelCoordinate.new(:value => 2.3)],
|
3671
|
+
:coord_system_id => IdRef.new('ref')
|
3672
|
+
)
|
3673
|
+
|
3674
|
+
assert_equal ListOfPixelCoordinates.new([PixelCoordinate.new(:value => 2.3)]), c.coordinates
|
3675
|
+
assert_equal IdRef.new('ref'), c.coord_system_id
|
3676
|
+
|
3677
|
+
c.coordinates = [PixelCoordinate.new(:value => 2.3), PixelCoordinate.new(:value => 1.1)]
|
3678
|
+
assert_equal ListOfPixelCoordinates.new([PixelCoordinate.new(:value => 2.3), PixelCoordinate.new(:value => 1.1)]), c.coordinates
|
3679
|
+
c.coord_system_id = 'ref2'
|
3680
|
+
assert_equal IdRef.new('ref2'), c.coord_system_id
|
3681
|
+
end
|
3682
|
+
|
3683
|
+
def test_relationships
|
3684
|
+
assert_kind_of CoordsType, PixelCoordsType.new(:coord_system_id => IdRef.new('ref'))
|
3685
|
+
end
|
3686
|
+
end
|
3687
|
+
|
3688
|
+
class PixelCoordsTest < ::Test::Unit::TestCase
|
3689
|
+
def test_xml
|
3690
|
+
c1 = PixelCoords.new(
|
3691
|
+
:coordinates => [PixelCoordinate.new(:value => 2.3, :name => 'pixcoord1')],
|
3692
|
+
:coord_system_id => IdRef.new('ref')
|
3693
|
+
)
|
3694
|
+
|
3695
|
+
c2 = PixelCoords.from_xml(c1.to_xml)
|
3696
|
+
assert_equal c1, c2
|
3697
|
+
end
|
3698
|
+
end
|
3699
|
+
|
3700
|
+
end
|
3701
|
+
end
|
3702
|
+
end
|
3703
|
+
end
|
3704
|
+
end
|