Exemple #1
0
  def test_seed (self):
    """Upload a seed and test it's fields"""

    # Make a seed
    makeAnno (p, 3)

    # Test the parent
    parent = random.randint (0,100)
    f = setField(p, 'parent', parent)
    f = getField(p, 'parent')
    assert parent == int(f.content)

    # Test the source
    source = random.randint (0,100)
    f = setField(p, 'source', source)
    f = getField(p, 'source')
    assert source == int(f.content)

    # Test the cubelocation
    cubelocation = random.randint (0,100)
    f = setField(p, 'cubelocation', cubelocation)
    f = getField(p, 'cubelocation')
    assert cubelocation == int(f.content)

    # Test the position
    position = [random.randint (0,100), random.randint(0,100), random.randint(0,100)]
    f = setField(p, 'position', ','.join([str(i) for i in position]))
    f = getField(p, 'position')
    assert ','.join([str(i) for i in position]) == f.content
Exemple #2
0
    def test_wrong(self):

        # Make an annotation
        makeAnno(p, 2)

        # Test the synapse type
        synapse_type = random.randint(0, 100)
        f = setField(p, 'synapse_type', synapse_type)
        f = getField(p, 'synapse_type')
        assert synapse_type == int(f.content)

        # Test the weight
        weight = random.random()
        f = setField(p, 'weight', weight)
        f = getField(p, 'weight')
        assert abs(weight - float(f.content)) < 0.001

        # Test inheritance
        status = random.randint(0, 100)
        f = setField(p, 'status', status)
        f = getField(p, 'status')
        assert status == int(f.content)

        #  bad format to a number
        url = "https://{}/sd/{}/{}/{}/setField/status/aa/".format(
            SITE_HOST, 'unittest', 'unit_anno', p.annoid)
        req = getURL(url)
        assert (req.status_code >= 400)

        #  request a missing field
        url = "https://{}/sd/{}/{}/{}/getField/othernonesuch/".format(
            SITE_HOST, 'unittest', 'unit_anno', p.annoid)
        req = getURL(url)
        assert (req.status_code >= 400)
Exemple #3
0
  def test_organelle (self):
    """Upload an organelle and test it's fields"""

    # Make an organelle
    makeAnno ( p, 6 )

    # Test the parentseed
    parentseed = random.randint (0,100)
    f = setField(p, 'parentseed', parentseed)
    f = getField(p, 'parentseed')
    assert parentseed == int(f.content)

    # Test the organelleclass
    organelleclass = random.randint (0,100)
    f = setField(p, 'organelleclass', organelleclass)
    f = getField(p, 'organelleclass')
    assert organelleclass == int(f.content)

    # Test the segment
    segment = random.randint (0,65535)
    f = setField(p, 'segment', segment)
    f = getField(p, 'segment')
    assert segment == int(f.content)

    # Test status
    status = random.randint (0,100)
    f = setField(p, 'status', status)
    f = getField(p, 'status')
    assert status == int(f.content)

    # Test the seeds
    seeds = [random.randint(0,100), random.randint(0,100), random.randint(0,100)]
    f = setField(p, 'seeds', ','.join([str(i) for i in seeds]))
    f = getField(p, 'seeds')
    assert ','.join([str(i) for i in seeds]) == f.content
Exemple #4
0
  def test_wrong ( self ):

    # Make an annotation
    makeAnno (p, 2)

    # Test the synapse type
    synapse_type = random.randint (0,100)
    f = setField(p, 'synapse_type', synapse_type)
    f = getField(p, 'synapse_type')
    assert synapse_type == int(f.content)

    # Test the weight
    weight = random.random ()
    f = setField(p, 'weight', weight)
    f = getField(p, 'weight')
    assert abs(weight - float(f.content)) < 0.001

    # Test inheritance
    status = random.randint (0,100)
    f = setField(p, 'status', status)
    f = getField(p, 'status')
    assert status == int(f.content)

    #  bad format to a number
    url =  "https://{}/sd/{}/{}/{}/setField/status/aa/".format(SITE_HOST, 'unittest', 'unit_anno', p.annoid)
    req = getURL( url )
    assert(req.status_code >= 400)

    #  request a missing field
    url =  "https://{}/sd/{}/{}/{}/getField/othernonesuch/".format(SITE_HOST, 'unittest', 'unit_anno', p.annoid)
    req = getURL( url )
    assert(req.status_code >= 400)
