示例#1
0
class XioTest(unittest.TestCase):

    def setUp(self):
        #Test of an indexed file
        self.f = XIOFile('data/types.xio.gz', indexing=True)
        #Test of an indexed file with a preset number of lines
        self.j = XIOFile('data/types.xio.gz', 'r', 10, indexing=True)
        #Test of an an-unidexed file, now default
        self.g = XIOFile('data/types.xio.gz', indexing=False)
        #Test write mode (old legacy format)
        self.h = XIOFile('data/trywriting.xio.gz', 'w', fileformat='legacy')
        self.h.xio_writeline('<irio:sfint32 value="35" '
                             'sensorName="xioFileClass/desk3/skeletonCount" '
                             'timestamp="13765381"></irio:sfint32>\n')
        self.h.xio_writeline(self.h.xio_formatline('sfint32', 37, 'desk3',
                                                   'skeletonCount', 13765381))
        self.h.xiofile_close()
        #Test write mode (new default venice format)
        self.l = XIOFile('data/trywriting2.xio.gz', 'w')
        self.l.xio_writeline(self.l.xio_formatline('sfint32', 37, 'desk3',
                                                   'skeletonCount', 13765381))
        self.l.xiofile_close()
        #Test write mode, by opening the file previously written to
        self.i = XIOFile('data/trywriting.xio.gz', 'r', indexing=True)
        self.m = XIOFile('data/trywriting2.xio.gz', 'r', indexing=True)
        #Test copy utility, copy part of the file to a new file
        xiofile_quickcopy('data/types.xio.gz', 'data/newtypes.xio.gz', 0, 5)
        #Test result of copy, by loading the copy
        self.k = XIOFile('data/newtypes.xio.gz', 'r', indexing=True)
        #Test of an un-compressed file
        self.n = XIOFile('data/types.xio', indexing=True)
        #File to specifically test line ranges
        self.o = XIOFile('data/linestest.xio.gz', indexing=True)
        #Similar for unindexed mode
        self.p = XIOFile('data/linestest.xio.gz')
        self.n = XIOFile('data/types.xio', indexing=True)
        self.q = XIOFile('data/parsing5.xio.gz', indexing=True)
        self.nr = XIOFile('data/unreadable.xio.gz')

    def test_xiofile_indexed(self):
        self.failUnlessEqual(str(type(self.f)),
                             '<class \'mumodo.xiofile.XIOFile\'>')
        self.failUnlessEqual(self.f.mode, 'r')
        self.failUnlessEqual(self.f.indexed, True)
        self.failUnlessEqual(self.f.max_lines, 15)
        self.failUnlessEqual(self.f.min_time, 1376571532081L)
        self.failUnlessEqual(self.f.max_time, 1376571532082L)
        self.failUnlessEqual(self.f.xio_getline(2), '<irio:sfint32 xmlns="'
             '" xmlns:ns3="http://www.techfak.uni-bielefeld.de/ags/wbski/'
             'instantloggerprotocol" value="2" timestamp="1376571532081" '
             'sensorName="dsglab-desk-3/skeletonCount" '
             'type="Sample"></irio:sfint32>\n')
        self.failUnlessEqual(self.f.xio_getline_attime(1376571532081,
                                                       relative=False),
                              '<irio:sfint32 xmlns="" xmlns:ns3="http://'
                              'www.techfak.uni-bielefeld.de/ags/wbski/'
                              'instantloggerprotocol" value="90310" '
                              'timestamp="1376571532081" sensorName="dsglab'
                              '-desk-3/framenumber" type="Sample">'
                              '</irio:sfint32>\n')
        self.failUnlessEqual(self.f.xio_getline_attime(1), '<irio:mfvec3f xmln'
             's="" xmlns:ns3="http://www.techfak.uni-bielefeld.de/ags/wbski/in'
             'stantloggerprotocol" value="[0.2124978 -0.1224827 1.858883, 0.30'
             '30231 -0.1534625 1.925013, 0.01070284 -0.04043572 1.811359, 0.51'
             '68817 0.04873443 1.994409, 0.209666 -0.148198 1.78842, 0.299611 '
             '-0.1756292 1.85338, -0.01972085 -0.3181056 1.753447, 0.5168398 -'
             '0.1499471 1.939156, 0.2531285 0.3707453 1.670671, 0.2336805 0.03'
             '969637 1.820125, 0.1654053 -0.02932697 1.817514, 0.3024898 -0.02'
             '393005 1.848226, 0.4543798 0.03429135 1.977719, 0.5566682 -0.032'
             '79109 2.062352, 0.234128 0.2108699 1.780103, 0.1076903 0.1457002'
             ' 1.790787, 0.3986858 0.1662227 1.876898, 0.2335398 0.06816141 1.'
             '811909, -0.01211493 -0.2486881 1.766024, 0.5297669 -0.1118848 1.'
             '973672]" timestamp="1376571532082" sensorName="dsglab-desk-3/joi'
             'ntPositions3D1" type="Sample"></irio:mfvec3f>\n')
        self.failUnlessEqual(self.f.xio_parseline_lineno(5),
                             {'valuetype': 'sffloat',
                              'fieldname': 'soundAngle',
                              'sensorname': 'dsglab-desk-3',
                              'value': -24.015615,
                              'time': 1376571532081L})
        self.failUnlessEqual(self.f.xio_parseline_attime(),
                             {'valuetype': 'sfint32',
                              'fieldname': 'framenumber',
                              'sensorname': 'dsglab-desk-3',
                              'value': 90310, 'time': 1376571532081L})
        self.failUnlessEqual([l for l in self.f.xio_linegen(0, 5)][2],
                             {'valuetype': 'sfint32',
                              'fieldname': 'skeletonCount',
                              'sensorname': 'dsglab-desk-3',
                              'value': 2, 'time': 1376571532081L})
        self.failUnlessEqual(list(self.f.xio_linegen_timerange(0, 10))[3],
                             {'valuetype': 'sffloat',
                              'fieldname': 'interactionSpace',
                              'sensorname': 'dsglab-desk-3',
                              'value': 0.083201334,
                              'time': 1376571532081L})
        self.failUnlessEqual(len(list(self.q.xio_linegen_timerange(0, 4,
                                                        on_errors='stop'))), 4)
        self.failUnlessEqual(list(self.q.xio_linegen_timerange(1, 4,
             on_errors='stop'))[0]['value'], 2)


    def test_xiofile_lesslines(self):
        self.failUnlessEqual(self.j.mode, 'r')
        self.failUnlessEqual(self.j.indexed, True)
        self.failUnlessEqual(self.j.max_lines, 9)
        self.failUnlessEqual(self.j.max_time, 1376571532081L)
        self.failUnlessEqual(self.j.xio_getline(8), '<irio:mfvec3f xmlns="" '
             'xmlns:ns3="http://www.techfak.uni-bielefeld.de/ags/wbski/instan'
             'tloggerprotocol" value="[0.0 0.0 0.0, 0.0 0.0 0.0, 0.0 0.0 0.0, '
             '0.1671641 -0.3231136 1.178103, 0.2154177 0.04740157 1.772092, '
             '0.0 0.0 0.0]" timestamp="1376571532081" sensorName="dsglab-desk'
             '-3/positions3D" type="Sample"></irio:mfvec3f>\n')
        self.failUnlessEqual(self.j.xio_getline_attime(1376571532081,
                                                       relative=False),
                             '<irio:sfint32 xmlns="" xmlns:ns3="http://www.'
                             'techfak.uni-bielefeld.de/ags/wbski/instantlog'
                             'gerprotocol" value="90310" timestamp="1376571'
                             '532081" sensorName="dsglab-desk-3/framenumber" '
                             'type="Sample"></irio:sfint32>\n')
        self.failUnlessEqual(self.j.xio_parseline_lineno(5),
                             {'valuetype': 'sffloat',
                              'fieldname': 'soundAngle',
                              'sensorname': 'dsglab-desk-3',
                              'value': -24.015615,
                              'time': 1376571532081L})
        self.failUnlessEqual(self.j.xio_parseline_attime(),
                             {'valuetype': 'sfint32',
                              'fieldname': 'framenumber',
                              'sensorname': 'dsglab-desk-3',
                              'value': 90310,
                              'time': 1376571532081L})
        self.failUnlessEqual([l for l in self.j.xio_linegen(0, 5)][2],
                             {'valuetype': 'sfint32',
                              'fieldname': 'skeletonCount',
                              'sensorname': 'dsglab-desk-3',
                              'value': 2,
                              'time': 1376571532081L})
        self.failUnlessEqual([x for x in self.j.xio_linegen_timerange(0, 6)][3],
                             {'valuetype': 'sffloat',
                              'fieldname': 'interactionSpace',
                              'sensorname': 'dsglab-desk-3',
                              'value': 0.083201334,
                              'time': 1376571532081L})

    def test_xiofile_unindexed(self):
        self.failUnlessEqual(self.g.mode, 'r')
        self.failUnlessEqual(self.g.indexed, False)
        self.failUnlessEqual(self.g.min_time, 1376571532081L)
        self.failUnlessEqual([ln for ln in self.g.xio_quicklinegen(0, 13)][6],
                             {'valuetype': 'sffloat',
                              'fieldname': 'soundAmplitude',
                              'sensorname': 'dsglab-desk-3',
                              'value': -1.0,
                              'time': 1376571532081L})
        self.failUnlessEqual(len([z for z in self.q.xio_quicklinegen(0, 6,
                                                         on_errors='stop')]), 4)

        self.failUnlessEqual(self.g.xio_quicksearch(15),
                             (False, 1376571532081L))
        self.failUnlessEqual(self.g.xio_quicksearch(1376571532082),
                             (True, 1376571532082L))
        #Test that unindexed is now the default mode
        self.failUnlessEqual(XIOFile('data/types.xio.gz').indexed, False)
        self.failUnlessEqual(type(self.nr), XIOFile)

    def test_writing_in_xiofile(self):
        #Read from previously written to file
        self.failUnlessEqual(self.i.xio_getline(0), '<irio:sfint32 value="35" '
             'sensorName="xioFileClass/desk3/skeletonCount" timestamp='
             '"13765381"></irio:sfint32>\n')
        #Read from previously formatted XIO line (legacy mode)
        self.failUnlessEqual(self.i.xio_getline(1), '<irio:sfint32 value="37" '
             'sensorName="xioFileClass/desk3/skeletonCount" timestamp='
             '"13765381"></irio:sfint32>\n')
        #Read from previously formatted XIO line (venice mode)
        self.failUnlessEqual(self.m.xio_getline(0), '<sfint32 value="37" '
             'timestamp="13765381" sensorName="desk3/skeletonCount"/>\n')
        #Test the mode of writing to a file
        self.failUnlessEqual(XIOFile('data/trywriting.xio.gz', 'w').mode, 'w')

    def test_copying_an_iofile(self):
        self.failUnlessEqual(self.k.xio_getline(2), '<irio:sfint32 xmlns="" '
             'xmlns:ns3="http://www.techfak.uni-bielefeld.de/ags/wbski/insta'
             'ntloggerprotocol" value="2" timestamp="1376571532081" sensor'
             'Name="dsglab-desk-3/skeletonCount" type="Sample"></irio:sfin'
             't32>\n')

    def test_parsing_of_types(self):
        self.failUnlessEqual(self.f.xio_parsetypes("0.1671641 -0.31289",
                                                   'sfvec2f')[1], -0.31289)
        self.failUnlessEqual(self.f.xio_parsetypes("0.1671641 -0.3 0.3",
                             'sfvec3f')[0], 0.1671641)
        self.failUnlessEqual(self.f.xio_parsetypes("0.9260816 -0.1602955 "
                                  "0.0856332 -0.3306738", 'sfrotation')[0],
                             0.9260816)
        self.failUnlessEqual(self.f.xio_parsetypes("90310", 'sfint32'), 90310)
        self.failUnlessEqual(self.f.xio_parsetypes("0.083201334", 'sffloat'),
                             0.083201334)
        self.failUnlessEqual(self.f.xio_parsetypes("Some string",
                             'sfstring'), 'Some string')
        self.failUnlessEqual(self.f.xio_parsetypes("[309.0 -0.5838974, "
                                   "336.0 -0.5788992, 317.0 -0.4093522]",
                             'mfvec2f')[1][0], 336.0)
        self.failUnlessEqual(self.f.xio_parsetypes("[0.9260816 -0.1602955 "
                                  "0.0856332 -0.3306738, 0.9676204 0.07145812 "
                                  "0.1676264 -0.1746593, 0.8931494 -0.2351457 "
                                  "-0.1472739 -0.3539787]",
                             'mfrotation')[1][0], 0.9676204)
        self.failUnlessEqual(self.j.xio_parsetypes("[0.2154177 0.04740157"
                                  " 1.772092, 0.0 0.0 0.0]", 'mfvec3f')[0][1],
                             0.04740157)
        self.failUnlessEqual(self.j.xio_parsetypes("[a, 0.04740157, b, c, E]",
                                                   'mffloat')[1],
                             0.04740157)
        self.assertTrue(math.isnan(self.j.xio_parsetypes("[a, 0.04740157]",
                                                         'mffloat')[0]))
        self.failUnlessEqual(self.j.xio_parsetypes("[a, 0.04740157]",
                                                   'mfstring')[1],
                             '0.04740157')
        self.failUnlessEqual(self.j.xio_parsetypes("True", 'sfbool'), True)
        self.failUnlessEqual(self.j.xio_parsetypes("true", 'boolean'), True)
        self.failUnlessEqual(self.j.xio_parsetypes("", 'sfbool'), False)
        self.failUnlessEqual(self.j.xio_parsetypes("yes", 'boolean'), False)

    def test_parsing_of_names(self):
        self.failUnlessEqual(self.f.xio_parsename("dsglab-desk-3/"
                                                  "jointOrientations0"),
                            ('dsglab-desk-3', 'jointOrientations0'))
        self.failUnlessEqual(self.j.xio_parsename("dsglab-desk-3/positions3D"),
                             ('dsglab-desk-3', 'positions3D'))

    def test_parsing_of_lines(self):
        self.failUnlessEqual(str(self.j.xio_parseline('<irio:mfvec3f xmlns="'
             '" xmlns:ns3="http://www.techfak.uni-bielefeld.de/ags/wbski/insta'
             'ntloggerprotocol" value="[0.0 0.0 0.0, 0.0 0.0 0.0, 0.0 0.0 0.0,'
             ' 0.1671641 -0.3231136 1.178103, 0.2154177 0.04740157 1.772092,'
             ' 0.0 0.0 0.0]" timestamp="1376571532081" sensorName="dsglab-'
             'desk-3/positions3D" type="Sample"></irio:mfvec3f>\n')['value']),
                             '[0.0 0.0 0.0, 0.0 0.0 0.0, 0.0 0.0 0.0, '
                             '0.1671641 -0.3231136 1.178103, 0.2154177 '
                             '0.04740157 1.772092, 0.0 0.0 0.0]')
        self.failUnlessEqual(self.f.xio_parseline('<irio:sfint32 xmlns="'
             '" xmlns:ns3="http://www.techfak.uni-bielefeld.de/ags/wbski/'
             'instantloggerprotocol" value="2" timestamp="1376571532081" '
             'sensorName="dsglab-desk-3/skeletonCount" type="Sample">'
             '</irio:sfint32>\n'),
                             {'valuetype': 'sfint32',
                              'fieldname': 'skeletonCount',
                              'sensorname': 'dsglab-desk-3',
                              'value': 2,
                              'time': 1376571532081L})
        self.failUnlessEqual(self.m.xio_parseline('<sfint32 value="37" '
             'timestamp="13765381" sensorName="desk3/skeletonCount"/>\n'),
                             {'valuetype': 'sfint32',
                              'fieldname': 'skeletonCount',
                              'sensorname': 'desk3',
                              'value': 37,
                              'time': 13765381})

    def test_xiofile_uncompressed(self):
        self.failUnlessEqual(self.n.mode, 'r')
        self.failUnlessEqual(self.n.indexed, True)
        self.failUnlessEqual(self.n.max_lines, 15)
        self.failUnlessEqual(self.n.max_time, 1376571532082L)
        self.failUnlessEqual(self.n.xio_getline(2), '<irio:sfint32 xmlns="'
             '" xmlns:ns3="http://www.techfak.uni-bielefeld.de/ags/wbski/'
             'instantloggerprotocol" value="2" timestamp="1376571532081" '
             'sensorName="dsglab-desk-3/skeletonCount" '
             'type="Sample"></irio:sfint32>\n')
        self.failUnlessEqual(self.n.xio_getline_attime(1376571532081,
                                                       relative=False),
                              '<irio:sfint32 xmlns="" xmlns:ns3="http://'
                              'www.techfak.uni-bielefeld.de/ags/wbski/'
                              'instantloggerprotocol" value="90310" '
                              'timestamp="1376571532081" sensorName="dsglab'
                              '-desk-3/framenumber" type="Sample">'
                              '</irio:sfint32>\n')
        self.failUnlessEqual(self.n.xio_getline_attime(1), '<irio:mfvec3f xmln'
             's="" xmlns:ns3="http://www.techfak.uni-bielefeld.de/ags/wbski/in'
             'stantloggerprotocol" value="[0.2124978 -0.1224827 1.858883, 0.30'
             '30231 -0.1534625 1.925013, 0.01070284 -0.04043572 1.811359, 0.51'
             '68817 0.04873443 1.994409, 0.209666 -0.148198 1.78842, 0.299611 '
             '-0.1756292 1.85338, -0.01972085 -0.3181056 1.753447, 0.5168398 -'
             '0.1499471 1.939156, 0.2531285 0.3707453 1.670671, 0.2336805 0.03'
             '969637 1.820125, 0.1654053 -0.02932697 1.817514, 0.3024898 -0.02'
             '393005 1.848226, 0.4543798 0.03429135 1.977719, 0.5566682 -0.032'
             '79109 2.062352, 0.234128 0.2108699 1.780103, 0.1076903 0.1457002'
             ' 1.790787, 0.3986858 0.1662227 1.876898, 0.2335398 0.06816141 1.'
             '811909, -0.01211493 -0.2486881 1.766024, 0.5297669 -0.1118848 1.'
             '973672]" timestamp="1376571532082" sensorName="dsglab-desk-3/joi'
             'ntPositions3D1" type="Sample"></irio:mfvec3f>\n')

        self.failUnlessEqual(self.n.xio_parseline_lineno(5),
                             {'valuetype': 'sffloat',
                              'fieldname': 'soundAngle',
                              'sensorname': 'dsglab-desk-3',
                              'value': -24.015615,
                              'time': 1376571532081L})
        self.failUnlessEqual(self.n.xio_parseline_attime(),
                             {'valuetype': 'sfint32',
                              'fieldname': 'framenumber',
                              'sensorname': 'dsglab-desk-3',
                              'value': 90310, 'time': 1376571532081L})
        self.failUnlessEqual([l for l in self.n.xio_linegen(0, 5)][2],
                             {'valuetype': 'sfint32',
                              'fieldname': 'skeletonCount',
                              'sensorname': 'dsglab-desk-3',
                              'value': 2, 'time': 1376571532081L})

        self.failUnlessEqual([y for y in self.q.xio_linegen(0, 6,
                                                        on_errors='stop')][-1],
                             {'fieldname': 'gazeQualityLevelLeft',
                              'sensorname': 'lab-labtop/FaceLabNode 3',
                              'time': 1341393414828L,
                              'value': 2,
                              'valuetype': 'sfint32'})
