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)
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)
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)
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)
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
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)
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)
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)
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)
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)
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)