Exemple #5
0
  def test_roi (self):
    """Upload an roi and test it's fields"""

    # Make a skeleton
    makeAnno (p, 9)

    # test the parent
    parent = random.randint (0,65535)
    f = setField(p, 'parent', parent)
    f = getField(p, 'parent')
    assert parent == int(f.content)

    # make a bunch of children ROIs
    q = Params()
    q.token = 'unittest'
    q.resolution = 0
    q.channels = ['unit_anno']

    childids = []
    for i in range(0,4):
      makeAnno ( q, 9)
      f = setField(q, 'parent', p.annoid)
      childids.append(q.annoid)

    # Test children
    f = getField(p, 'children')
    rchildids = f.content.split(',')
    for cid in rchildids:
      assert int(cid) in childids
    assert len(rchildids) == 4
Exemple #6
0
    def test_seed(self):
        """Upload a seed and test it's fields"""

        # Make a seed
        makeAnno(p, 3)

        # Test the parent
        parent = random.randint(0, 100)
        f = setField(p, 'parent', parent)
        f = getField(p, 'parent')
        assert parent == int(f.content)

        # Test the source
        source = random.randint(0, 100)
        f = setField(p, 'source', source)
        f = getField(p, 'source')
        assert source == int(f.content)

        # Test the cubelocation
        cubelocation = random.randint(0, 100)
        f = setField(p, 'cubelocation', cubelocation)
        f = getField(p, 'cubelocation')
        assert cubelocation == int(f.content)

        # Test the position
        position = [
            random.randint(0, 100),
            random.randint(0, 100),
            random.randint(0, 100)
        ]
        f = setField(p, 'position', ','.join([str(i) for i in position]))
        f = getField(p, 'position')
        assert ','.join([str(i) for i in position]) == f.content
Exemple #7
0
    def test_roi(self):
        """Upload an roi and test it's fields"""

        # Make a skeleton
        makeAnno(p, 9)

        # test the parent
        parent = random.randint(0, 65535)
        f = setField(p, 'parent', parent)
        f = getField(p, 'parent')
        assert parent == int(f.content)

        # make a bunch of children ROIs
        q = Params()
        q.token = 'unittest'
        q.resolution = 0
        q.channels = ['unit_anno']

        childids = []
        for i in range(0, 4):
            makeAnno(q, 9)
            f = setField(q, 'parent', p.annoid)
            childids.append(q.annoid)

        # Test children
        f = getField(p, 'children')
        rchildids = f.content.split(',')
        for cid in rchildids:
            assert int(cid) in childids
        assert len(rchildids) == 4
Exemple #8
0
  def test_annotation (self):
    """Upload an annotation and test it's fields"""

    # Make an annotation
    makeAnno (p, 1)

    # Test Status
    status = random.randint (0,100)
    f = setField(p, 'status', status)
    f = getField(p, 'status')
    assert status == int(f.content)

    # Test confidence
    confidence = random.random ()
    f = setField(p, 'confidence', confidence)
    f = getField(p, 'confidence')
    assert abs(confidence - float(f.content)) < 0.001
Exemple #9
0
    def test_annotation(self):
        """Upload an annotation and test it's fields"""

        # Make an annotation
        makeAnno(p, 1)

        # Test Status
        status = random.randint(0, 100)
        f = setField(p, 'status', status)
        f = getField(p, 'status')
        assert status == int(f.content)

        # Test confidence
        confidence = random.random()
        f = setField(p, 'confidence', confidence)
        f = getField(p, 'confidence')
        assert abs(confidence - float(f.content)) < 0.001
