def test_to_terms_function(self): pol = Polynomial('2*x+1') result = pol.to_terms() expected = [Term('2*x'), Term('1')] self.assertEqual(result, expected)
def test_get_term_derivative_when_term_has_koef_and_st(self): term = Term('5*x^3') result = term.get_term_derivative() expected = ['15*x^2'] self.assertEqual(result, expected)
def test_get_term_derivative_when_term_has_st(self): term = Term('x^5') result = term.get_term_derivative() expected = ['5*x^4'] self.assertEqual(result, expected)
def test_get_term_derivative_when_term_is_only_x(self): term = Term('x') result = term.get_term_derivative() expected = ['1'] self.assertEqual(result, expected)
def test_get_term_derivative_when_term_has_koef_and_st_but_koef_is_without_operator( self): term = Term('5x^2') result = term.get_term_derivative() expected = ['10*x'] self.assertEqual(result, expected)
def simplifyyy(str_terms): t_minterms = [] for term in str_terms: t_minterms.append(Term(term)) minterms = Minterms(t_minterms) minterms.simplify() return minterms.result
def _generate_maxterms(self): nov = self.number_of_variables maxterms = [] for i in range(2**(nov - 1)): term = Term("{1:0{0}b}".format(nov, i)) if term not in self.minterms: maxterms.append(term) self.maxterms = maxterms
# remove the repeated terms # and prepare for next loop minterms_old = [] for term in set(minterms_new): term.flag = False minterms_old.append(term) minterms_new = deepcopy(minterms_old) minterms = remove_repeated_sources(minterms_new, minterms_old) self.result = remove_redundant_terms(minterms, self.not_cares) def simplifyyy(str_terms): t_minterms = [] for term in str_terms: t_minterms.append(Term(term)) minterms = Minterms(t_minterms) minterms.simplify() return minterms.result if __name__ == "__main__": str_terms = ["0010", "0000", "0110", "1000"] terms_not_care = ["1010", "1011", "1100", "1101", "1110", "1111"] t_minterms = [Term(term) for term in str_terms] not_cares = [Term(term) for term in terms_not_care] minterms = Minterms(t_minterms, not_cares=not_cares) minterms.simplify() print(minterms.result)