예제 #1
0
 def _to_model_measure(self, table):
     return aa.Measure(
         id=f"{self.plural.title()}",
         resolve_table_name=self.name,
         function="Count",
         variable_name=None,
     )
예제 #2
0
 def _to_model_measure(self, table):
     return aa.Measure(
         id=self.label if self.label is not None else self._name,
         resolve_table_name=table.name,
         function=self._model_function,
         variable_name=self.operand.name,
     )
예제 #3
0
 def test_variance_to_model_measure(self, chy_numeric_var_duration,
                                    chy_website_visits_table):
     variance_statistic = Variance(chy_numeric_var_duration)
     expected_variance_measure_model = aa.Measure(
         id="Variance(Duration)",
         resolve_table_name="WebsiteVisits",
         function="Variance",
         variable_name="weDurtn",
     )
     assert (variance_statistic._to_model_measure(chy_website_visits_table)
             == expected_variance_measure_model)
예제 #4
0
 def test_max_to_model_measure_custom_name_different_table(
         self, chy_numeric_var_cost, chy_donations_table):
     max_statistic = Max(chy_numeric_var_cost, label="Largest donation")
     expected_max_measure_model = aa.Measure(
         id="Largest donation",
         resolve_table_name="Donations",
         function="Maximum",
         variable_name="caCost",
     )
     assert (max_statistic._to_model_measure(chy_donations_table) ==
             expected_max_measure_model)
예제 #5
0
 def test_max_to_model_measure(self, chy_numeric_var_cost,
                               chy_campaigns_table):
     max_statistic = Max(chy_numeric_var_cost)
     expected_max_measure_model = aa.Measure(
         id="Max(Cost)",
         resolve_table_name="Campaigns",
         function="Maximum",
         variable_name="caCost",
     )
     assert (max_statistic._to_model_measure(chy_campaigns_table) ==
             expected_max_measure_model)
예제 #6
0
 def test_sum_to_model_measure(self, chy_numeric_var_cost,
                               chy_campaigns_table):
     sum_statistic = Sum(chy_numeric_var_cost)
     expected_sum_measure_model = aa.Measure(
         id="Sum(Cost)",
         resolve_table_name="Campaigns",
         function="Sum",
         variable_name="caCost",
     )
     assert (sum_statistic._to_model_measure(chy_campaigns_table) ==
             expected_sum_measure_model)
예제 #7
0
 def test_populated_to_model_measure(self, chy_numeric_var_age,
                                     chy_supporters_table):
     populated_statistic = Populated(chy_numeric_var_age)
     expected_populated_measure_model = aa.Measure(
         id="Populated(Age)",
         resolve_table_name="Supporters",
         function="VariableCount",
         variable_name="suAge",
     )
     assert (populated_statistic._to_model_measure(chy_supporters_table) ==
             expected_populated_measure_model)
예제 #8
0
 def test_count_distinct_numeric_to_model_measure(self, chy_numeric_var_age,
                                                  chy_supporters_table):
     count_distinct_statistic = CountDistinct(chy_numeric_var_age)
     expected_count_distinct_measure_model = aa.Measure(
         id="Count Distinct(Age)",
         resolve_table_name="Supporters",
         function="CountDistinct",
         variable_name="suAge",
     )
     assert (count_distinct_statistic._to_model_measure(
         chy_supporters_table) == expected_count_distinct_measure_model)
예제 #9
0
 def test_sum_to_model_measure_custom_name_different_table(
         self, chy_numeric_var_cost, chy_supporters_table):
     sum_statistic = Sum(chy_numeric_var_cost, label="Total cost")
     expected_sum_measure_model = aa.Measure(
         id="Total cost",
         resolve_table_name="Supporters",
         function="Sum",
         variable_name="caCost",
     )
     assert (sum_statistic._to_model_measure(chy_supporters_table) ==
             expected_sum_measure_model)
예제 #10
0
 def test_mean_to_model_measure_custom_name_different_table(
         self, chy_numeric_var_amount, chy_campaigns_table):
     mean_statistic = Mean(chy_numeric_var_amount, label="Average donated")
     expected_mean_measure_model = aa.Measure(
         id="Average donated",
         resolve_table_name="Campaigns",
         function="Mean",
         variable_name="doAmount",
     )
     assert (mean_statistic._to_model_measure(chy_campaigns_table) ==
             expected_mean_measure_model)
예제 #11
0
 def test_count_mode_numeric_to_model_measure(self, chy_numeric_var_amount,
                                              chy_donations_table):
     count_mode_statistic = CountMode(chy_numeric_var_amount)
     expected_count_mode_measure_model = aa.Measure(
         id="Count Mode(Amount)",
         resolve_table_name="Donations",
         function="MaxDistinctCount",
         variable_name="doAmount",
     )
     assert (count_mode_statistic._to_model_measure(chy_donations_table) ==
             expected_count_mode_measure_model)