Exemple #10
0
  def test_node (self):
    """Upload a skeleton node and test it's fields"""

    # Make a node
    makeAnno (p, 7)

    # test the nodetype
    nodetype = random.randint (0,100)
    f = setField(p, 'nodetype', nodetype)
    f = getField(p, 'nodetype')
    assert nodetype == int(f.content)

    # test the skeletonid
    skeletonid = random.randint (0,65535)
    f = setField(p, 'skeletonid', skeletonid)
    f = getField(p, 'skeletonid')
    assert skeletonid == int(f.content)

    # test the pointid
    pointid = random.randint (0,65535)
    f = setField(p, 'pointid', pointid)
    f = getField(p, 'pointid')
    assert pointid == int(f.content)

    # test the parentid
    parentid = random.randint (0,65535)
    f = setField(p, 'parentid', parentid)
    f = getField(p, 'parentid')
    assert parentid == int(f.content)

    # test the radius
    radius = random.random()
    f = setField(p, 'radius', radius)
    f = getField(p, 'radius')
    assert abs(radius - float(f.content)) < 0.001

    # test the location
    location = [random.random(), random.random(), random.random()]
    f = setField(p, 'location', ','.join([str(i) for i in location]))
    f = getField(p, 'location')
    assert ','.join([str(i) for i in location]) == f.content

    # make a bunch of children
    q = Params()
    q.token = 'unittest'
    q.resolution = 0
    q.channels = ['unit_anno']

    childids = []
    for i in range(0,4):
      makeAnno ( q, 9)
      f = setField(q, 'parent', p.annoid)
      childids.append(q.annoid)

    # Test children
    f = getField(p, 'children')
    rchildids = f.content.split(',')
    for cid in rchildids:
      assert int(cid) in childids
    assert len(rchildids) == 4
Exemple #11
0
    def test_node(self):
        """Upload a skeleton node and test it's fields"""

        # Make a node
        makeAnno(p, 7)

        # test the nodetype
        nodetype = random.randint(0, 100)
        f = setField(p, 'nodetype', nodetype)
        f = getField(p, 'nodetype')
        assert nodetype == int(f.content)

        # test the skeletonid
        skeletonid = random.randint(0, 65535)
        f = setField(p, 'skeletonid', skeletonid)
        f = getField(p, 'skeletonid')
        assert skeletonid == int(f.content)

        # test the pointid
        pointid = random.randint(0, 65535)
        f = setField(p, 'pointid', pointid)
        f = getField(p, 'pointid')
        assert pointid == int(f.content)

        # test the parentid
        parentid = random.randint(0, 65535)
        f = setField(p, 'parentid', parentid)
        f = getField(p, 'parentid')
        assert parentid == int(f.content)

        # test the radius
        radius = random.random()
        f = setField(p, 'radius', radius)
        f = getField(p, 'radius')
        assert abs(radius - float(f.content)) < 0.001

        # test the location
        location = [random.random(), random.random(), random.random()]
        f = setField(p, 'location', ','.join([str(i) for i in location]))
        f = getField(p, 'location')
        assert ','.join([str(i) for i in location]) == f.content

        # make a bunch of children
        q = Params()
        q.token = 'unittest'
        q.resolution = 0
        q.channels = ['unit_anno']

        childids = []
        for i in range(0, 4):
            makeAnno(q, 9)
            f = setField(q, 'parent', p.annoid)
            childids.append(q.annoid)

        # Test children
        f = getField(p, 'children')
        rchildids = f.content.split(',')
        for cid in rchildids:
            assert int(cid) in childids
        assert len(rchildids) == 4
