def test_does_observation_sample_off_s2elem_greater_than_1_cause_system_exit(
         self):
     PI = PredictionIntervals()
     s2elem = np.array([[2.0, 1.0]])
     ypred = np.linspace(2.0, 3.0, num=15)
     ypred = ypred.reshape(5, 3)
     sstype = 0
     with self.assertRaises(SystemExit):
         PI._observation_sample(s2elem, ypred, sstype)
 def test_does_observation_sample_wrong_size_s2elem_break_right_size_array(
         self):
     PI = PredictionIntervals()
     s2elem = np.array([[2.0, 1.0]])
     ypred = np.linspace(2.0, 3.0, num=5)
     ypred = ypred.reshape(5, 1)
     sstype = 0
     with self.assertRaises(
             SystemExit,
             msg='Mismatched size for s2chain and model return'):
         PI._observation_sample(s2elem, ypred, sstype)
    def test_does_observation_sample_unknown_sstype_cause_system_exit(self):
        PI = PredictionIntervals()
        s2elem = np.array([[2.0]])
        ypred = np.linspace(2.0, 3.0, num=5)
        ypred = ypred.reshape(5, 1)
        sstype = 4
        with self.assertRaises(SystemExit, msg='Unrecognized sstype'):
            PI._observation_sample(s2elem, ypred, sstype)

        sstype = 0
        opred = PI._observation_sample(s2elem, ypred, sstype)
        self.assertEqual(opred.shape, ypred.shape, msg='Shapes should match')
    def test_does_observation_sample_2_column_ypred_right_size_array(self):
        PI = PredictionIntervals()
        ypred = np.linspace(2.0, 3.0, num=10)
        ypred = ypred.reshape(5, 2)

        s2elem = np.array([[2.0, 1.0]])
        sstype = 0
        opred = PI._observation_sample(s2elem, ypred, sstype)
        self.assertEqual(opred.shape, ypred.shape, msg='Shapes are compatible')

        s2elem = np.array([[2.0]])
        opred = PI._observation_sample(s2elem, ypred, sstype)
        self.assertEqual(opred.shape, ypred.shape, msg='Shapes are compatible')

        sstype = 1
        opred = PI._observation_sample(s2elem, ypred, sstype)
        self.assertEqual(opred.shape, ypred.shape, msg='Shapes are compatible')

        sstype = 2
        opred = PI._observation_sample(s2elem, ypred, sstype)
        self.assertEqual(opred.shape, ypred.shape, msg='Shapes are compatible')