def test_xlist_remove_dupes_int(self): xl = XList([1, 2, 2, 3, 3, 3], {'first_attr': 1}) nodupe = xl.remove_duplicates() self.assertEqual(type(nodupe), type(XList(['test', 'again']))) self.assertEqual(nodupe.count(1), 1) self.assertEqual(nodupe.count(2), 1) self.assertEqual(nodupe.count(3), 1)
def test_xlist_addeq_overload_xlist(self): xl = XList(['one', 'two', 'three'], {'first_attr': 1}) xl2 = XList(['four', 'five'], {'second_attr': 2}) xl += xl2 self.assertTrue('four' in xl) self.assertTrue('one' in xl) self.assertEqual(xl.first_attr, 1) self.assertEqual(xl.second_attr, 2)
def test_xlist_intersection(self): xl = XList([1, 2, 3], {'first_attr': 1}) xl2 = XList([2, 4, 5]) inter = xl.intersection( xl2) # returns items in both XList and parameter list/XList self.assertTrue(2 in inter) self.assertFalse(1 in inter) self.assertFalse(3 in inter) self.assertFalse(4 in inter) self.assertFalse(5 in inter)
def test_xlist_difference(self): xl = XList([1, 2, 3], {'first_attr': 1}) xl2 = XList([2, 4, 5]) diff = xl.difference( xl2 ) # returns items in XList that are not in parameter list/XList as set self.assertTrue(1 in diff) self.assertTrue(3 in diff) self.assertFalse(2 in diff) self.assertFalse(4 in diff) self.assertFalse(5 in diff)
def test_xlist_add_overload_mutiple_xlist(self): xl = XList(['one', 'two', 'three'], {'first_attr': 1}) xl2 = XList(['four', 'five'], {'second_attr': 2}) xl3 = XList(['six', 'seven'], {'third_attr': 3}) nl = xl + xl2 + xl3 self.assertTrue('one' in nl) self.assertTrue('five' in nl) self.assertTrue('seven' in nl) self.assertEqual(nl.first_attr, 1) self.assertEqual(nl.second_attr, 2) self.assertEqual(nl.third_attr, 3)
def test_xlist_map_items_noreturn_value(self): def no_return(xlist_val): x = 1 xl = XList(['one', 'two', 'three'], {'first_attr': 1}) nl = xl.map_to_items(no_return) self.assertTrue(nl[0] == None)
def test_xlist_addeq_overload_list(self): xl = XList(['one', 'two', 'three'], {'first_attr': 1}) a_list = ['four', 'five'] xl += a_list self.assertTrue('four' in xl) self.assertTrue('one' in xl) self.assertEqual(xl.first_attr, 1)
def test_xlist_add_overload_list(self): xl = XList(['one', 'two', 'three'], {'first_attr': 1}) a_list = ['four', 'five'] nl = xl + a_list # note that xlist needs to be the left sided operand to include attributes self.assertTrue('four' in nl) self.assertTrue('one' in nl) self.assertEqual(nl.first_attr, 1)
def test_xlist_multi_wildcard_match(self): xl = XList(['many', 'tom', 'Many'], {'first_attr': 1}) nl = xl.multi_wildcard_match('m*|t*') self.assertTrue(len(nl) == 2) self.assertTrue('many' in nl) self.assertTrue('tom' in nl) self.assertFalse('Many' in nl)
def test_xlist_add_overload_multiplelist(self): xl = XList(['one', 'two', 'three'], {'first_attr': 1}) a_list = ['four', 'five'] b_list = ['six', 'seven'] nl = xl + a_list + b_list self.assertTrue('four' in nl) self.assertTrue('one' in nl) self.assertTrue('seven' in nl) self.assertEqual(nl.first_attr, 1)
def test_xlist_map_items(self): def cap_val(xlist_item): return xlist_item.upper() xl = XList(['one', 'two', 'three'], {'first_attr': 1}) nl = xl.map_to_items(cap_val) self.assertTrue('ONE' in nl) self.assertTrue('TWO' in nl) self.assertTrue('THREE' in nl) self.assertFalse('one' in nl) self.assertFalse('two' in nl) self.assertFalse('three' in nl)
def xl(list_arg, attributes={}): try: return XList(list_arg, attributes) except TypeError: raise TypeError( "Attempted to cast to a XList with an incompatible type") except Exception as e: if DEBUG_FLAG: print( "Naked Framework Error: unable to cast object to a XList with the xl() function (Naked.toolshed.casts.py)." ) raise e
def test_xdict_key_xlist(self): xd = XDict( { 'a_one': 'value_one', 'b_two': 'value_two', 'c_three': 'value_three' }, {'attrkey': 'attrval'}) xl = xd.key_xlist() self.assertEqual(type(xl), type(XList(['item']))) #actually makes XList self.assertTrue(len(xl) == 3) # includes all items self.assertTrue('a_one' in xl) # includes appropriate items in XList self.assertTrue('b_two' in xl) self.assertTrue('c_three' in xl) self.assertEqual(xl.attrkey, 'attrval') # includes original attributes
def test_xlist_conditional_map_items(self): def true_a(xdict_key): return xdict_key.startswith('a') def cap_val(xdict_val): return xdict_val.upper() xl = XList(['all', 'many', 'none'], {'first_attr': 1}) nl = xl.conditional_map_to_items(true_a, cap_val) self.assertTrue('ALL' in nl) self.assertFalse('all' in nl) self.assertFalse('MANY' in nl) self.assertFalse('NONE' in nl) self.assertTrue(nl[0] == 'ALL') self.assertTrue(nl[1] == 'many') self.assertTrue(nl[2] == 'none')
def setUp(self): self.teststring = "this is a test" self.testdict = {'key1': 'val1', 'key2': 'val2'} self.testlist = ['item1', 'item2', 'item3'] self.testset = {'item1', 'item2', 'item3'} self.frozenset = frozenset(self.testset) self.testtuple = ('item1', 'item2', 'item3') self.stringtype = type(self.teststring) self.dicttype = type(self.testdict) self.listtype = type(self.testlist) self.settype = type(self.testset) self.fsettype = type(self.frozenset) self.tupletype = type(self.testtuple) self.nobj = NakedObject(self.testdict) self.xstring = XString(self.teststring, self.testdict) self.xdict = XDict(self.testdict, self.testdict) self.xlist = XList(self.testlist, self.testdict) self.xsets = XSet(self.testset, self.testdict) self.xfsets = XFSet(self.testset, self.testdict) self.xtuple = XTuple(self.testtuple, self.testdict) self.nobjtype = type(self.nobj) self.xstringtype = type(self.xstring) self.xdicttype = type(self.xdict) self.xlisttype = type(self.xlist) self.xsettype = type(self.xsets) self.xfsettype = type(self.xfsets) self.xtupletype = type(self.xtuple) self.test_nobj = nobj(self.testdict) self.test_xstring = xstr(self.teststring, self.testdict) self.test_xdict = xd(self.testdict, self.testdict) self.test_xlist = xl(self.testlist, self.testdict) self.test_xset = xset(self.testset, self.testdict) self.test_xfset = xfset(self.frozenset, self.testdict) self.test_xtuple = xt(self.testtuple, self.testdict)
def test_xlist_shuffle(self): xl = XList([1, 2, 3], {'first_attr': 1}) nl = xl.random_sample(2)
def test_xlist_sum_int(self): xl = XList([1, 2, 3], {'first_attr': 1}) total = xl.sum() self.assertEqual(total, 6)
def test_xlist_random_noexception( self ): # just confirm that it does not raise exception, can't test result xl = XList([1, 2, 3], {'first_attr': 1}) nl = xl.random() self.assertTrue(type(nl) == type(1))
def test_xlist_random_sample_noexception(self): xl = XList([1, 2, 3], {'first_attr': 1}) nl = xl.random_sample(2) self.assertTrue(len(nl) == 2)
def test_xlist_postfix_unicode_char(self): xl = XList(['one', 'two', 'three'], {'first_attr': 1}) nl = xl.postfix('ত') self.assertTrue('oneত' in nl) self.assertTrue('twoত' in nl) self.assertTrue('threeত' in nl)
def test_xlist_count_case_insensitive_withother(self): xl = XList(['MANY', 1, 'many'], {'first_attr': 1}) nl = xl.count_ci('Many') self.assertTrue(nl == 2)
def test_xlist_surround_one_string(self): xl = XList(['one', 'two', 'three'], {'first_attr': 1}) nl = xl.surround('"') self.assertTrue('"one"' in nl) self.assertTrue('"two"' in nl) self.assertTrue('"three"' in nl)
def test_xlist_postfix_string(self): xl = XList(['one', 'two', 'three'], {'first_attr': 1}) nl = xl.postfix('test') self.assertTrue('onetest' in nl) self.assertTrue('twotest' in nl) self.assertTrue('threetest' in nl)
def test_xlist_max_int(self): xl = XList([1, 2, 3], {'first_attr': 1}) max_num = xl.max() self.assertEqual(max_num, 3)
def test_xlist_surround_two_strings(self): xl = XList(['one', 'two', 'three'], {'first_attr': 1}) nl = xl.surround('<p>', '</p>') self.assertTrue('<p>one</p>' in nl) self.assertTrue('<p>two</p>' in nl) self.assertTrue('<p>three</p>' in nl)
def test_xlist_min_int(self): xl = XList([1, 2, 3], {'first_attr': 1}) min_num = xl.min() self.assertEqual(min_num, 1)
def test_xlist_count_dupes_string_twodupe(self): xl = XList(['test', 'test', 'another', 'another', 'last', 'last'], {'first_attr': 1}) dupes = xl.count_duplicates() self.assertEqual(dupes, 3)
def test_xlist_count_dupes_int_twodupe(self): xl = XList([1, 2, 2, 3, 3, 3], {'first_attr': 1}) dupes = xl.count_duplicates() self.assertEqual(dupes, 3)
def test_xlist_sum_float(self): xl = XList([1.2, 2.5, 3.1], {'first_attr': 1}) total = xl.sum() self.assertAlmostEqual(total, 6.8)
def test_xlist_min_float(self): xl = XList([1.25123, 2.5234, 3.73423], {'first_attr': 1}) min_num = xl.min() self.assertEqual(min_num, 1.25123)