Exemple #12
0
  def test_synapse (self):
    """Upload a synapse and test it's fields"""

    # Make a synapse
    makeAnno (p, 2)

    # Test synapse type
    synapse_type = random.randint (0,100)
    f = setField(p, 'synapse_type', synapse_type)
    f = getField(p, 'synapse_type')
    assert synapse_type == int(f.content)

    # Test the weight
    weight = random.random ()
    f = setField(p, 'weight', weight)
    f = getField(p, 'weight')
    assert abs(weight - float(f.content)) < 0.001

    # Test the inheritance
    status = random.randint (0,100)
    f = setField(p, 'status', status)
    f = getField(p, 'status')
    assert status == int(f.content)

    # Test the seeds
    seeds = [random.randint(0,100), random.randint(0,100), random.randint(0,100)]
    f = setField(p, 'seeds', ','.join([str(i) for i in seeds]))
    f = getField(p, 'seeds')
    assert ','.join([str(i) for i in seeds]) == f.content

    # test the centroid
    centroid = [random.randint(0,65535), random.randint(0,65535), random.randint(0,65535)]
    f = setField(p, 'centroid', ','.join([str(i) for i in centroid]))
    f = getField(p, 'centroid')
    assert ','.join([str(i) for i in centroid]) == f.content

    # Test the segments
    segments = [random.randint(0,100), random.randint(0,100), random.randint(0,100)]
    f = setField(p, 'segments', ','.join([str(i) for i in segments]))
    f = getField(p, 'segments')
    assert ','.join([str(i) for i in segments]) == f.content

    # Test the presegments
    presegments = [random.randint(0,100), random.randint(0,100), random.randint(0,100)]
    f = setField(p, 'presegments', ','.join([str(i) for i in presegments]))
    f = getField(p, 'presegments')
    assert ','.join([str(i) for i in presegments]) == f.content

    # Test the postsegments
    postsegments = [random.randint(0,100), random.randint(0,100), random.randint(0,100)]
    f = setField(p, 'postsegments', ','.join([str(i) for i in postsegments]))
    f = getField(p, 'postsegments')
    assert ','.join([str(i) for i in postsegments]) == f.content
Exemple #13
0
  def test_kvpairs(self):

    # do a general kv test for each annotation type
    for i in range(1,10):

      makeAnno (p, i)

      key = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(random.randint(1,128)))
      value = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(random.randint(1,1024)))

      setField( p, key, value )
      f = getField ( p, key )
      assert ( f.content == value )
Exemple #14
0
    def test_organelle(self):
        """Upload an organelle and test it's fields"""

        # Make an organelle
        makeAnno(p, 6)

        # Test the parentseed
        parentseed = random.randint(0, 100)
        f = setField(p, 'parentseed', parentseed)
        f = getField(p, 'parentseed')
        assert parentseed == int(f.content)

        # Test the organelleclass
        organelleclass = random.randint(0, 100)
        f = setField(p, 'organelleclass', organelleclass)
        f = getField(p, 'organelleclass')
        assert organelleclass == int(f.content)

        # Test the segment
        segment = random.randint(0, 65535)
        f = setField(p, 'segment', segment)
        f = getField(p, 'segment')
        assert segment == int(f.content)

        # Test status
        status = random.randint(0, 100)
        f = setField(p, 'status', status)
        f = getField(p, 'status')
        assert status == int(f.content)

        # Test the seeds
        seeds = [
            random.randint(0, 100),
            random.randint(0, 100),
            random.randint(0, 100)
        ]
        f = setField(p, 'seeds', ','.join([str(i) for i in seeds]))
        f = getField(p, 'seeds')
        assert ','.join([str(i) for i in seeds]) == f.content
Exemple #15
0
    def test_kvpairs(self):

        # do a general kv test for each annotation type
        for i in range(1, 10):

            makeAnno(p, i)

            key = ''.join(
                random.choice(string.ascii_letters + string.digits)
                for _ in range(random.randint(1, 128)))
            value = ''.join(
                random.choice(string.ascii_letters + string.digits)
                for _ in range(random.randint(1, 1024)))

            setField(p, key, value)
            f = getField(p, key)
            assert (f.content == value)