예제 #12
0
 def test_mean_to_model_measure(self, chy_numeric_var_amount,
                                chy_donations_table):
     mean_statistic = Mean(chy_numeric_var_amount)
     expected_mean_measure_model = aa.Measure(
         id="Mean(Amount)",
         resolve_table_name="Donations",
         function="Mean",
         variable_name="doAmount",
     )
     assert (mean_statistic._to_model_measure(chy_donations_table) ==
             expected_mean_measure_model)
예제 #13
0
 def test_count_mode_selector_to_model_measure(self, chy_selector_var,
                                               chy_supporters_table):
     count_mode_statistic = CountMode(chy_selector_var)
     expected_count_mode_measure_model = aa.Measure(
         id="Count Mode(Membership)",
         resolve_table_name="Supporters",
         function="MaxDistinctCount",
         variable_name="suMember",
     )
     assert (count_mode_statistic._to_model_measure(chy_supporters_table) ==
             expected_count_mode_measure_model)
예제 #14
0
 def test_min_to_model_measure_custom_name_different_table(
         self, chy_numeric_var_cost, chy_website_visits_table):
     min_statistic = Min(chy_numeric_var_cost, label="Smallest donation")
     expected_min_measure_model = aa.Measure(
         id="Smallest donation",
         resolve_table_name="WebsiteVisits",
         function="Minimum",
         variable_name="caCost",
     )
     assert (min_statistic._to_model_measure(chy_website_visits_table) ==
             expected_min_measure_model)
예제 #15
0
 def test_std_dev_to_model_measure(self, chy_numeric_var_duration,
                                   chy_website_visits_table):
     std_dev_statistic = StdDev(chy_numeric_var_duration)
     expected_std_dev_measure_model = aa.Measure(
         id="Std Dev(Duration)",
         resolve_table_name="WebsiteVisits",
         function="StandardDeviation",
         variable_name="weDurtn",
     )
     assert (std_dev_statistic._to_model_measure(chy_website_visits_table)
             == expected_std_dev_measure_model)
예제 #16
0
 def test_upper_quartile_to_model_measure(self, chy_numeric_var_age,
                                          chy_supporters_table):
     upper_quartile_statistic = UpperQuartile(chy_numeric_var_age)
     expected_upper_quartile_measure_model = aa.Measure(
         id="Upper Quartile(Age)",
         resolve_table_name="Supporters",
         function="UpperQuartile",
         variable_name="suAge",
     )
     assert (upper_quartile_statistic._to_model_measure(
         chy_supporters_table) == expected_upper_quartile_measure_model)
예제 #17
0
 def test_variance_to_model_measure_custom_name_different_table(
         self, chy_numeric_var_duration, chy_campaigns_table):
     variance_statistic = Variance(chy_numeric_var_duration,
                                   label="Duration var")
     expected_variance_measure_model = aa.Measure(
         id="Duration var",
         resolve_table_name="Campaigns",
         function="Variance",
         variable_name="weDurtn",
     )
     assert (variance_statistic._to_model_measure(chy_campaigns_table) ==
             expected_variance_measure_model)
예제 #18
0
 def test_count_mode_selector_to_model_measure_custom_name_different_table(
         self, chy_selector_var, chy_campaigns_table):
     count_mode_statistic = CountMode(chy_selector_var,
                                      label="Size largest membership type")
     expected_count_mode_measure_model = aa.Measure(
         id="Size largest membership type",
         resolve_table_name="Campaigns",
         function="MaxDistinctCount",
         variable_name="suMember",
     )
     assert (count_mode_statistic._to_model_measure(chy_campaigns_table) ==
             expected_count_mode_measure_model)
예제 #19
0
 def test_count_distinct_selector_to_model_measure_custom_name_different_table(
         self, chy_selector_var, chy_website_visits_table):
     count_distinct_statistic = CountDistinct(chy_selector_var,
                                              label="No. membership types")
     expected_count_distinct_measure_model = aa.Measure(
         id="No. membership types",
         resolve_table_name="WebsiteVisits",
         function="CountDistinct",
         variable_name="suMember",
     )
     assert (count_distinct_statistic._to_model_measure(
         chy_website_visits_table) == expected_count_distinct_measure_model)
예제 #20
0
 def test_count_distinct_numeric_to_model_measure_custom_name_different_table(
         self, chy_numeric_var_age, chy_donations_table):
     count_distinct_statistic = CountDistinct(
         chy_numeric_var_age, label="No. different ages of supporters")
     expected_count_distinct_measure_model = aa.Measure(
         id="No. different ages of supporters",
         resolve_table_name="Donations",
         function="CountDistinct",
         variable_name="suAge",
     )
     assert (count_distinct_statistic._to_model_measure(chy_donations_table)
             == expected_count_distinct_measure_model)
예제 #21
0
 def test_mode_to_model_measure_custom_name_different_table(
         self, chy_numeric_var_amount, chy_website_visits_table):
     mode_statistic = Mode(chy_numeric_var_amount,
                           label="Most common amount")
     expected_mode_measure_model = aa.Measure(
         id="Most common amount",
         resolve_table_name="WebsiteVisits",
         function="Mode",
         variable_name="doAmount",
     )
     assert (mode_statistic._to_model_measure(chy_website_visits_table) ==
             expected_mode_measure_model)