示例#2
0
class XioTest(unittest.TestCase):
    def setUp(self):
        #Test of an indexed file
        self.f = XIOFile('data/types.xio.gz', indexing=True)
        #Test of an indexed file with a preset number of lines
        self.j = XIOFile('data/types.xio.gz', 'r', 10, indexing=True)
        #Test of an an-unidexed file, now default
        self.g = XIOFile('data/types.xio.gz', indexing=False)
        #Test write mode (old legacy format)
        self.h = XIOFile('data/trywriting.xio.gz', 'w', fileformat='legacy')
        self.h.xio_writeline('<irio:sfint32 value="35" '
                             'sensorName="xioFileClass/desk3/skeletonCount" '
                             'timestamp="13765381"></irio:sfint32>\n')
        self.h.xio_writeline(
            self.h.xio_formatline('sfint32', 37, 'desk3', 'skeletonCount',
                                  13765381))
        self.h.xiofile_close()
        #Test write mode (new default venice format)
        self.l = XIOFile('data/trywriting2.xio.gz', 'w')
        self.l.xio_writeline(
            self.l.xio_formatline('sfint32', 37, 'desk3', 'skeletonCount',
                                  13765381))
        self.l.xiofile_close()
        #Test write mode, by opening the file previously written to
        self.i = XIOFile('data/trywriting.xio.gz', 'r', indexing=True)
        self.m = XIOFile('data/trywriting2.xio.gz', 'r', indexing=True)
        #Test copy utility, copy part of the file to a new file
        xiofile_quickcopy('data/types.xio.gz', 'data/newtypes.xio.gz', 0, 5)
        #Test result of copy, by loading the copy
        self.k = XIOFile('data/newtypes.xio.gz', 'r', indexing=True)
        #Test of an un-compressed file
        self.n = XIOFile('data/types.xio', indexing=True)
        #File to specifically test line ranges
        self.o = XIOFile('data/linestest.xio.gz', indexing=True)
        #Similar for unindexed mode
        self.p = XIOFile('data/linestest.xio.gz')
        self.n = XIOFile('data/types.xio', indexing=True)
        self.q = XIOFile('data/parsing5.xio.gz', indexing=True)
        self.nr = XIOFile('data/unreadable.xio.gz')

    def test_xiofile_indexed(self):
        self.failUnlessEqual(str(type(self.f)),
                             '<class \'mumodo.xiofile.XIOFile\'>')
        self.failUnlessEqual(self.f.mode, 'r')
        self.failUnlessEqual(self.f.indexed, True)
        self.failUnlessEqual(self.f.max_lines, 15)
        self.failUnlessEqual(self.f.min_time, 1376571532081L)
        self.failUnlessEqual(self.f.max_time, 1376571532082L)
        self.failUnlessEqual(
            self.f.xio_getline(2), '<irio:sfint32 xmlns="'
            '" xmlns:ns3="http://www.techfak.uni-bielefeld.de/ags/wbski/'
            'instantloggerprotocol" value="2" timestamp="1376571532081" '
            'sensorName="dsglab-desk-3/skeletonCount" '
            'type="Sample"></irio:sfint32>\n')
        self.failUnlessEqual(
            self.f.xio_getline_attime(1376571532081, relative=False),
            '<irio:sfint32 xmlns="" xmlns:ns3="http://'
            'www.techfak.uni-bielefeld.de/ags/wbski/'
            'instantloggerprotocol" value="90310" '
            'timestamp="1376571532081" sensorName="dsglab'
            '-desk-3/framenumber" type="Sample">'
            '</irio:sfint32>\n')
        self.failUnlessEqual(
            self.f.xio_getline_attime(1), '<irio:mfvec3f xmln'
            's="" xmlns:ns3="http://www.techfak.uni-bielefeld.de/ags/wbski/in'
            'stantloggerprotocol" value="[0.2124978 -0.1224827 1.858883, 0.30'
            '30231 -0.1534625 1.925013, 0.01070284 -0.04043572 1.811359, 0.51'
            '68817 0.04873443 1.994409, 0.209666 -0.148198 1.78842, 0.299611 '
            '-0.1756292 1.85338, -0.01972085 -0.3181056 1.753447, 0.5168398 -'
            '0.1499471 1.939156, 0.2531285 0.3707453 1.670671, 0.2336805 0.03'
            '969637 1.820125, 0.1654053 -0.02932697 1.817514, 0.3024898 -0.02'
            '393005 1.848226, 0.4543798 0.03429135 1.977719, 0.5566682 -0.032'
            '79109 2.062352, 0.234128 0.2108699 1.780103, 0.1076903 0.1457002'
            ' 1.790787, 0.3986858 0.1662227 1.876898, 0.2335398 0.06816141 1.'
            '811909, -0.01211493 -0.2486881 1.766024, 0.5297669 -0.1118848 1.'
            '973672]" timestamp="1376571532082" sensorName="dsglab-desk-3/joi'
            'ntPositions3D1" type="Sample"></irio:mfvec3f>\n')
        self.failUnlessEqual(
            self.f.xio_parseline_lineno(5), {
                'valuetype': 'sffloat',
                'fieldname': 'soundAngle',
                'sensorname': 'dsglab-desk-3',
                'value': -24.015615,
                'time': 1376571532081L
            })
        self.failUnlessEqual(
            self.f.xio_parseline_attime(), {
                'valuetype': 'sfint32',
                'fieldname': 'framenumber',
                'sensorname': 'dsglab-desk-3',
                'value': 90310,
                'time': 1376571532081L
            })
        self.failUnlessEqual(
            [l for l in self.f.xio_linegen(0, 5)][2], {
                'valuetype': 'sfint32',
                'fieldname': 'skeletonCount',
                'sensorname': 'dsglab-desk-3',
                'value': 2,
                'time': 1376571532081L
            })
        self.failUnlessEqual(
            list(self.f.xio_linegen_timerange(0, 10))[3], {
                'valuetype': 'sffloat',
                'fieldname': 'interactionSpace',
                'sensorname': 'dsglab-desk-3',
                'value': 0.083201334,
                'time': 1376571532081L
            })
        self.failUnlessEqual(
            len(list(self.q.xio_linegen_timerange(0, 4, on_errors='stop'))), 4)
        self.failUnlessEqual(
            list(self.q.xio_linegen_timerange(1, 4,
                                              on_errors='stop'))[0]['value'],
            2)

    def test_xiofile_lesslines(self):
        self.failUnlessEqual(self.j.mode, 'r')
        self.failUnlessEqual(self.j.indexed, True)
        self.failUnlessEqual(self.j.max_lines, 9)
        self.failUnlessEqual(self.j.max_time, 1376571532081L)
        self.failUnlessEqual(
            self.j.xio_getline(8), '<irio:mfvec3f xmlns="" '
            'xmlns:ns3="http://www.techfak.uni-bielefeld.de/ags/wbski/instan'
            'tloggerprotocol" value="[0.0 0.0 0.0, 0.0 0.0 0.0, 0.0 0.0 0.0, '
            '0.1671641 -0.3231136 1.178103, 0.2154177 0.04740157 1.772092, '
            '0.0 0.0 0.0]" timestamp="1376571532081" sensorName="dsglab-desk'
            '-3/positions3D" type="Sample"></irio:mfvec3f>\n')
        self.failUnlessEqual(
            self.j.xio_getline_attime(1376571532081, relative=False),
            '<irio:sfint32 xmlns="" xmlns:ns3="http://www.'
            'techfak.uni-bielefeld.de/ags/wbski/instantlog'
            'gerprotocol" value="90310" timestamp="1376571'
            '532081" sensorName="dsglab-desk-3/framenumber" '
            'type="Sample"></irio:sfint32>\n')
        self.failUnlessEqual(
            self.j.xio_parseline_lineno(5), {
                'valuetype': 'sffloat',
                'fieldname': 'soundAngle',
                'sensorname': 'dsglab-desk-3',
                'value': -24.015615,
                'time': 1376571532081L
            })
        self.failUnlessEqual(
            self.j.xio_parseline_attime(), {
                'valuetype': 'sfint32',
                'fieldname': 'framenumber',
                'sensorname': 'dsglab-desk-3',
                'value': 90310,
                'time': 1376571532081L
            })
        self.failUnlessEqual(
            [l for l in self.j.xio_linegen(0, 5)][2], {
                'valuetype': 'sfint32',
                'fieldname': 'skeletonCount',
                'sensorname': 'dsglab-desk-3',
                'value': 2,
                'time': 1376571532081L
            })
        self.failUnlessEqual(
            [x for x in self.j.xio_linegen_timerange(0, 6)][3], {
                'valuetype': 'sffloat',
                'fieldname': 'interactionSpace',
                'sensorname': 'dsglab-desk-3',
                'value': 0.083201334,
                'time': 1376571532081L
            })

    def test_xiofile_unindexed(self):
        self.failUnlessEqual(self.g.mode, 'r')
        self.failUnlessEqual(self.g.indexed, False)
        self.failUnlessEqual(self.g.min_time, 1376571532081L)
        self.failUnlessEqual(
            [ln for ln in self.g.xio_quicklinegen(0, 13)][6], {
                'valuetype': 'sffloat',
                'fieldname': 'soundAmplitude',
                'sensorname': 'dsglab-desk-3',
                'value': -1.0,
                'time': 1376571532081L
            })
        self.failUnlessEqual(
            len([z for z in self.q.xio_quicklinegen(0, 6, on_errors='stop')]),
            4)

        self.failUnlessEqual(self.g.xio_quicksearch(15),
                             (False, 1376571532081L))
        self.failUnlessEqual(self.g.xio_quicksearch(1376571532082),
                             (True, 1376571532082L))
        #Test that unindexed is now the default mode
        self.failUnlessEqual(XIOFile('data/types.xio.gz').indexed, False)
        self.failUnlessEqual(type(self.nr), XIOFile)

    def test_writing_in_xiofile(self):
        #Read from previously written to file
        self.failUnlessEqual(
            self.i.xio_getline(0), '<irio:sfint32 value="35" '
            'sensorName="xioFileClass/desk3/skeletonCount" timestamp='
            '"13765381"></irio:sfint32>\n')
        #Read from previously formatted XIO line (legacy mode)
        self.failUnlessEqual(
            self.i.xio_getline(1), '<irio:sfint32 value="37" '
            'sensorName="xioFileClass/desk3/skeletonCount" timestamp='
            '"13765381"></irio:sfint32>\n')
        #Read from previously formatted XIO line (venice mode)
        self.failUnlessEqual(
            self.m.xio_getline(0), '<sfint32 value="37" '
            'timestamp="13765381" sensorName="desk3/skeletonCount"/>\n')
        #Test the mode of writing to a file
        self.failUnlessEqual(XIOFile('data/trywriting.xio.gz', 'w').mode, 'w')

    def test_copying_an_iofile(self):
        self.failUnlessEqual(
            self.k.xio_getline(2), '<irio:sfint32 xmlns="" '
            'xmlns:ns3="http://www.techfak.uni-bielefeld.de/ags/wbski/insta'
            'ntloggerprotocol" value="2" timestamp="1376571532081" sensor'
            'Name="dsglab-desk-3/skeletonCount" type="Sample"></irio:sfin'
            't32>\n')

    def test_parsing_of_types(self):
        self.failUnlessEqual(
            self.f.xio_parsetypes("0.1671641 -0.31289", 'sfvec2f')[1],
            -0.31289)
        self.failUnlessEqual(
            self.f.xio_parsetypes("0.1671641 -0.3 0.3", 'sfvec3f')[0],
            0.1671641)
        self.failUnlessEqual(
            self.f.xio_parsetypes(
                "0.9260816 -0.1602955 "
                "0.0856332 -0.3306738", 'sfrotation')[0], 0.9260816)
        self.failUnlessEqual(self.f.xio_parsetypes("90310", 'sfint32'), 90310)
        self.failUnlessEqual(self.f.xio_parsetypes("0.083201334", 'sffloat'),
                             0.083201334)
        self.failUnlessEqual(self.f.xio_parsetypes("Some string", 'sfstring'),
                             'Some string')
        self.failUnlessEqual(
            self.f.xio_parsetypes(
                "[309.0 -0.5838974, "
                "336.0 -0.5788992, 317.0 -0.4093522]", 'mfvec2f')[1][0], 336.0)
        self.failUnlessEqual(
            self.f.xio_parsetypes(
                "[0.9260816 -0.1602955 "
                "0.0856332 -0.3306738, 0.9676204 0.07145812 "
                "0.1676264 -0.1746593, 0.8931494 -0.2351457 "
                "-0.1472739 -0.3539787]", 'mfrotation')[1][0], 0.9676204)
        self.failUnlessEqual(
            self.j.xio_parsetypes(
                "[0.2154177 0.04740157"
                " 1.772092, 0.0 0.0 0.0]", 'mfvec3f')[0][1], 0.04740157)
        self.failUnlessEqual(
            self.j.xio_parsetypes("[a, 0.04740157, b, c, E]", 'mffloat')[1],
            0.04740157)
        self.assertTrue(
            math.isnan(self.j.xio_parsetypes("[a, 0.04740157]", 'mffloat')[0]))
        self.failUnlessEqual(
            self.j.xio_parsetypes("[a, 0.04740157]", 'mfstring')[1],
            '0.04740157')
        self.failUnlessEqual(self.j.xio_parsetypes("True", 'sfbool'), True)
        self.failUnlessEqual(self.j.xio_parsetypes("true", 'boolean'), True)
        self.failUnlessEqual(self.j.xio_parsetypes("", 'sfbool'), False)
        self.failUnlessEqual(self.j.xio_parsetypes("yes", 'boolean'), False)

    def test_parsing_of_names(self):
        self.failUnlessEqual(
            self.f.xio_parsename("dsglab-desk-3/"
                                 "jointOrientations0"),
            ('dsglab-desk-3', 'jointOrientations0'))
        self.failUnlessEqual(self.j.xio_parsename("dsglab-desk-3/positions3D"),
                             ('dsglab-desk-3', 'positions3D'))

    def test_parsing_of_lines(self):
        self.failUnlessEqual(
            str(
                self.j.xio_parseline(
                    '<irio:mfvec3f xmlns="'
                    '" xmlns:ns3="http://www.techfak.uni-bielefeld.de/ags/wbski/insta'
                    'ntloggerprotocol" value="[0.0 0.0 0.0, 0.0 0.0 0.0, 0.0 0.0 0.0,'
                    ' 0.1671641 -0.3231136 1.178103, 0.2154177 0.04740157 1.772092,'
                    ' 0.0 0.0 0.0]" timestamp="1376571532081" sensorName="dsglab-'
                    'desk-3/positions3D" type="Sample"></irio:mfvec3f>\n')
                ['value']), '[0.0 0.0 0.0, 0.0 0.0 0.0, 0.0 0.0 0.0, '
            '0.1671641 -0.3231136 1.178103, 0.2154177 '
            '0.04740157 1.772092, 0.0 0.0 0.0]')
        self.failUnlessEqual(
            self.f.xio_parseline(
                '<irio:sfint32 xmlns="'
                '" xmlns:ns3="http://www.techfak.uni-bielefeld.de/ags/wbski/'
                'instantloggerprotocol" value="2" timestamp="1376571532081" '
                'sensorName="dsglab-desk-3/skeletonCount" type="Sample">'
                '</irio:sfint32>\n'), {
                    'valuetype': 'sfint32',
                    'fieldname': 'skeletonCount',
                    'sensorname': 'dsglab-desk-3',
                    'value': 2,
                    'time': 1376571532081L
                })
        self.failUnlessEqual(
            self.m.xio_parseline(
                '<sfint32 value="37" '
                'timestamp="13765381" sensorName="desk3/skeletonCount"/>\n'), {
                    'valuetype': 'sfint32',
                    'fieldname': 'skeletonCount',
                    'sensorname': 'desk3',
                    'value': 37,
                    'time': 13765381
                })

    def test_xiofile_uncompressed(self):
        self.failUnlessEqual(self.n.mode, 'r')
        self.failUnlessEqual(self.n.indexed, True)
        self.failUnlessEqual(self.n.max_lines, 15)
        self.failUnlessEqual(self.n.max_time, 1376571532082L)
        self.failUnlessEqual(
            self.n.xio_getline(2), '<irio:sfint32 xmlns="'
            '" xmlns:ns3="http://www.techfak.uni-bielefeld.de/ags/wbski/'
            'instantloggerprotocol" value="2" timestamp="1376571532081" '
            'sensorName="dsglab-desk-3/skeletonCount" '
            'type="Sample"></irio:sfint32>\n')
        self.failUnlessEqual(
            self.n.xio_getline_attime(1376571532081, relative=False),
            '<irio:sfint32 xmlns="" xmlns:ns3="http://'
            'www.techfak.uni-bielefeld.de/ags/wbski/'
            'instantloggerprotocol" value="90310" '
            'timestamp="1376571532081" sensorName="dsglab'
            '-desk-3/framenumber" type="Sample">'
            '</irio:sfint32>\n')
        self.failUnlessEqual(
            self.n.xio_getline_attime(1), '<irio:mfvec3f xmln'
            's="" xmlns:ns3="http://www.techfak.uni-bielefeld.de/ags/wbski/in'
            'stantloggerprotocol" value="[0.2124978 -0.1224827 1.858883, 0.30'
            '30231 -0.1534625 1.925013, 0.01070284 -0.04043572 1.811359, 0.51'
            '68817 0.04873443 1.994409, 0.209666 -0.148198 1.78842, 0.299611 '
            '-0.1756292 1.85338, -0.01972085 -0.3181056 1.753447, 0.5168398 -'
            '0.1499471 1.939156, 0.2531285 0.3707453 1.670671, 0.2336805 0.03'
            '969637 1.820125, 0.1654053 -0.02932697 1.817514, 0.3024898 -0.02'
            '393005 1.848226, 0.4543798 0.03429135 1.977719, 0.5566682 -0.032'
            '79109 2.062352, 0.234128 0.2108699 1.780103, 0.1076903 0.1457002'
            ' 1.790787, 0.3986858 0.1662227 1.876898, 0.2335398 0.06816141 1.'
            '811909, -0.01211493 -0.2486881 1.766024, 0.5297669 -0.1118848 1.'
            '973672]" timestamp="1376571532082" sensorName="dsglab-desk-3/joi'
            'ntPositions3D1" type="Sample"></irio:mfvec3f>\n')

        self.failUnlessEqual(
            self.n.xio_parseline_lineno(5), {
                'valuetype': 'sffloat',
                'fieldname': 'soundAngle',
                'sensorname': 'dsglab-desk-3',
                'value': -24.015615,
                'time': 1376571532081L
            })
        self.failUnlessEqual(
            self.n.xio_parseline_attime(), {
                'valuetype': 'sfint32',
                'fieldname': 'framenumber',
                'sensorname': 'dsglab-desk-3',
                'value': 90310,
                'time': 1376571532081L
            })
        self.failUnlessEqual(
            [l for l in self.n.xio_linegen(0, 5)][2], {
                'valuetype': 'sfint32',
                'fieldname': 'skeletonCount',
                'sensorname': 'dsglab-desk-3',
                'value': 2,
                'time': 1376571532081L
            })

        self.failUnlessEqual(
            [y for y in self.q.xio_linegen(0, 6, on_errors='stop')][-1], {
                'fieldname': 'gazeQualityLevelLeft',
                'sensorname': 'lab-labtop/FaceLabNode 3',
                'time': 1341393414828L,
                'value': 2,
                'valuetype': 'sfint32'
            })
