hchevva commited on
Commit
c004075
·
verified ·
1 Parent(s): 09d07c6

Upload test_eda_view.py

Browse files
Files changed (1) hide show
  1. tests/test_eda_view.py +62 -0
tests/test_eda_view.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import unittest
2
+
3
+ from quread.eda_view import detect_eda_format, parse_eda_text
4
+
5
+
6
+ class EDAViewParserTest(unittest.TestCase):
7
+ def test_parse_synopsys_tcl_rows(self):
8
+ text = "\n".join(
9
+ [
10
+ "# q1: tier=CRITICAL risk=0.8200 route=HIGH row=0 col=1",
11
+ "set quread_q1_risk 0.82",
12
+ "set quread_q1_tier CRITICAL",
13
+ "set quread_q1_timing_derate 1.12",
14
+ "set quread_q1_guardband_mv 41.0",
15
+ "set quread_q1_row 0",
16
+ "set quread_q1_col 1",
17
+ "",
18
+ "# q0: tier=WARNING risk=0.4500 route=MEDIUM row=0 col=0",
19
+ "set quread_q0_risk 0.45",
20
+ "set quread_q0_tier WARNING",
21
+ "set quread_q0_timing_derate 1.07",
22
+ "set quread_q0_guardband_mv 23.0",
23
+ "set quread_q0_row 0",
24
+ "set quread_q0_col 0",
25
+ ]
26
+ )
27
+ rows, meta = parse_eda_text(text, "synopsys_tcl")
28
+ self.assertEqual(meta["format"], "synopsys_tcl")
29
+ self.assertEqual(len(rows), 2)
30
+ self.assertEqual(rows[0]["qubit"], 1)
31
+ self.assertEqual(rows[0]["tier"], "CRITICAL")
32
+ self.assertEqual(rows[0]["layout_row"], 0)
33
+ self.assertEqual(rows[0]["layout_col"], 1)
34
+
35
+ def test_parse_cadence_skill_rows(self):
36
+ text = "\n".join(
37
+ [
38
+ 'qureadRiskRows = cons(list("q0" 0.200000 "OK" 1.030000 14.000 1 2 "LOW") qureadRiskRows)',
39
+ 'qureadRiskRows = cons(list("q2" 0.910000 "CRITICAL" 1.140000 55.000 2 1 "HIGH") qureadRiskRows)',
40
+ ]
41
+ )
42
+ rows, meta = parse_eda_text(text, "cadence_skill")
43
+ self.assertEqual(meta["format"], "cadence_skill")
44
+ self.assertEqual(len(rows), 2)
45
+ self.assertEqual(rows[0]["qubit"], 2)
46
+ self.assertEqual(rows[0]["route_priority"], "HIGH")
47
+ self.assertEqual(rows[0]["layout_row"], 2)
48
+ self.assertEqual(rows[0]["layout_col"], 1)
49
+
50
+ def test_auto_detect_prefers_recognized_format(self):
51
+ syn_text = "set quread_q0_risk 0.5"
52
+ self.assertEqual(detect_eda_format(syn_text), "synopsys_tcl")
53
+ rows, _meta = parse_eda_text(syn_text, "auto")
54
+ self.assertEqual(rows[0]["qubit"], 0)
55
+
56
+ def test_parse_eda_text_errors_on_unrecognized_input(self):
57
+ with self.assertRaises(ValueError):
58
+ parse_eda_text("not an eda script", "auto")
59
+
60
+
61
+ if __name__ == "__main__":
62
+ unittest.main()