로드 중...
검색 중...
일치하는 항목 없음
special_values.py
이 파일의 문서로 이동하세요.
1
7
8가져오기수학
9가져오기sys
10에서게임가져오기슬롯 커뮤니티작업 공간, SV_UNDEF, SV_EPS
11
12GAMS_MODEL ="""
13스칼라
14GUndef
15GNA / NA /
16GPInf / +INF /
17GMInf / -INF /
18GEps / EPS /
19PythonUndef
20파이썬NA
21PythonPInf
22PythonMInf
23PythonEps;
24
25$onUndf
26$gdxIn %myDB%
27$load PythonUndef PythonNA PythonPInf PythonMInf PythonEps
28$gdxIn
29
30GUndef = 1/0;
31ExecError = 0;
32
33슬롯 커뮤니티(GUndef <> PythonUndef) 'PythonUndef가 예상과 다릅니다', GUndef, PythonUndef;
34슬롯 커뮤니티(GNA <> PythonNA ) 'PythonNA가 예상과 다릅니다', GNA, PythonNA;
35슬롯 커뮤니티(GPInf <> PythonPInf ) 'PythonPInf가 예상과 다릅니다.', GPInf, PythonPInf;
36슬롯 커뮤니티(GMInf <> PythonMInf ) 'PythonMInf가 예상과 다릅니다.', GMInf, PythonMInf;
37슬롯 커뮤니티(GEps <> PythonEps ) 'PythonEps가 예상과 다릅니다.', GEps, PythonEps;
38"""
39
40if__name__ =="__main__":
41sys_dir = sys.argv[1]iflen(sys.argv) > 1그밖에 없음
42work_dir = sys.argv[2]iflen(sys.argv) > 2그밖에 없음
43ws = GamsWorkspace(system_directory=sys_dir, Working_directory=work_dir)
44
45db_in = ws.add_database(in_model_name="myDB")
46db_in.add_parameter("PythonUndef", 0).add_record().value = SV_UNDEF
47db_in.add_parameter("파이썬NA", 0).add_record().value = float("난")
48db_in.add_parameter("PythonPInf", 0).add_record().value = float("inf")
49db_in.add_parameter("PythonMInf", 0).add_record().value = float("-inf")
50db_in.add_parameter("PythonEps", 0).add_record().value = SV_EPS
51
52작업 = ws.add_job_from_string(GAMS_MODEL)
53job.run(데이터베이스=db_in)
54db_out = job.out_db
55
56GUndef = db_out["GUndef"].first_record().value
57 ifGUndef != SV_UNDEF:
58 올림예외(f"GUndef가 예상과 다릅니다: GUndef")
59GNA = db_out["GNA"].first_record().value
60 if 아님math.isnan(GNA):
61 올림예외(f"예상한 GNA가 아닙니다: GNA")
62GPInf = db_out["GPInf"].first_record().value
63 ifGPInf != 부동("inf"):
64 올림예외(f"GPInf가 예상과 다릅니다: GPInf")
65GMInf = db_out["GMInf"].first_record().value
66 ifGMInf != 부동("-inf"):
67 상승예외(f"GMInf가 예상과 다릅니다: GMInf")
68GEps = db_out["GEps"].first_record().value
69 ifGEps != SV_EPS:
70 올림예외(f"GEps가 예상과 다릅니다: GEps")