def test_case_sensitive(self):
        csdata   = unicode_dict([('ábc',1), ('d',2)], case_sensitive = True)
        self.assertTrue(csdata.case_sensitive)
        self.assertFalse(self.withdata.case_sensitive)

        self.assertNotEqual(self.withdata,csdata)

        self.assertIn('abc', self.withdata)
        self.assertIn('Abc', self.withdata)
        self.assertIn('abc', csdata)
        self.assertNotIn('Abc', csdata)

        csdata['Abc'] = 4
        self.withdata['Abc'] = 4

        self.assertEqual(self.withdata['abc'], self.withdata['Abc'])
        self.assertEqual(self.withdata['ábc'], 4)
        
        self.assertNotEqual(csdata['abc'], csdata['Abc'])
        self.assertEqual(csdata['ábc'], 1)
        self.assertEqual(csdata['Abc'], 4)
        self.assertEqual(csdata['Ábc'], 4)

        cidata = unicode_dict(csdata, case_sensitive=False) #explicit casting to case insensitive
        self.assertNotEqual(cidata, csdata)

        self.assertNotEqual(len(cidata), len(csdata))
        
        self.assertEqual(len(cidata), 2)
        self.assertEqual(len(csdata), 3)

        self.assertTrue(cidata['abc'] == 1 or cidata['abc'] == 4) # casting down doesn't guarantee the result
 def setUp(self):
     self.empty = unicode_dict()
     self.withdata = unicode_dict({'ábc':1, 'd':2})
     self.compdata = unicode_dict({'ábc':1, 'd':2},comparison_level=3)
 def test_copy_constructor(self):
     test = unicode_dict(self.compdata,comparison_level=self.withdata.comparison_level)
     self.assertNotEqual(self.compdata, test)
     self.assertEqual(self.withdata, test)
     self.assertIn('abc', test)
 def test_comparison(self):
     test = unicode_dict({'abc':1, 'd':2})
     self.assertEqual(test, self.withdata)