Exemple #16
0
    def test_neuron(self):
        """Upload a neuron and test it's fields"""

        # Make a neuron
        makeAnno(p, 5)

        # make a bunch of segments and add to the neuron
        q = Params()
        q.token = 'unittest'
        q.resolution = 0
        q.channels = ['unit_anno']

        segids = []
        for i in range(0, 5):
            makeAnno(q, 4)
            f = setField(q, 'neuron', p.annoid)
            segids.append(q.annoid)

        # Test segments
        f = getField(p, 'segments')
        rsegids = f.content.split(',')
        for sid in rsegids:
            assert int(sid) in segids
        assert len(rsegids) == 5
Exemple #17
0
  def test_neuron (self):
    """Upload a neuron and test it's fields"""

    # Make a neuron
    makeAnno (p, 5)

    # make a bunch of segments and add to the neuron
    q = Params()
    q.token = 'unittest'
    q.resolution = 0
    q.channels = ['unit_anno']

    segids = []
    for i in range(0,5):
      makeAnno ( q, 4)
      f = setField(q, 'neuron', p.annoid)
      segids.append(q.annoid)

    # Test segments
    f = getField(p, 'segments')
    rsegids = f.content.split(',')
    for sid in rsegids:
      assert int(sid) in segids
    assert len(rsegids) == 5
Exemple #18
0
  def test_skeleton (self):
    """Upload a skeleton and test it's fields"""

    # Make a node
    makeAnno (p, 8)

    # test the nodetype
    skeletontype = random.randint (0,100)
    f = setField(p, 'skeletontype', skeletontype)
    f = getField(p, 'skeletontype')
    assert skeletontype == int(f.content)

    # test the rootnode
    rootnode = random.randint (0,65535)
    f = setField(p, 'rootnode', rootnode)
    f = getField(p, 'rootnode')
    assert rootnode == int(f.content)

    # add some nodes to the skeleton and query them
    # make a bunch of children cnodes
    q = Params()
    q.token = 'unittest'
    q.resolution = 0
    q.channels = ['unit_anno']

    r = Params()
    r.token = 'unittest'
    r.resolution = 0
    r.channels = ['unit_anno']
    # make a root node

    s = Params()
    s.token = 'unittest'
    s.resolution = 0
    s.channels = ['unit_anno']
    # make a root node

    skelids = []

    # make a root node
    makeAnno ( q, 7)
    setField(p, 'rootnode', q.annoid)
    setField(q, 'skeleton', p.annoid)
    skelids.append(q.annoid)

    # Make 2 children and four grandchildren
    for i in range(0,2):
      makeAnno ( r, 7)
      f = setField(r, 'parent', q.annoid)
      f = setField(r, 'skeleton', p.annoid)
      skelids.append(r.annoid)
      for i in range(0,2):
        makeAnno ( s, 7)
        f = setField(s, 'parent', r.annoid)
        f = setField(s, 'skeleton', p.annoid)
        skelids.append(s.annoid)

    # Test skeleton
    f = getField(p, 'nodes')
    rskelids = f.content.split(',')
    for sid in rskelids:
      assert int(sid) in skelids
    assert len(rskelids) == 7
Exemple #19
0
  def test_test_segment (self):
    """Upload a segment and test it's fields"""

    for i in range(1,10):
      makeAnno (p, 1)

    # Make a segment
    makeAnno (p, 4)

    # make a bunch of synapses
    q = Params()
    q.token = 'unittest'
    q.resolution = 0
    q.channels = ['unit_anno']

    synids = []
    presynids = []
    postsynids = []
    for i in range(0,8):
      makeAnno ( q, 2)
      f = setField(q, 'segments', ','.join([str(p.annoid),str(random.randint(500,1000))]))
