Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
    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)
Beispiel #6
0
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
Beispiel #7
0
    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
Beispiel #8
0
            # 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)