def test_cartesian_product(self): """Test cartesian product function""" list1 = [{'ds':1, 'site':2, 'admin':None, 'block':1}, {'ds':1, 'site':1, 'admin':None, 'block':1}, {'ds':2, 'site':1, 'admin':None, 'block':1}, {'ds':2, 'site':1, 'admin':None, 'block':1}, ] list2 = [{'ds':None, 'site':2, 'admin':'vk', 'block':''}, {'ds':None, 'site':2, 'admin':'simon', 'block':''}, {'ds':None, 'site':1,'admin':'pet', 'block':''}] res = cartesian_product(list1, list2) result = [i for i in res] result.sort() expect = [{'ds':1, 'site':2, 'admin':'vk', 'block':1}, {'ds':1, 'site':2, 'admin':'simon', 'block':1}, {'ds':1, 'site':1, 'admin':'pet', 'block':1}, {'ds':2, 'site':1, 'admin':'pet', 'block':1}, {'ds':2, 'site':1, 'admin':'pet', 'block':1}, ] expect.sort() self.assertEqual(expect, result)
def testCartesianProduct(self): """ Test cartesian product utility """ dbs_set = [ { 'system' : 'dbs', 'admin' : '', 'block' : '123-123-100', 'dataset' : '/a/b/c', 'site' : 'T2', }, { 'system' : 'dbs', 'admin' : '', 'block' : '123-123-101', 'dataset' : '/a/b/c', 'site' : 'T2', }, { 'system' : 'dbs', 'admin' : '', 'block' : '123-123-102', 'dataset' : '/e/d/f', 'site' : 'T2', } ] # results from SiteDB sitedb_set = [ { 'system' : 'sitedb', 'admin' : 'vk', 'block' : '', 'dataset' : '', 'site' : 'T2', }, { 'system' : 'sitedb', 'admin' : 'simon', 'block' : '', 'dataset' : '', 'site' : 'T2', } ] # results from Phedex phedex_set = [ { 'system' : 'phedex', 'admin' : '', 'block' : '123-123-100', 'dataset' : '', 'site' : 'T2', }, { 'system' : 'phedex', 'admin' : '', 'block' : '123-123-102', 'dataset' : '', 'site' : 'T2', } ] # result = cartesian_product(dbs_set, sitedb_set, ['site']) # result = cartesian_product(result, phedex_set, ['block','site']) result = cartesian_product(dbs_set, sitedb_set) result = cartesian_product(result, phedex_set) resultlist = [res for res in result] resultlist.sort() expectlist = [ { 'system': 'dbs+sitedb+phedex', 'admin' : 'vk', 'block': '123-123-100', 'dataset': '/a/b/c', 'site': 'T2', }, { 'system': 'dbs+sitedb+phedex', 'admin' : 'vk', 'block': '123-123-102', 'dataset': '/e/d/f', 'site': 'T2', }, { 'system': 'dbs+sitedb+phedex', 'admin' : 'simon', 'block': '123-123-100', 'dataset': '/a/b/c', 'site': 'T2', }, { 'system': 'dbs+sitedb+phedex', 'admin' : 'simon', 'block': '123-123-102', 'dataset': '/e/d/f', 'site': 'T2', } ] expectlist.sort() self.assertEqual(expectlist, resultlist)
def testCartesianProduct(self): """ Test cartesian product utility """ dbs_set = [{ 'system': 'dbs', 'admin': '', 'block': '123-123-100', 'dataset': '/a/b/c', 'site': 'T2', }, { 'system': 'dbs', 'admin': '', 'block': '123-123-101', 'dataset': '/a/b/c', 'site': 'T2', }, { 'system': 'dbs', 'admin': '', 'block': '123-123-102', 'dataset': '/e/d/f', 'site': 'T2', }] # results from SiteDB sitedb_set = [{ 'system': 'sitedb', 'admin': 'vk', 'block': '', 'dataset': '', 'site': 'T2', }, { 'system': 'sitedb', 'admin': 'simon', 'block': '', 'dataset': '', 'site': 'T2', }] # results from Phedex phedex_set = [{ 'system': 'phedex', 'admin': '', 'block': '123-123-100', 'dataset': '', 'site': 'T2', }, { 'system': 'phedex', 'admin': '', 'block': '123-123-102', 'dataset': '', 'site': 'T2', }] result = cartesian_product(dbs_set, sitedb_set) result = cartesian_product(result, phedex_set) resultlist = [res for res in result] expectlist = [{ 'system': 'dbs+sitedb+phedex', 'admin': 'vk', 'block': '123-123-100', 'dataset': '/a/b/c', 'site': 'T2', }, { 'system': 'dbs+sitedb+phedex', 'admin': 'vk', 'block': '123-123-102', 'dataset': '/e/d/f', 'site': 'T2', }, { 'system': 'dbs+sitedb+phedex', 'admin': 'simon', 'block': '123-123-100', 'dataset': '/a/b/c', 'site': 'T2', }, { 'system': 'dbs+sitedb+phedex', 'admin': 'simon', 'block': '123-123-102', 'dataset': '/e/d/f', 'site': 'T2', }] for x in resultlist: self.assertEqual(x in expectlist, True)
def test_cartesian_product(self): """Test cartesian product function""" list1 = [ { 'ds': 1, 'site': 2, 'admin': None, 'block': 1 }, { 'ds': 1, 'site': 1, 'admin': None, 'block': 1 }, { 'ds': 2, 'site': 1, 'admin': None, 'block': 1 }, { 'ds': 2, 'site': 1, 'admin': None, 'block': 1 }, ] list2 = [{ 'ds': None, 'site': 2, 'admin': 'vk', 'block': '' }, { 'ds': None, 'site': 2, 'admin': 'simon', 'block': '' }, { 'ds': None, 'site': 1, 'admin': 'pet', 'block': '' }] res = cartesian_product(list1, list2) result = [i for i in res] expect = [ { 'ds': 1, 'site': 2, 'admin': 'vk', 'block': 1 }, { 'ds': 1, 'site': 2, 'admin': 'simon', 'block': 1 }, { 'ds': 1, 'site': 1, 'admin': 'pet', 'block': 1 }, { 'ds': 2, 'site': 1, 'admin': 'pet', 'block': 1 }, { 'ds': 2, 'site': 1, 'admin': 'pet', 'block': 1 }, ] for x in result: self.assertEqual(x in expect, True)