예제 #1
0
    def test_write_all(self):
        hfo = HarFileObj.loadFromDisk(TestHarFileObj._dd + "test.har") # Must check loadFromDisk passes test to rely on results from this method
        hfo.writeToDisk("temp.har") # By default, writes all headers

        self.assertTrue(os.path.isfile("temp.har"))

        hfo = HarFileObj.loadFromDisk("temp.har")
        header_names = hfo.getHeaderArrayNames()

        test_hn = ['XXCD', 'XXCR', 'XXCP', 'XXHS', 'CHST', 'INTA', 'SIMP', 'SIM2', 'NH01', 'ARR7']

        self.assertTrue(all([x == y for (x, y) in zip(header_names, test_hn)]))

        os.remove("temp.har")
예제 #2
0
    def test_load_from_disk(self):
        hfo = HarFileObj.loadFromDisk(TestHarFileObj._dd + "test.har")
        header_names = hfo.getHeaderArrayNames()

        test_hn = ['XXCD', 'XXCR', 'XXCP', 'XXHS', 'CHST', 'INTA', 'SIMP', 'SIM2', 'NH01', 'ARR7']

        self.assertTrue(all([x == y for (x,y) in zip(header_names, test_hn)]))
예제 #3
0
    def test_get_real_headerarrays(self):
        shutil.copy2(TestHarFileObj._dd + "test.har", "test_get_real_headerarrays.har")

        hfo = HarFileObj.loadFromDisk("test_get_real_headerarrays.har")
        hn = hfo.getRealHeaderArrayNames()

        test_hn = ['NH01', 'ARR7']

        self.assertTrue(all([x == y for (x, y) in zip(hn, test_hn)]))

        os.remove("test_get_real_headerarrays.har")
예제 #4
0
    def test_overwrite_header(self):
        shutil.copy2(TestHarFileObj._dd + "test.har", "test_overwrite_header.har")

        hfo = HarFileObj.loadFromDisk("test_overwrite_header.har")  # Must check loadFromDisk passes test to rely on results from this method

        hao = hfo.getHeaderArrayObjs(["ARR7"])[0]
        hao["array"][0,0,0,0,0,0,0] = 42.0

        hfo.writeToDisk("test_overwrite_header.har")

        hfo = HarFileObj.loadFromDisk("test_overwrite_header.har")
        header_names = hfo.getHeaderArrayNames()
        # header_names = hfo["hfio"].getHeaderArrayNames()
        test_hn = ['XXCD', 'XXCR', 'XXCP', 'XXHS', 'CHST', 'INTA', 'SIMP', 'SIM2', 'NH01', 'ARR7']
        self.assertTrue(all([x == y for (x, y) in zip(header_names, test_hn)]))

        hao = hfo.getHeaderArrayObjs(["ARR7"])[0]
        self.assertTrue(np.isclose(hao["array"][0,0,0,0,0,0,0], 42.0))

        os.remove("test_overwrite_header.har")
예제 #5
0
    def test_attributes_style(self):

        hfo = HarFileObj.loadFromDisk(TestHarFileObj._dd + "test.har")

        # Test getter method
        self.assertTrue(hfo.head_arrs == hfo.getHeaderArrayObjs())

        # Test setter method
        hfo.head_arrs = hfo.getHeaderArrayObjs()
        self.assertTrue(hfo.head_arrs == hfo.getHeaderArrayObjs())

        # Test incorrect type
        with self.assertRaises(TypeError):
            hfo.head_arrs = {}

        with self.assertRaises(TypeError):
            hfo.head_arrs = ["a"]
예제 #6
0
    def test_addremove_header_array_obj(self):
        shutil.copy2(TestHarFileObj._dd + "test.har", "test_remove_header_array.har")

        hfo = HarFileObj.loadFromDisk("test_remove_header_array.har")
        hao = hfo.removeHeaderArrayObjs("INTA")

        hn = hfo.getHeaderArrayNames()
        test_hn = ['XXCD', 'XXCR', 'XXCP', 'XXHS', 'CHST', 'SIMP', 'SIM2', 'NH01', 'ARR7']

        self.assertTrue(all([x == y for (x, y) in zip(hn, test_hn)]))

        hfo.addHeaderArrayObjs(hao)

        hn = hfo.getHeaderArrayNames()
        test_hn = ['XXCD', 'XXCR', 'XXCP', 'XXHS', 'CHST', 'SIMP', 'SIM2', 'NH01', 'ARR7', 'INTA']

        self.assertTrue(all([x == y for (x, y) in zip(hn, test_hn)]))

        os.remove("test_remove_header_array.har")
예제 #7
0
 def test_get_header_array_obj(self):
     hfo = HarFileObj.loadFromDisk(
         TestHarFileObj._dd + "test.har")  # Must check loadFromDisk passes test to rely on results from this method
     hao = hfo.getHeaderArrayObjs(["ARR7"])[0]
     self.assertTrue(isinstance(hao, HeaderArrayObj))
예제 #8
0
 def test_is_valid(
         self):  # Relies on external functions operating correctly...
     hfo = HarFileObj.loadFromDisk(TestHeaderArray._dd + "test.har")
     haos = hfo.getHeaderArrayObjs()
     for hao in haos:
         self.assertTrue(hao.is_valid())
예제 #9
0
            },
            **{
                "I_681+68209+683": "I_68",
                "I_68201_68202": "I_68A"
            }
        },
        inplace=True)

    regionalData[k].reset_index(drop=True, inplace=True)

#%%
regOutput = regionalData["Output and employment by region"].copy()
regHH = regionalData["Households' transactions by region"].copy()

#%%
regBaseData = HarFileObj.loadFromDisk(harFolder + "/basedata30.har")

regInd = regBaseData.getHeaderArrayObj("IND")["array"].tolist()
regCom = regBaseData.getHeaderArrayObj("COM")["array"].tolist()
regSrc = regBaseData.getHeaderArrayObj("SRC")["array"].tolist()
regMar = regBaseData.getHeaderArrayObj("MAR")["array"].tolist()

regInd = [i.strip(' ') for i in regInd]
regCom = [c.strip(' ') for c in regCom]
regSrc = [s.strip(' ') for s in regSrc]
regMar = [m.strip(' ') for m in regMar]

#%%
# Check that industries in the aggregated basedata match with the regional data:
set(regOutput.Industry) == set(regInd)
예제 #10
0
import dataGetterFunction as dgf
import harWriterFunction as hwf
import mapperFunction as imf
import checkerFunctions as cfs

#%%
# Choose base year for data:
baseYear = 2014
# Raw data folder:
rawFolder = "rawdata"
# Folder for output HAR-files:
harFolder = "hardata"

#%%
# Read data from previous steps:
baseData = HarFileObj.loadFromDisk(harFolder + "/basedataNEW.har")

#%% [markdown]
# #### Read data entries from previous steps:

#%%
# Sets:
COM = baseData.getHeaderArrayObj("COM")["array"].tolist()
IND = baseData.getHeaderArrayObj("IND")["array"].tolist()
SRC = baseData.getHeaderArrayObj("SRC")["array"].tolist()
OCC = baseData.getHeaderArrayObj("OCC")["array"].tolist()
MAR = baseData.getHeaderArrayObj("MAR")["array"].tolist()
# HarFileObj leaves some trailing whitespaces to some entries (this may have changed in more recent versions).
# Remove them with:
COM = [c.strip(' ') for c in COM]
IND = [i.strip(' ') for i in IND]