def test_hash_identical_values_different_facet_type(self): """ Facets with same key/values but different facet type in different order shouldn't have same hash """ facet_1 = [{ 'type': 'and', 'facets': [{ 'key': 'sector', 'value': 'Technology' }, { 'key': 'industry', 'value': 'Software' }] }] facet_2 = [{ 'type': 'or', 'facets': [{ 'key': 'industry', 'value': 'Software' }, { 'key': 'sector', 'value': 'Technology' }] }] facet_1_hash = Autocompleter.hash_facets(facet_1) facet_2_hash = Autocompleter.hash_facets(facet_2) self.assertNotEqual(facet_1_hash, facet_2_hash)
def test_hashing_order(self): """ Facets with identical key/values in different order should still have same hash """ facet_1 = [{ 'type': 'or', 'facets': [{ 'key': 'sector', 'value': 'Technology' }, { 'value': 'Software', 'key': 'industry' }] }] facet_2 = [{ 'type': 'or', 'facets': [{ 'key': 'industry', 'value': 'Software' }, { 'key': 'sector', 'value': 'Technology' }] }] facet_1_hash = Autocompleter.hash_facets(facet_1) facet_2_hash = Autocompleter.hash_facets(facet_2) self.assertEqual(facet_1_hash, facet_2_hash)
def test_hash_identical_values_different_facet_type(self): """ Facets with same key/values but different facet type in different order shouldn't have same hash """ facet_1 = [ { 'type': 'and', 'facets': [ {'key': 'sector', 'value': 'Technology'}, {'key': 'industry', 'value': 'Software'} ] } ] facet_2 = [ { 'type': 'or', 'facets': [ {'key': 'industry', 'value': 'Software'}, {'key': 'sector', 'value': 'Technology'} ] } ] facet_1_hash = Autocompleter.hash_facets(facet_1) facet_2_hash = Autocompleter.hash_facets(facet_2) self.assertNotEqual(facet_1_hash, facet_2_hash)
def test_hashing_order(self): """ Facets with identical key/values in different order should still have same hash """ facet_1 = [ { 'type': 'or', 'facets': [ {'key': 'sector', 'value': 'Technology'}, {'key': 'industry', 'value': 'Software'} ] } ] facet_2 = [ { 'type': 'or', 'facets': [ {'key': 'industry', 'value': 'Software'}, {'key': 'sector', 'value': 'Technology'} ] } ] facet_1_hash = Autocompleter.hash_facets(facet_1) facet_2_hash = Autocompleter.hash_facets(facet_2) self.assertEqual(facet_1_hash, facet_2_hash)
def test_multiple_facets_hashing_order(self): """ A facet list with multiple facets should have same hash when key/values are identical regardless of order """ facet_1 = [{ 'type': 'or', 'facets': [{ 'value': 'Technology', 'key': 'sector' }, { 'value': 'Software', 'key': 'industry' }] }, { 'type': 'and', 'facets': [{ 'key': 'sector', 'value': 'Energy' }, { 'key': 'industry', 'value': 'Oil & Gas Integrated' }] }] facet_2 = [ { 'type': 'and', 'facets': [{ 'key': 'industry', 'value': 'Oil & Gas Integrated' }, { 'key': 'sector', 'value': 'Energy' }] }, { 'type': 'or', 'facets': [{ 'value': 'Technology', 'key': 'sector' }, { 'key': 'industry', 'value': 'Software' }] }, ] facet_1_hash = Autocompleter.hash_facets(facet_1) facet_2_hash = Autocompleter.hash_facets(facet_2) self.assertEqual(facet_1_hash, facet_2_hash)
def test_facet_identity_hash(self): """ Hashing a facet should equal the hash of an earlier call """ facets = [ { 'type': 'or', 'facets': [{'key': 'sector', 'value': 'Technology'}] } ] first_hash = Autocompleter.hash_facets(facets) second_hash = Autocompleter.hash_facets(facets) self.assertEqual(first_hash, second_hash)
def test_facet_identity_hash(self): """ Hashing a facet should equal the hash of an earlier call """ facets = [{ 'type': 'or', 'facets': [{ 'key': 'sector', 'value': 'Technology' }] }] first_hash = Autocompleter.hash_facets(facets) second_hash = Autocompleter.hash_facets(facets) self.assertEqual(first_hash, second_hash)
def test_hashing_facet_type(self): """ Facet list with same sub facets but different type should not have equal hashes """ and_facet = [ { 'type': 'and', 'facets': [{'key': 'sector', 'value': 'Technology'}] } ] or_facet = [ { 'type': 'or', 'facets': [{'key': 'sector', 'value': 'Technology'}] } ] and_hash = Autocompleter.hash_facets(and_facet) or_hash = Autocompleter.hash_facets(or_facet) self.assertNotEqual(and_hash, or_hash)
def test_multiple_facets_hashing_order(self): """ A facet list with multiple facets should have same hash when key/values are identical regardless of order """ facet_1 = [ { 'type': 'or', 'facets': [ {'key': 'sector', 'value': 'Technology'}, {'key': 'industry', 'value': 'Software'} ] }, { 'type': 'and', 'facets': [ {'key': 'sector', 'value': 'Energy'}, {'key': 'industry', 'value': 'Oil & Gas Integrated'} ] } ] facet_2 = [ { 'type': 'and', 'facets': [ {'key': 'industry', 'value': 'Oil & Gas Integrated'}, {'key': 'sector', 'value': 'Energy'} ] }, { 'type': 'or', 'facets': [ {'key': 'sector', 'value': 'Technology'}, {'key': 'industry', 'value': 'Software'} ] }, ] facet_1_hash = Autocompleter.hash_facets(facet_1) facet_2_hash = Autocompleter.hash_facets(facet_2) self.assertEqual(facet_1_hash, facet_2_hash)
def test_hashing_facet_type(self): """ Facet list with same sub facets but different type should not have equal hashes """ and_facet = [{ 'type': 'and', 'facets': [{ 'key': 'sector', 'value': 'Technology' }] }] or_facet = [{ 'type': 'or', 'facets': [{ 'key': 'sector', 'value': 'Technology' }] }] and_hash = Autocompleter.hash_facets(and_facet) or_hash = Autocompleter.hash_facets(or_facet) self.assertNotEqual(and_hash, or_hash)