示例#3
0
class MumodoTest(unittest.TestCase):
    def setUp(self):
        self.f = open_streamframe_from_xiofile(
            "data/fseeksmaller.xio.gz",
            "lab-labtop/irioKinect 2",
            window_size=5,
            with_fields=[],
            without_fields=[],
            discard_duplicates=True,
            start_time=0,
            end_time=13,
            relative=True,
            timestamp_offset=10,
        )

        self.f2 = open_streamframe_from_xiofile(
            "data/fseeksmaller.xio.gz",
            "lab-labtop/irioKinect",
            window_size=5,
            with_fields=[],
            without_fields=[],
            discard_duplicates=True,
            start_time=0,
            end_time=13,
            relative=True,
            timestamp_offset=10,
        )
        # self.outtake_from_stream = self.f.ix[1341393414826]['framenumber']
        self.fraw = open_streamframe_from_xiofile(
            "data/fseeksmaller.xio.gz",
            "lab-labtop/irioKinect 2",
            window_size=5,
            with_fields=[],
            without_fields=[],
            discard_duplicates=True,
            start_time=0,
            end_time=13,
            relative=True,
            timestamp_offset="raw",
        )
        self.ff = open_streamframe_from_xiofile(
            "data/fseeksmaller.xio.gz",
            "lab-labtop/irioKinect 2",
            window_size=5,
            with_fields=[],
            without_fields=[],
            discard_duplicates=True,
            start_time=0,
            end_time=13,
            relative=True,
        )

        save_streamframe_to_xiofile({"lab-labtop/irioKinect 2": self.f}, "data/sf_to_xio.xio.gz")

        save_streamframe_to_xiofile(
            {"lab-labtop/irioKinect 2": self.f, "lab-labtop/irioKinect": self.f2}, "data/sf_to_xio2.xio.gz"
        )

        self.rsn = open_streamframe_from_xiofile("data/fseeksmaller.xio.gz", "wrong/sensor/name")

        self.outtake_from_xio = XIOFile("data/sf_to_xio.xio.gz", indexing=True)

        self.outtake_from_xio_2 = XIOFile("data/sf_to_xio2.xio.gz", indexing=True)

        self.q = [
            ex for ex in quantize(self.outtake_from_xio.xio_quicklinegen(0, 13, True, True), "lab-labtop/irioKinect 2")
        ][0]["soundAngle"]

        self.ivf = open_intervalframe_from_textgrid(
            "data/r1_12_15with" "Point.TextGrid", encoding="utf-8", asobjects=False, include_empty_intervals=False
        )["P"]
        self.cv = convert_pointtier_to_streamframe(self.ivf)
        self.pf = convert_streamframe_to_pointtier(self.f)
        self.outtake_from_pf = convert_streamframe_to_pointtier(self.f)["soundAngle"].ix[0]["time"]

        self.if_from_tg = open_intervalframe_from_textgrid(
            "data/r1-20120704-" "cam1-head-zm.TextGrid",
            encoding="utf-8",
            asobjects=False,
            include_empty_intervals=False,
        )

        self.if_from_tg_tier = self.if_from_tg.values()[0]

        save_intervalframe_to_textgrid(self.if_from_tg, "data/testif.TextGrid", encoding="utf-8")
        self.tg = tgt.read_textgrid("data/testif.TextGrid", encoding="utf-8", include_empty_intervals=False)

        self.ic1 = open_intervalframe_from_increco("data/test.inc_reco")

        self.ic2 = open_intervalframe_from_increco("data/test.inc_reco", lastonly=True)

    def test_stream_from_xio(self):

        self.failUnlessEqual(self.f.ix[10]["framenumber"], 45771.0)
        self.failUnlessEqual(self.f.index[1], 20)
        self.failUnlessEqual(self.fraw.index[0], 1341393414826)
        self.failUnlessEqual(self.ff.index[1], 10)
        # wrong sensor name should result in an empty DataFrame
        # being returned
        self.failUnlessEqual(len(self.rsn), 0)

    def test_stream_to_xio(self):
        self.failUnlessEqual(
            self.outtake_from_xio.xio_getline(5),
            '<sffloat value="-0.7323895" timestamp="10"' ' sensorName="lab-labtop/irioKinect 2/so' 'undAngle"/>\n',
        )

    def test_many_stream_to_xio(self):

        self.failUnlessEqual(
            self.outtake_from_xio_2.xio_getline(6),
            '<sffloat value="46286.0" timestamp="14"' ' sensorName="lab-labtop/irioKinect/fram' 'enumber"/>\n',
        )

        self.failUnlessEqual(
            self.outtake_from_xio_2.xio_getline(5),
            '<sffloat value="-0.7323895" timestamp="10"' ' sensorName="lab-labtop/irioKinect 2/so' 'undAngle"/>\n',
        )

    def test_interval_from_textgrid(self):
        self.failUnlessEqual(self.if_from_tg_tier.ix[100]["end_time"], 1095.864)

    def test_interval_to_textgrid(self):
        self.failUnlessEqual(type(self.tg.tiers[0].intervals[10]), tgt.core.Interval)

    def test_quantize(self):
        self.failUnlessEqual(self.q, -0.7323895)

    def test_pointtier_to_stream(self):
        self.failUnlessEqual(str(self.cv["mark"].values[1]), "B")

    def test_stream_to_pointframe(self):
        self.failUnlessEqual(self.outtake_from_pf, 10)

    def test_intervals_from_increco(self):
        self.failUnlessEqual(len(self.ic1.keys()), 106)

        self.failUnlessEqual(self.ic1.keys()[3:6], ["6.43", "3.78", "6.5"])

        self.failUnlessEqual(self.ic1["3.78"].ix[0]["text"], "der")

        self.failUnlessEqual(len(self.ic2.keys()), 1)

        self.failUnlessEqual(self.ic2.keys()[0], "38.4")

        self.failUnlessEqual(self.ic2["38.4"].ix[0]["text"], "ragt")

    def tearDown(self):
        os.system("rm data/sf_to_xio.xio.gz")
        os.system("rm data/sf_to_xio2.xio.gz")
