def test_modus_ponens(): A = np.r_[0, 0.6, 1, 0.2] B = np.r_[0, 0.4, 1, 0.8, 0.3, 0] C = np.r_[0.3, 0.5, 0.6, 0.6, 0.5, 0.3] Aprime = np.r_[0.5, 1, 0.3, 0] R_expected = np.r_[[[ 1, 1, 1, 1, 1, 1], [0.4, 0.4, 0.6, 0.6, 0.4, 0.4], [ 0, 0.4, 1, 0.8, 0.3, 0], [0.8, 0.8, 0.8, 0.8, 0.8, 0.8]]] Bprime_expected = np.r_[0.5, 0.5, 0.6, 0.6, 0.5, 0.5] R, Bprime = modus_ponens(A, B, Aprime) assert_allclose(R, R_expected) assert_allclose(Bprime, Bprime_expected) R_expected = np.r_[[[ 0.3, 0.5, 0.6, 0.6, 0.5, 0.3], [ 0.3, 0.4, 0.6, 0.6, 0.4, 0.3], [ 0. , 0.4, 1. , 0.8, 0.3, 0. ], [ 0.3, 0.5, 0.6, 0.6, 0.5, 0.3]]] Bprime_expected = np.r_[ 0.3, 0.5, 0.6, 0.6, 0.5, 0.3] R, Bprime = modus_ponens(A, B, Aprime, C) assert_allclose(R, R_expected) assert_allclose(Bprime, Bprime_expected)