#      f = setField(q, 'presegments', ','.join([str(p.annoid),str(random.randint(500,1000))]))
      f = setField(q, 'presegments', ','.join([str(p.annoid)]))
      f = setField(q, 'postsegments', ','.join([str(p.annoid)]))
      synids.append(q.annoid)
      presynids.append(q.annoid)
      postsynids.append(q.annoid)

    # make one more segment
    makeAnno ( q, 2)
    f = setField(q, 'segments', p.annoid)
    synids.append(q.annoid)

    # Test synapses
    f = getField(p, 'synapses')
    rsynids = f.content.split(',')
    for sid in rsynids:
      assert int(sid) in synids
    assert len(rsynids) == 9

    # Test presynapses
    f = getField(p, 'presynapses')
    rsynids = f.content.split(',')
    for sid in rsynids:
      assert int(sid) in presynids
    assert len(rsynids) == 8

    # Test postsynapses
    f = getField(p, 'postsynapses')
    rsynids = f.content.split(',')
    for sid in rsynids:
      assert int(sid) in postsynids
    assert len(rsynids) == 8

    # make a bunch of organelles
    q = Params()
    q.token = 'unittest'
    q.resolution = 0
    q.channels = ['unit_anno']

    orgids = []
    for i in range(0,8):
      makeAnno ( q, 6 )
      f = setField(q, 'segment', p.annoid)
      orgids.append(q.annoid)

    # Test synapses
    f = getField(p, 'organelles')
    rorgids = f.content.split(',')
    for cid in rorgids:
      assert int(cid) in orgids
    assert len(rorgids) == 8
Exemple #20
0
    def test_test_segment(self):
        """Upload a segment and test it's fields"""

        for i in range(1, 10):
            makeAnno(p, 1)

        # Make a segment
        makeAnno(p, 4)

        # make a bunch of synapses
        q = Params()
        q.token = 'unittest'
        q.resolution = 0
        q.channels = ['unit_anno']

        synids = []
        presynids = []
        postsynids = []
        for i in range(0, 8):
            makeAnno(q, 2)
            f = setField(
                q, 'segments',
                ','.join([str(p.annoid),
                          str(random.randint(500, 1000))]))
            #      f = setField(q, 'presegments', ','.join([str(p.annoid),str(random.randint(500,1000))]))
            f = setField(q, 'presegments', ','.join([str(p.annoid)]))
            f = setField(q, 'postsegments', ','.join([str(p.annoid)]))
            synids.append(q.annoid)
            presynids.append(q.annoid)
            postsynids.append(q.annoid)

        # make one more segment
        makeAnno(q, 2)
        f = setField(q, 'segments', p.annoid)
        synids.append(q.annoid)

        # Test synapses
        f = getField(p, 'synapses')
        rsynids = f.content.split(',')
        for sid in rsynids:
            assert int(sid) in synids
        assert len(rsynids) == 9

        # Test presynapses
        f = getField(p, 'presynapses')
        rsynids = f.content.split(',')
        for sid in rsynids:
            assert int(sid) in presynids
        assert len(rsynids) == 8

        # Test postsynapses
        f = getField(p, 'postsynapses')
        rsynids = f.content.split(',')
        for sid in rsynids:
            assert int(sid) in postsynids
        assert len(rsynids) == 8

        # make a bunch of organelles
        q = Params()
        q.token = 'unittest'
        q.resolution = 0
        q.channels = ['unit_anno']

        orgids = []
        for i in range(0, 8):
            makeAnno(q, 6)
            f = setField(q, 'segment', p.annoid)
            orgids.append(q.annoid)

        # Test synapses
        f = getField(p, 'organelles')
        rorgids = f.content.split(',')
        for cid in rorgids:
            assert int(cid) in orgids
        assert len(rorgids) == 8