예제 #22
0
 def test_populated_to_model_measure_custom_name_different_table(
         self, chy_numeric_var_age, chy_donations_table):
     populated_statistic = Populated(chy_numeric_var_age,
                                     label="Number age known")
     expected_populated_measure_model = aa.Measure(
         id="Number age known",
         resolve_table_name="Donations",
         function="VariableCount",
         variable_name="suAge",
     )
     assert (populated_statistic._to_model_measure(chy_donations_table) ==
             expected_populated_measure_model)
예제 #23
0
 def test_lower_quartile_to_model_measure_custom_name_different_table(
         self, chy_numeric_var_age, chy_campaigns_table):
     lower_quartile_statistic = LowerQuartile(chy_numeric_var_age,
                                              label="LQ Age")
     expected_lower_quartile_measure_model = aa.Measure(
         id="LQ Age",
         resolve_table_name="Campaigns",
         function="LowerQuartile",
         variable_name="suAge",
     )
     assert (lower_quartile_statistic._to_model_measure(chy_campaigns_table)
             == expected_lower_quartile_measure_model)
예제 #24
0
 def test_std_dev_to_model_measure_custom_name_different_table(
         self, chy_numeric_var_duration, chy_supporters_table):
     std_dev_statistic = StdDev(chy_numeric_var_duration,
                                label="Duration st dev")
     expected_std_dev_measure_model = aa.Measure(
         id="Duration st dev",
         resolve_table_name="Supporters",
         function="StandardDeviation",
         variable_name="weDurtn",
     )
     assert (std_dev_statistic._to_model_measure(chy_supporters_table) ==
             expected_std_dev_measure_model)
예제 #25
0
    def test_to_model_measure(self, rtl_table_purchases, rtl_table_customers):
        expected_measures_model = aa.Measure(
            id="Purchases",
            resolve_table_name="Purchases",
            function="Count",
            variable_name=None,
        )

        assert (
            Table._to_model_measure(rtl_table_purchases, rtl_table_customers)
            == expected_measures_model
        )
예제 #26
0
 def test_inter_quartile_range_to_model_measure_custom_name_different_table(
         self, chy_numeric_var_duration, chy_donations_table):
     inter_quartile_range_statistic = InterQuartileRange(
         chy_numeric_var_duration, label="IQR Duration")
     expected_inter_quartile_range_measure_model = aa.Measure(
         id="IQR Duration",
         resolve_table_name="Donations",
         function="InterQuartileRange",
         variable_name="weDurtn",
     )
     assert (inter_quartile_range_statistic._to_model_measure(
         chy_donations_table) == expected_inter_quartile_range_measure_model
             )
예제 #27
0
 def test_inter_quartile_range_to_model_measure(self,
                                                chy_numeric_var_duration,
                                                chy_website_visits_table):
     inter_quartile_range_statistic = InterQuartileRange(
         chy_numeric_var_duration)
     expected_inter_quartile_range_measure_model = aa.Measure(
         id="Inter Quartile Range(Duration)",
         resolve_table_name="WebsiteVisits",
         function="InterQuartileRange",
         variable_name="weDurtn",
     )
     assert (inter_quartile_range_statistic._to_model_measure(
         chy_website_visits_table) ==
             expected_inter_quartile_range_measure_model)
예제 #28
0
 def test_cube(self):
     selection = aa.Selection(table_name="Flight Route",
                              name="Blank Query",
                              ancestor_counts=False)
     query = aa.Query(selection=selection)
     dimension = aa.Dimension(
         id="Dates",
         type="Selector",
         variable_name=REPORTING_PERIOD_YEARS_CODE,
         none_cell=True,
         omit_unclassified=True,
     )
     dimension2 = aa.Dimension(
         id="Reporting Airport",
         type="Selector",
         variable_name=REPORTING_AIRPORT_CODE,
         none_cell=True,
         omit_unclassified=True,
     )
     dimensions = [dimension, dimension2]
     measure = aa.Measure(id="Routes1",
                          resolve_table_name="Flight Route",
                          function="Count")
     cube = aa.Cube(
         base_query=query,
         resolve_table_name="Flight Route",
         storage="Full",
         dimensions=dimensions,
         measures=[measure],
     )
     cube_api = aa.CubesApi(session.api_client)
     cube_calculation = cube_api.cubes_calculate_cube_synchronously(
         session.data_view, session.system, cube=cube)
     test_row = cube_calculation.measure_results[0].rows[7]
     self.assertEqual(
         test_row,
         "0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t179\t1633\t1765\t1896\t5473",
     )
예제 #29
0
def create_measure():
    """ Return count measure on Flight Route table. """
    return aa.Measure(id="Count",
                      resolve_table_name="Flight Route",
                      function="Count")