示例#4
0
class MumodoTest(unittest.TestCase):

    def setUp(self):
        self.f = open_streamframe_from_xiofile('data/fseeksmaller.xio.gz',
                                               "lab-labtop/irioKinect 2",
                                               window_size=5, with_fields=[],
                                               without_fields=[],
                                               discard_duplicates=True,
                                               start_time=0, end_time=13,
                                               relative=True,
                                               timestamp_offset=10)

        self.f2 = open_streamframe_from_xiofile('data/fseeksmaller.xio.gz',
                                                "lab-labtop/irioKinect",
                                                window_size=5, with_fields=[],
                                                without_fields=[],
                                                discard_duplicates=True,
                                                start_time=0, end_time=13,
                                                relative=True,
                                                timestamp_offset=10)
        #self.outtake_from_stream = self.f.ix[1341393414826]['framenumber']
        self.fraw = open_streamframe_from_xiofile('data/fseeksmaller.xio.gz',
                                                  "lab-labtop/irioKinect 2",
                                                  window_size=5, with_fields=[],
                                                  without_fields=[],
                                                  discard_duplicates=True,
                                                  start_time=0, end_time=13,
                                                  relative=True,
                                                  timestamp_offset='raw')
        self.ff = open_streamframe_from_xiofile('data/fseeksmaller.xio.gz',
                                                "lab-labtop/irioKinect 2",
                                                window_size=5, with_fields=[],
                                                without_fields=[],
                                                discard_duplicates=True,
                                                start_time=0, end_time=13,
                                                relative=True)

        save_streamframe_to_xiofile({"lab-labtop/irioKinect 2": self.f},
                                    'data/sf_to_xio.xio.gz')

        save_streamframe_to_xiofile({"lab-labtop/irioKinect 2": self.f,
                                     "lab-labtop/irioKinect": self.f2},
                                    'data/sf_to_xio2.xio.gz')

        self.rsn = open_streamframe_from_xiofile('data/fseeksmaller.xio.gz',
                                                "wrong/sensor/name")

        self.outtake_from_xio = XIOFile('data/sf_to_xio.xio.gz',
                                        indexing=True)

        self.outtake_from_xio_2 = XIOFile('data/sf_to_xio2.xio.gz',
                                          indexing=True)

        self.q = [ex for ex in quantize(self.outtake_from_xio.xio_quicklinegen\
                                                  (0, 13, True, True),
                                  "lab-labtop/irioKinect 2")][0]['soundAngle']

        self.ivf = open_intervalframe_from_textgrid('data/r1_12_15with'
                                                    'Point.TextGrid',
                                                    encoding='utf-8',
                                                    asobjects = False,
                                         include_empty_intervals = False)['P']
        self.cv = convert_pointtier_to_streamframe(self.ivf)
        self.pf = convert_streamframe_to_pointtier(self.f)
        self.outtake_from_pf = \
          convert_streamframe_to_pointtier(self.f)['soundAngle'].ix[0]['time']

        self.if_from_tg = open_intervalframe_from_textgrid('data/r1-20120704-'
                          'cam1-head-zm.TextGrid',
                          encoding='utf-8',
                          asobjects = False,
                          include_empty_intervals = False)

        self.if_from_tg_tier =  self.if_from_tg.values()[0]

        save_intervalframe_to_textgrid(self.if_from_tg,
                                       'data/testif.TextGrid',
                                       encoding='utf-8')
        self.tg = tgt.read_textgrid('data/testif.TextGrid',
                                    encoding='utf-8',
                                    include_empty_intervals=False)

        self.ic1 = open_intervalframe_from_increco('data/test.inc_reco')

        self.ic2 = open_intervalframe_from_increco('data/test.inc_reco',
                                                   lastonly=True)

    def test_stream_from_xio(self):

        self.failUnlessEqual(self.f.ix[10]['framenumber'], 45771.0)
        self.failUnlessEqual(self.f.index[1], 20)
        self.failUnlessEqual(self.fraw.index[0], 1341393414826)
        self.failUnlessEqual(self.ff.index[1], 10)
        #wrong sensor name should result in an empty DataFrame
        #being returned
        self.failUnlessEqual(len(self.rsn), 0)


    def test_stream_to_xio(self):
        self.failUnlessEqual(self.outtake_from_xio.xio_getline(5),
                             '<sffloat value="-0.7323895" timestamp="10"'
                             ' sensorName="lab-labtop/irioKinect 2/so'
                             'undAngle"/>\n')

    def test_many_stream_to_xio(self):

        self.failUnlessEqual(self.outtake_from_xio_2.xio_getline(6),
                             '<sffloat value="46286.0" timestamp="14"'
                             ' sensorName="lab-labtop/irioKinect/fram'
                             'enumber"/>\n')

        self.failUnlessEqual(self.outtake_from_xio_2.xio_getline(5),
                             '<sffloat value="-0.7323895" timestamp="10"'
                             ' sensorName="lab-labtop/irioKinect 2/so'
                             'undAngle"/>\n')

    def test_interval_from_textgrid(self):
        self.failUnlessEqual(self.if_from_tg_tier.ix[100]['end_time'], 1095.864)

    def test_interval_to_textgrid(self):
        self.failUnlessEqual(type(self.tg.tiers[0].intervals[10]),
                             tgt.core.Interval)

    def test_quantize(self):
        self.failUnlessEqual(self.q, -0.7323895)

    def test_pointtier_to_stream(self):
        self.failUnlessEqual(str(self.cv['mark'].values[1]), 'B')

    def test_stream_to_pointframe(self):
        self.failUnlessEqual(self.outtake_from_pf, 10)

    def test_intervals_from_increco(self):
        self.failUnlessEqual(len(self.ic1.keys()), 106)

        self.failUnlessEqual(self.ic1.keys()[3:6], ['6.43', '3.78', '6.5'])

        self.failUnlessEqual(self.ic1['3.78'].ix[0]['text'], 'der')

        self.failUnlessEqual(len(self.ic2.keys()), 1)

        self.failUnlessEqual(self.ic2.keys()[0], '38.4')

        self.failUnlessEqual(self.ic2['38.4'].ix[0]['text'], 'ragt')

    def tearDown(self):
        os.system('rm data/sf_to_xio.xio.gz')
        os.system('rm data/sf_to_xio2.xio.gz')