Exemple #21
0
    def test_synapse(self):
        """Upload a synapse and test it's fields"""

        # Make a synapse
        makeAnno(p, 2)

        # Test synapse type
        synapse_type = random.randint(0, 100)
        f = setField(p, 'synapse_type', synapse_type)
        f = getField(p, 'synapse_type')
        assert synapse_type == int(f.content)

        # Test the weight
        weight = random.random()
        f = setField(p, 'weight', weight)
        f = getField(p, 'weight')
        assert abs(weight - float(f.content)) < 0.001

        # Test the inheritance
        status = random.randint(0, 100)
        f = setField(p, 'status', status)
        f = getField(p, 'status')
        assert status == int(f.content)

        # Test the seeds
        seeds = [
            random.randint(0, 100),
            random.randint(0, 100),
            random.randint(0, 100)
        ]
        f = setField(p, 'seeds', ','.join([str(i) for i in seeds]))
        f = getField(p, 'seeds')
        assert ','.join([str(i) for i in seeds]) == f.content

        # test the centroid
        centroid = [
            random.randint(0, 65535),
            random.randint(0, 65535),
            random.randint(0, 65535)
        ]
        f = setField(p, 'centroid', ','.join([str(i) for i in centroid]))
        f = getField(p, 'centroid')
        assert ','.join([str(i) for i in centroid]) == f.content

        # Test the segments
        segments = [
            random.randint(0, 100),
            random.randint(0, 100),
            random.randint(0, 100)
        ]
        f = setField(p, 'segments', ','.join([str(i) for i in segments]))
        f = getField(p, 'segments')
        assert ','.join([str(i) for i in segments]) == f.content

        # Test the presegments
        presegments = [
            random.randint(0, 100),
            random.randint(0, 100),
            random.randint(0, 100)
        ]
        f = setField(p, 'presegments', ','.join([str(i) for i in presegments]))
        f = getField(p, 'presegments')
        assert ','.join([str(i) for i in presegments]) == f.content

        # Test the postsegments
        postsegments = [
            random.randint(0, 100),
            random.randint(0, 100),
            random.randint(0, 100)
        ]
        f = setField(p, 'postsegments',
                     ','.join([str(i) for i in postsegments]))
        f = getField(p, 'postsegments')
        assert ','.join([str(i) for i in postsegments]) == f.content
Exemple #22
0
    def test_skeleton(self):
        """Upload a skeleton and test it's fields"""

        # Make a node
        makeAnno(p, 8)

        # test the nodetype
        skeletontype = random.randint(0, 100)
        f = setField(p, 'skeletontype', skeletontype)
        f = getField(p, 'skeletontype')
        assert skeletontype == int(f.content)

        # test the rootnode
        rootnode = random.randint(0, 65535)
        f = setField(p, 'rootnode', rootnode)
        f = getField(p, 'rootnode')
        assert rootnode == int(f.content)

        # add some nodes to the skeleton and query them
        # make a bunch of children cnodes
        q = Params()
        q.token = 'unittest'
        q.resolution = 0
        q.channels = ['unit_anno']

        r = Params()
        r.token = 'unittest'
        r.resolution = 0
        r.channels = ['unit_anno']
        # make a root node

        s = Params()
        s.token = 'unittest'
        s.resolution = 0
        s.channels = ['unit_anno']
        # make a root node

        skelids = []

        # make a root node
        makeAnno(q, 7)
        setField(p, 'rootnode', q.annoid)
        setField(q, 'skeleton', p.annoid)
        skelids.append(q.annoid)

        # Make 2 children and four grandchildren
        for i in range(0, 2):
            makeAnno(r, 7)
            f = setField(r, 'parent', q.annoid)
            f = setField(r, 'skeleton', p.annoid)
            skelids.append(r.annoid)
            for i in range(0, 2):
                makeAnno(s, 7)
                f = setField(s, 'parent', r.annoid)
                f = setField(s, 'skeleton', p.annoid)
                skelids.append(s.annoid)

        # Test skeleton
        f = getField(p, 'nodes')
        rskelids = f.content.split(',')
        for sid in rskelids:
            assert int(sid) in skelids
        assert len(rskelids) == 7