From faebd0ff1ce0190c18a28643a4105b86d235600a Mon Sep 17 00:00:00 2001
From: Jiao Lin <linjiao@ornl.gov>
Date: Thu, 13 Dec 2018 14:41:39 -0500
Subject: [PATCH] Refs #24330. simplified implementation per Andrei's request

---
 scripts/Inelastic/Direct/detpackmap.py        | 46 +++----------------
 .../test/InelasticDirect_detpackmap_Test.py   | 20 ++++++++
 2 files changed, 27 insertions(+), 39 deletions(-)
 create mode 100644 scripts/test/InelasticDirect_detpackmap_Test.py

diff --git a/scripts/Inelastic/Direct/detpackmap.py b/scripts/Inelastic/Direct/detpackmap.py
index b12116a9482..8734ff16ba9 100644
--- a/scripts/Inelastic/Direct/detpackmap.py
+++ b/scripts/Inelastic/Direct/detpackmap.py
@@ -1,40 +1,8 @@
-
+sequoia_packs = ['B%s' % i for i in range(1, 37+1)] \
+                + ['C%s' % i for i in range(1, 24+1)] \
+                + ['C25T', 'C26T', 'C25B', 'C26B'] \
+                + ['C%s' % i for i in range(27, 37+1)] \
+                + ['D%s' % i for i in range(1, 37+1)]
+sequoia_start_index = 38
 def sequoia(name):
-    rows = 'BCD'
-    startindexes = dict(B=37, C=74, D=113)
-    name = name.strip().upper()
-    row = name[0]
-    assert row in rows, "Invalid pack name %r" % name
-    start = startindexes[row]
-    col = int(name[1:3])
-    # C25T, ...
-    extra = 0
-    if row == 'C':
-        if len(name) == 4:
-            assert name[-1] in 'TB', "Invalid pack name %r" % name
-            if name[3] == 'B':
-                extra = 2
-        if col>26:
-            extra = 2
-    return start + col + extra
-
-
-import unittest # noqa: E402
-
-
-class TestCase(unittest.TestCase):
-    def test_sequoia(self):
-        assert sequoia('B1') == 38
-        assert sequoia('B37') == 74
-        assert sequoia('C1') == 75
-        assert sequoia('C25T') == 99
-        assert sequoia('C26T') == 100
-        assert sequoia('C25B') == 101
-        assert sequoia('C26B') == 102
-        assert sequoia('D1') == 114
-        assert sequoia('D37') == 150
-        return
-
-
-if __name__ == '__main__':
-    unittest.main()
+    return sequoia_start_index + sequoia_packs.index(name)
diff --git a/scripts/test/InelasticDirect_detpackmap_Test.py b/scripts/test/InelasticDirect_detpackmap_Test.py
new file mode 100644
index 00000000000..1eaa3d8c851
--- /dev/null
+++ b/scripts/test/InelasticDirect_detpackmap_Test.py
@@ -0,0 +1,20 @@
+from Direct.detpackmap import sequoia
+import unittest
+
+
+class TestCase(unittest.TestCase):
+    def test_sequoia(self):
+        assert sequoia('B1') == 38
+        assert sequoia('B37') == 74
+        assert sequoia('C1') == 75
+        assert sequoia('C25T') == 99
+        assert sequoia('C26T') == 100
+        assert sequoia('C25B') == 101
+        assert sequoia('C26B') == 102
+        assert sequoia('D1') == 114
+        assert sequoia('D37') == 150
+        return
+
+
+if __name__ == '__main__':
+    unittest.main()
-- 
GitLab