Exemple #1
0
    def test_ScalarArray(self):
        value = TestUtility.getRandomInt()
        size = TestUtility.getRandomListSize()
        valueList = [value] * size
        pv = PvObject({'vl': [INT]}, {'vl': valueList})
        vl = pv['vl']
        assert (len(vl) == len(valueList))
        assert (vl[0] == valueList[0])
        assert (vl[-1] == valueList[-1])

        value = TestUtility.getRandomInt()
        size = TestUtility.getRandomListSize()
        valueList = [value] * size
        pv['vl'] = valueList
        vl = pv['vl']
        assert (len(vl) == len(valueList))
        assert (vl[0] == valueList[0])
        assert (vl[-1] == valueList[-1])

        value = TestUtility.getRandomInt()
        size = TestUtility.getRandomListSize()
        valueList = [value] * size
        pv.setScalarArray(valueList)
        vl = pv.getScalarArray()
        assert (len(vl) == len(valueList))
        assert (vl[0] == valueList[0])
        assert (vl[-1] == valueList[-1])
Exemple #2
0
    def test_StructureArray(self):
        STRUCTURE = {
            's': STRING,
            'i': INT,
            'ru': ({
                'i': INT,
                'd': DOUBLE,
                's': STRING
            }, ),
            'vu': (),
            'st': {
                'i': INT,
                'd': DOUBLE,
                's': STRING
            },
        }
        size = TestUtility.getRandomListSize()
        pv = PvObject({'v': [STRUCTURE]})
        structureList = []
        for i in range(0, size):
            pv2 = PvObject(STRUCTURE)
            value = TestUtility.getRandomString()
            pv2['s'] = value

            value = TestUtility.getRandomInt()
            pv2['i'] = value

            value = TestUtility.getRandomInt()
            unionPv = PvObject({'i': INT}, {'i': value})
            pv2['ru'] = unionPv

            value = TestUtility.getRandomString()
            pv2['vu'] = PvString(value)

            value = TestUtility.getRandomInt()
            pv2['st.i'] = value
            value = TestUtility.getRandomString()
            pv2['st.s'] = value
            value = TestUtility.getRandomDouble()
            pv2['st.d'] = value

            structureList.append(pv2)
        pv['v'] = structureList

        sa = pv['v']
        for i in range(0, size):
            pv2 = sa[i]
            assert (pv2['s'] == structureList[i]['s'])
            assert (pv2['i'] == structureList[i]['i'])
            ru = pv2['ru'][0]
            assert (ru['i'] == structureList[i]['ru'][0]['i'])
            vu = pv2['vu'][0]
            assert (vu['value'] == structureList[i]['vu'][0]['value'])
            assert (pv2['st']['i'] == structureList[i]['st.i'])
            assert (pv2['st']['s'] == structureList[i]['st.s'])
            assert (pv2['st']['d'] == structureList[i]['st.d'])
Exemple #3
0
    def test_VariantUnionArray(self):
        size = TestUtility.getRandomListSize()
        pv = PvObject({'v': [()]})
        unionList = []
        for i in range(0, size):
            value = TestUtility.getRandomInt()
            unionList.append(PvInt(value))

        pv['v'] = unionList
        ul = pv['v']
        for i in range(0, size):
            uli = ul[i][0]
            assert (uli['value'] == unionList[i]['value'])

        unionList.reverse()
        pv.setUnionArray(unionList)
        ul = pv.getUnionArray()
        for i in range(0, size):
            uli = ul[i]
            assert (uli['value'] == unionList[i]['value'])
Exemple #4
0
    def test_RestrictedUnionArray(self):
        size = TestUtility.getRandomListSize()
        pv = PvObject({'v': [({'i': INT, 's': STRING, 'd': DOUBLE}, )]})
        unionList = []
        for i in range(0, size):
            if i % 3 == 0:
                value = TestUtility.getRandomInt()
                unionList.append(PvObject({'i': INT}, {'i': value}))
            elif i % 3 == 1:
                value = TestUtility.getRandomString()
                unionList.append(PvObject({'s': STRING}, {'s': value}))
            else:
                value = TestUtility.getRandomDouble()
                unionList.append(PvObject({'d': DOUBLE}, {'d': value}))

        pv['v'] = unionList
        ul = pv['v']
        for i in range(0, size):
            uli = ul[i][0]
            if 'i' in uli:
                assert (uli['i'] == unionList[i]['i'])
            elif 's' in uli:
                assert (uli['s'] == unionList[i]['s'])
            else:
                TestUtility.assertDoubleEquality(uli['d'], unionList[i]['d'])

        unionList.reverse()
        pv.setUnionArray(unionList)
        ul = pv['v']
        for i in range(0, size):
            uli = ul[i][0]
            if 'i' in uli:
                assert (uli['i'] == unionList[i]['i'])
            elif 's' in uli:
                assert (uli['s'] == unionList[i]['s'])
            else:
                TestUtility.assertDoubleEquality(uli['d'], unionList[i]['d'])