1 | from nose.tools import *
|
---|
2 | from asap.selector import selector
|
---|
3 |
|
---|
4 |
|
---|
5 | # call constructor with args
|
---|
6 | def constructor(d):
|
---|
7 | p = selector(**d)
|
---|
8 | for k, v in d.items():
|
---|
9 | meth = getattr(p, 'get_%s' % k)
|
---|
10 | val = v
|
---|
11 | if not hasattr(val, "__len__"):
|
---|
12 | val = [val]
|
---|
13 | assert_equals(meth(), val)
|
---|
14 |
|
---|
15 | # generator for constructor arguments
|
---|
16 | def test_constructor_keys():
|
---|
17 | args = [ { 'rows': 0 },
|
---|
18 | { 'rows': [1,2]},
|
---|
19 | { 'ifs': 0 },
|
---|
20 | { 'ifs': [1,2]},
|
---|
21 | { 'beams': 0 },
|
---|
22 | { 'beams': [1,2] },
|
---|
23 | { 'pols': 0 },
|
---|
24 | { 'pols': range(4) },
|
---|
25 | { 'cycles': 0 },
|
---|
26 | { 'cycles': range(5) },
|
---|
27 | { 'scans': 0 },
|
---|
28 | { 'scans': range(5) },
|
---|
29 | { 'scans': range(5), 'beams': 0 },
|
---|
30 | ]
|
---|
31 | for arg in args:
|
---|
32 | yield constructor, arg
|
---|
33 |
|
---|
34 | def test_copy_constructor():
|
---|
35 | v = [0]
|
---|
36 | s = selector(ifs=v)
|
---|
37 | scpy = selector(s)
|
---|
38 | assert_equals(s.get_ifs(), scpy.get_ifs())
|
---|
39 | scpy.set_beams(v)
|
---|
40 | assert_not_equals(s.get_beams(), scpy.get_beams())
|
---|
41 |
|
---|
42 |
|
---|
43 | def test_add():
|
---|
44 | v = [0]
|
---|
45 | s1 = selector(ifs=v)
|
---|
46 | s2 = selector(beams=v)
|
---|
47 | s3 = s1 + s2
|
---|
48 | assert_equals(s3.get_ifs(), v)
|
---|
49 | assert_equals(s3.get_beams(), v)
|
---|
50 | assert_not_equals(id(s3), id(s1))
|
---|
51 | assert_not_equals(id(s3), id(s2))
|
---|
52 |
|
---|
53 | def test_fields():
|
---|
54 | base = ['pols', 'ifs', 'beams', 'scans', 'cycles', 'name',
|
---|
55 | 'query', 'types', 'rows']
|
---|
56 | assert_equals(selector.fields, base)
|
---|
57 |
|
---|
58 | def test_reset():
|
---|
59 | v = [0]
|
---|
60 | s = selector(ifs=v)
|
---|
61 | assert_equals(s.get_ifs(), v)
|
---|
62 | s.reset()
|
---|
63 | assert_true(s.is_empty())
|
---|
64 |
|
---|