示例#1
0
    def load(self):
        """
        loads data from the repository

        Returns
        -------
        list of CountrySummary
        """
        con = sqlite3.connect(self.filename)
        cursor = con.cursor()

        query = f"SELECT * from {self.table_name}"

        country_summaries = []

        for row in cursor.execute(query):
            country_summary = CountrySummary()
            country_summary.name = row[0]
            country_summary.new_confirmed = int(row[1])
            country_summary.total_confirmed = int(row[2])
            country_summary.new_deaths = int(row[3])
            country_summary.total_deaths = int(row[4])
            country_summary.new_recovered = int(row[5])
            country_summary.total_recovered = int(row[6])
            country_summaries += (country_summary, )

        return country_summaries
示例#2
0
    def test_two_country_summaries_can_be_compared_for_equality(self):
        summary1 = CountrySummary()
        summary1.name = "test"
        summary1.new_deaths = 100
        summary1.total_deaths = 1000
        summary1.new_confirmed = 200
        summary1.total_confirmed = 2000
        summary1.new_recovered = 300
        summary1.total_recovered = 3000

        summary2 = CountrySummary()
        summary2.name = "test"
        summary2.new_deaths = 100
        summary2.total_deaths = 1000
        summary2.new_confirmed = 200
        summary2.total_confirmed = 2000
        summary2.new_recovered = 300
        summary2.total_recovered = 3000

        self.assertEqual(summary1, summary2)
    def test_it_can_call_class_by_passing_which_statistics_should_be_generated(self):
        country_summary = CountrySummary()
        country_summary.name = "Italy"
        country_summary.total_confirmed = 110
        country_summary.new_confirmed = 10
        country_summary.total_recovered = 210
        country_summary.new_recovered = 10
        country_summary.total_deaths = 410
        country_summary.new_deaths = 10

        repo = TupleCovidRepository((country_summary,))
        analyzer = RatioAnalyzer(repo)
        self.assertEqual(
            {
                "Italy": {
                    "new_confirmed_ratio": 0.1,
                    "new_recovered_ratio": 0.05,
                    "new_deaths_ratio": 0.025,
                }
            },
            analyzer(
                new_confirmed_ratio=True,
                new_recovered_ratio=True,
                new_deaths_ratio=True,
            ),
        )

        self.assertEqual(
            {"Italy": {"new_recovered_ratio": 0.05, "new_deaths_ratio": 0.025,}},
            analyzer(
                new_confirmed_ratio=False,
                new_recovered_ratio=True,
                new_deaths_ratio=True,
            ),
        )

        self.assertEqual(
            {"Italy": {"new_recovered_ratio": 0.05,}},
            analyzer(new_recovered_ratio=True, new_deaths_ratio=False),
        )
示例#4
0
    def test_it_can_be_converted_to_flat_dict(self):
        summary = CountrySummary()
        summary.name = "test"
        summary.new_deaths = 100
        summary.total_deaths = 1000
        summary.new_confirmed = 200
        summary.total_confirmed = 2000
        summary.new_recovered = 300
        summary.total_recovered = 3000

        self.assertEqual(
            {
                "name": "test",
                "new_deaths": 100,
                "total_deaths": 1000,
                "new_confirmed": 200,
                "total_confirmed": 2000,
                "new_recovered": 300,
                "total_recovered": 3000,
            },
            summary.to_dict(),
        )
    def load(self):
        """
        loads data from the repository

        Returns
        -------
        list of CountrySummary
        """
        dummy_country_summaries = ()

        for i in range(0, 100):
            country_summary = CountrySummary()
            country_summary.name = self.__randomString(20)
            country_summary.new_confirmed = random.randint(1, 1000)
            country_summary.new_deaths = random.randint(1, 1000)
            country_summary.total_deaths = random.randint(1, 10000) + country_summary.new_deaths
            country_summary.total_confirmed = random.randint(1, 10000) + country_summary.new_confirmed
            country_summary.new_recovered = random.randint(1, 1000)
            country_summary.total_recovered = random.randint(1, 10000) + country_summary.new_recovered

            dummy_country_summaries += (country_summary,)

        return dummy_country_summaries