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])
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'])
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'])
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'])