Example #1
0
    def test_retrieve_for_date_range(self):

        start_time = datetime(2019, 1, 1, 0, 0, 0)
        end_time = datetime(2019, 1, 4, 23, 55, 0)

        data_access = CassandraDataAccess(
            TestCassandraDataAccess._cassandra_ip_address)
        actual_data = data_access.retrieve(start_time=start_time,
                                           end_time=end_time)

        # Temp:
        # import matplotlib.pyplot as plt
        # plt.imshow(actual_data)
        # plt.show()
        # plt.plot(actual_data)
        # plt.show()
        # import sys
        # np.set_printoptions(threshold=sys.maxsize)
        # actual_data_shape = actual_data.shape
        # print("actual_data[0]: %s" % (actual_data[0]))
        # print("actual_data[0].meas_val_f: %s" % (actual_data[0].meas_val_f))
        # print("actual_data[0].ts: %s" % (actual_data[0].ts))

        # Temps;
        # plt.imshow(expected_data)
        # plt.show()
        # plt.plot(expected_data)
        # plt.show()

        self.assertEqual(len(actual_data.T), 4)
Example #2
0
    def test_retrieve(self):

        data_access = CassandraDataAccess(
            TestCassandraDataAccess._cassandra_ip_address)
        actual_data = data_access.retrieve()

        # Temp:
        # import matplotlib.pyplot as plt
        # plt.imshow(actual_data)
        # plt.show()
        # plt.plot(actual_data)
        # plt.show()
        # import sys
        # np.set_printoptions(threshold=sys.maxsize)
        # actual_data_shape = actual_data.shape
        # print("actual_data[0]: %s" % (actual_data[0]))
        # print("actual_data[0].meas_val_f: %s" % (actual_data[0].meas_val_f))
        # print("actual_data[0].ts: %s" % (actual_data[0].ts))

        # Temps;
        # plt.imshow(expected_data)
        # plt.show()
        # plt.plot(expected_data)
        # plt.show()

        self._assert_number_of_matching_daily_signals(
            actual_data.T, TestCassandraDataAccess._power_signals_site_1.T, 3)
        self._assert_number_of_matching_daily_signals(
            actual_data.T, TestCassandraDataAccess._power_signals_site_2.T, 3)
Example #3
0
    def test_get_sites(self):
        data_access = CassandraDataAccess(
            TestCassandraDataAccess._cassandra_ip_address)

        actual_sites = data_access.get_sites()
        expected_sites = np.array(["SLACA0000001", "SLACA0000002"])

        np.testing.assert_array_equal(actual_sites, expected_sites)
Example #4
0
    def test_find_sites(self):
        data_access = CassandraDataAccess(
            TestCassandraDataAccess._cassandra_ip_address)

        actual_sites = data_access.find_sites("SLACA0000001")
        expected_sites = np.array(["SLACA0000001"])
        np.testing.assert_array_equal(actual_sites, expected_sites)

        actual_nonexisting_sites = data_access.find_sites("SLACA9999999")
        expected_nonexisting_sites = np.array([])
        np.testing.assert_array_equal(actual_nonexisting_sites,
                                      expected_nonexisting_sites)
Example #5
0
    def test_construct_random_choice_list(self):

        sites = np.array(["SLACA0000001", "SLACA0000002"])
        total_number_of_elements = 6

        data_access = CassandraDataAccess(
            TestCassandraDataAccess._cassandra_ip_address)
        actual_list = data_access._construct_random_choice_list(
            sites, total_number_of_elements)

        expected_list = ["SLACA0000001"] * 3 + ["SLACA0000002"] * 3

        np.testing.assert_array_equal(actual_list, expected_list)
Example #6
0
    def test_retrieve_for_sites(self):

        sites = ["SLACA0000001"]

        data_access = CassandraDataAccess(
            TestCassandraDataAccess._cassandra_ip_address)
        actual_data = data_access.retrieve(sites=sites)

        expected_data = TestCassandraDataAccess._power_signals_site_1

        self._assert_number_of_matching_daily_signals(actual_data.T,
                                                      expected_data.T, 6)
        np.testing.assert_almost_equal(actual_data, expected_data, decimal=5)
