Exemplo n.º 1
0
 def test_default_argument(self):
     StatTestModel.objects.all().delete()
     tests = [
         (Corr(y="int2", x="int1", default=0), 0),
         (CovarPop(y="int2", x="int1", default=0), 0),
         (CovarPop(y="int2", x="int1", sample=True, default=0), 0),
         (RegrAvgX(y="int2", x="int1", default=0), 0),
         (RegrAvgY(y="int2", x="int1", default=0), 0),
         # RegrCount() doesn't support the default argument.
         (RegrIntercept(y="int2", x="int1", default=0), 0),
         (RegrR2(y="int2", x="int1", default=0), 0),
         (RegrSlope(y="int2", x="int1", default=0), 0),
         (RegrSXX(y="int2", x="int1", default=0), 0),
         (RegrSXY(y="int2", x="int1", default=0), 0),
         (RegrSYY(y="int2", x="int1", default=0), 0),
     ]
     for aggregation, expected_result in tests:
         with self.subTest(aggregation=aggregation):
             # Empty result with non-execution optimization.
             with self.assertNumQueries(0):
                 values = StatTestModel.objects.none().aggregate(
                     aggregation=aggregation,
                 )
                 self.assertEqual(values, {"aggregation": expected_result})
             # Empty result when query must be executed.
             with self.assertNumQueries(1):
                 values = StatTestModel.objects.aggregate(
                     aggregation=aggregation,
                 )
                 self.assertEqual(values, {"aggregation": expected_result})
Exemplo n.º 2
0
 def test_empty_result_set(self):
     StatTestModel.objects.all().delete()
     tests = [
         (Corr(y='int2', x='int1'), None),
         (CovarPop(y='int2', x='int1'), None),
         (CovarPop(y='int2', x='int1', sample=True), None),
         (RegrAvgX(y='int2', x='int1'), None),
         (RegrAvgY(y='int2', x='int1'), None),
         (RegrCount(y='int2', x='int1'), 0),
         (RegrIntercept(y='int2', x='int1'), None),
         (RegrR2(y='int2', x='int1'), None),
         (RegrSlope(y='int2', x='int1'), None),
         (RegrSXX(y='int2', x='int1'), None),
         (RegrSXY(y='int2', x='int1'), None),
         (RegrSYY(y='int2', x='int1'), None),
     ]
     for aggregation, expected_result in tests:
         with self.subTest(aggregation=aggregation):
             # Empty result with non-execution optimization.
             with self.assertNumQueries(0):
                 values = StatTestModel.objects.none().aggregate(
                     aggregation=aggregation,
                 )
                 self.assertEqual(values, {'aggregation': expected_result})
             # Empty result when query must be executed.
             with self.assertNumQueries(1):
                 values = StatTestModel.objects.aggregate(
                     aggregation=aggregation,
                 )
                 self.assertEqual(values, {'aggregation': expected_result})
Exemplo n.º 3
0
 def test_corr_empty_result(self):
     StatTestModel.objects.all().delete()
     values = StatTestModel.objects.aggregate(corr=Corr(y='int2', x='int1'))
     self.assertEqual(values, {'corr': None})
Exemplo n.º 4
0
 def test_corr_general(self):
     values = StatTestModel.objects.aggregate(corr=Corr(y='int2', x='int1'))
     self.assertEqual(values, {'corr': -1.0})
Exemplo n.º 5
0
 def test_corr_general(self):
     values = StatTestModel.objects.aggregate(corr=Corr(y="int2", x="int1"))
     self.assertEqual(values, {"corr": -1.0})