print('\nProb for mammogram given cancer',
      'P(M|C=yes)',
      mamm_g_cancer.asPct(),
      sep='\n')

# prob for mamm given cancer == no
mamm_g_no_cancer = Lea.fromValFreqs(('pos', 96),
                                    ('neg', 1000-96))

print('\nProb for mammogram given NO cancer',
      'P(M|C=no)',
      mamm_g_no_cancer.asPct(),
      sep='\n')

# conditional probability table
mammograms = Lea.buildCPT((cancer == 'yes', mamm_g_cancer),
                          (cancer == 'no', mamm_g_no_cancer))

print('\nMammograms',
      'P(M)',
      mammograms.asPct(),
      sep='\n')

# get joint probs for all events
joint_probs = Lea.cprod(mammograms, cancer)

print('\nJoint Probabilities',
      'P(M, C)',
      joint_probs.asPct(),
      sep='\n')

# prob cancer GIVEN mammogram==pos
print('Six-sided Die Distribution',
      die6,
      sep='\n')

# define four-side die
die4 = Lea.fromValFreqs(('1', 1),
                        ('2', 1),
                        ('3', 1),
                        ('4', 1))

print('Four-sided Die Distribution',
      die4,
      sep='\n')

# construct Scenario 1
scenario1 = Lea.buildCPT((coin == 'H', die6),
                         (coin == 'T', die6))

print('Scenario 1',
      scenario1,
      sep='\n')

# construct Scenario 2
scenario2 = Lea.buildCPT((coin == 'H', die6),
                         (coin == 'T', die4))

print('Scenario 2',
      scenario2,
      sep='\n')

# get joint probs for all events
# -- scenario 1
print('\nProb for mammogram given cancer',
      'P(M|C=yes)',
      mamm_g_cancer.asPct(),
      sep='\n')

# prob for mamm given cancer == no
mamm_g_no_cancer = Lea.fromValFreqs(('pos', 96), ('neg', 1000 - 96))

print('\nProb for mammogram given NO cancer',
      'P(M|C=no)',
      mamm_g_no_cancer.asPct(),
      sep='\n')

# conditional probability table
mammograms = Lea.buildCPT((cancer == 'yes', mamm_g_cancer),
                          (cancer == 'no', mamm_g_no_cancer))

print('\nMammograms', 'P(M)', mammograms.asPct(), sep='\n')

# get joint probs for all events
joint_probs = Lea.cprod(mammograms, cancer)

print('\nJoint Probabilities', 'P(M, C)', joint_probs.asPct(), sep='\n')

# prob cancer GIVEN mammogram==pos
print('\nThe Answer',
      'P(C|M=pos)',
      cancer.given(mammograms == 'pos').asPct(),
      sep='\n')

# prob cancer GIVEN mammogram==neg