Example #7
0
    def test_query_power_for_given_site(self):

        data_access = CassandraDataAccess(
            TestCassandraDataAccess._cassandra_ip_address)

        actual_data_1 = data_access._query_power_for_given_site("SLACA0000001")
        expected_data_1 = TestCassandraDataAccess._power_signals_site_1
        np.testing.assert_almost_equal(actual_data_1,
                                       expected_data_1,
                                       decimal=5)

        actual_data_2 = data_access._query_power_for_given_site("SLACA0000002")
        expected_data_2 = TestCassandraDataAccess._power_signals_site_2
        np.testing.assert_almost_equal(actual_data_2,
                                       expected_data_2,
                                       decimal=5)
Example #8
0
    def test_get_data_candidate(self):

        data_access = CassandraDataAccess(
            TestCassandraDataAccess._cassandra_ip_address)

        actual_data = data_access._get_data_candidate(
            ["SLACA0000001", "SLACA0000002"])
        expected_data = {
            "SLACA0000001": TestCassandraDataAccess._power_signals_site_1,
            "SLACA0000002": TestCassandraDataAccess._power_signals_site_2
        }
        np.testing.assert_array_equal(actual_data.keys(), expected_data.keys())
        np.testing.assert_almost_equal(actual_data["SLACA0000001"],
                                       expected_data["SLACA0000001"],
                                       decimal=5)
        np.testing.assert_almost_equal(actual_data["SLACA0000002"],
                                       expected_data["SLACA0000002"],
                                       decimal=5)
Example #9
0
 def _get_cassandra_data_access(self):
     if ((not hasattr(self, '_cassandra_data_access'))
             or (self._cassandra_data_access is None)):
         from solar_data_pipeline.database.cassandra import\
             CassandraDataAccess
         # This will be read from configuration file:
         cassandra_ip_address = '127.0.0.1'
         self._cassandra_data_access = CassandraDataAccess(
             cassandra_ip_address)
     return self._cassandra_data_access
Example #10
0
    def test_query_power_for_given_site_with_time_range(self):

        start_time = datetime(2019, 1, 1, 0, 0, 0)
        end_time = datetime(2019, 1, 1, 23, 55, 0)

        data_access = CassandraDataAccess(
            TestCassandraDataAccess._cassandra_ip_address)

        actual_data_1 = data_access._query_power_for_given_site(
            "SLACA0000001", start_time=start_time, end_time=end_time)
        expected_data_1 = TestCassandraDataAccess._power_signals_site_1[:, :1]
        np.testing.assert_almost_equal(actual_data_1,
                                       expected_data_1,
                                       decimal=5)

        actual_data_2 = data_access._query_power_for_given_site(
            "SLACA0000002", start_time=start_time, end_time=end_time)
        expected_data_2 = TestCassandraDataAccess._power_signals_site_2[:, :1]
        np.testing.assert_almost_equal(actual_data_2,
                                       expected_data_2,
                                       decimal=5)
Example #11
0
    def test_get_site_lists_for_retrieve(self):

        expected_sites = ["SLACA0000001", "SLACA0000002"]

        sites_1 = ["SLACA0000001", "SLACA0000002"]
        data_access = CassandraDataAccess(
            TestCassandraDataAccess._cassandra_ip_address)
        actual_sites_1 = data_access._get_site_lists_for_retrieve(
            sites=sites_1)
        self.assertEqual(actual_sites_1, expected_sites)

        sites_2 = np.array(["SLACA0000001", "SLACA0000002"])
        data_access = CassandraDataAccess(
            TestCassandraDataAccess._cassandra_ip_address)
        actual_sites_2 = data_access._get_site_lists_for_retrieve(
            sites=sites_1)
        self.assertEqual(actual_sites_2, expected_sites)