def main(): """Driver for IIM solver.""" args = parse_arguments() if args.mode == "Supply": iim_io.print_header("Supply-Driven") else: iim_io.print_header("Demand-Driven") model = iim.IIM( args.filename, args.psector, args.cvalue, args.table, args.mode) sectors = model.get_sectors() delta = model.dependency() rho = model.influence() delta_overall = model.overall_dependency() rho_overall = model.overall_influence() qstar = model.inoperability() iim_io.print_perturbed_sectors(args.psector, args.cvalue) print("\nSector\t\tInoperability\tDependency\tD(overall)\t" "Influence\tI(overall)") print(90 * "-") for i in range(0, len(sectors)): print("%-8s\t%8.6f\t%8.6f\t%8.6f\t%8.6f\t%8.6f" % (sectors[i].strip(), qstar[i], delta[i], delta_overall[i], rho[i], rho_overall[i]))
def main(): args = parse_arguments() psector = [] cvalue = [] model = iim.IIM(args.filename, psector, cvalue, args.table, args.mode) aij = model.max_nth_order_interdependency(args.order) write_aij(args.filename, aij, args.order)
def test_case3(self): # Correct answer: # --------------- # For c = [0.0, 0.0, 0.12], q = [0.04, 0.02, 0.14] qans = [0.04, 0.02, 0.14] fname = os.path.join("tests", "test_case3.csv") psector = ["SectorC"] cvalue = [0.12] table = "A" mode = "Demand" model = iim.IIM(fname, psector, cvalue, table, mode) q = model.inoperability() self.assertTrue(np.allclose(q, qans, atol=0.01))
def test_case2(self): # Correct answer (Haimes & Jiang, 2001): # -------------------------------------- # For c = [0.0, 0.5, 0.0, 0.0], q = [0.70, 0.78, 1, 1] qans = [0.70, 0.78, 1.0, 1.0] fname = os.path.join("tests", "test_case2.csv") psector = ["Sector2"] cvalue = [0.5] table = "A" mode = "Demand" model = iim.IIM(fname, psector, cvalue, table, mode) q = model.inoperability() self.assertTrue(np.allclose(q, qans, atol=0.01))
def test_case5(self): # Correct answer: # --------------- # Xu et al. (2011), eq. 34. a_ans = [[0.14, 0.11, 0.20, 0.14], [0.17, 0.20, 0.10, 0.17], [0.26, 0.32, 0.26, 0.10], [0.14, 0.28, 0.14, 0.28]] fname = os.path.join("tests", "test_case4.csv") psector = ["Electric"] cvalue = [0.0] table = "IO" mode = "Supply" model = iim.IIM(fname, psector, cvalue, table, mode) amat = model.get_interdependency_matrix() self.assertTrue(np.allclose(a_ans, amat, atol=0.015))