def _check_intersection(self, other):
<EOL>props = ["<STR_LIT>", "<STR_LIT>", "<STR_LIT>"]<EOL>for prop in props:<EOL><INDENT>self_dict = getattr(self, prop)<EOL>other_dict = getattr(other, prop)<EOL>keys_self = set(self_dict.keys())<EOL>keys_other = set(other_dict.keys())<EOL>for key in keys_self & keys_other:<EOL><INDENT>svalue = self_dict[key]<EOL>ovalue = other_dict[key]<EOL>same_type = type(svalue) == type(ovalue)<EOL>if same_type:<EOL><INDENT>list_comp = isinstance(svalue, list) and any(<EOL>[item not in svalue for item in ovalue]<EOL>)<EOL>str_comp = isinstance(svalue, str) and svalue != ovalue<EOL>dict_comp = isinstance(svalue, dict) and svalue != ovalue<EOL>comp = any([list_comp, str_comp, dict_comp])<EOL><DEDENT>if (not same_type) or (same_type and comp):<EOL><INDENT>emsg = "<STR_LIT>"<EOL>raise RuntimeError(emsg)<EOL><DEDENT><DEDENT><DEDENT>
Check that intersection of two objects has the same information.