Merged in feature/adding_contract_admenment_num_pc (pull request #870)

Feature/adding contract admenment num pc

* Updated contract amendment

* Format code with Black

* updated to have letters

* format fixes

* Adjusted unit testing

* Merge remote-tracking branch 'origin/DEV' into feature/adding_contract_admenment_num_pc

* apply formatting

* format fixes

* Merge remote-tracking branch 'origin/DEV' into feature/adding_contract_admenment_num_pc

* test conflicts solved

* Format code with Black

* format fixes

* reverted the changes for prompt templates

* test_case reverted
* Sorted effective date for ranking

* format fix for lint

* Merged DEV into feature/adding_contract_admenment_num_pc

* format

* Merged DEV into feature/adding_contract_admenment_num_pc

* Merged DEV into feature/adding_contract_admenment_num_pc


Approved-by: Siddhant Medar
This commit is contained in:
Rahul Ailaboina
2026-02-06 17:51:21 +00:00
committed by Siddhant Medar
parent 0c3546cea9
commit dd314f2263
2 changed files with 70 additions and 2 deletions
+3 -2
View File
@@ -2109,8 +2109,9 @@ class ParentChildEngine:
orphan_mask = (~pm) & (~cm)
if orphan_mask.any():
tmp = df.loc[orphan_mask, ["input_row_order"]].copy()
tmp = tmp.sort_values(["input_row_order"], kind="mergesort")
tmp = df.loc[orphan_mask, ["eff_date", "input_row_order"]].copy()
tmp["eff_sort"] = tmp["eff_date"].fillna(pd.Timestamp.max)
tmp = tmp.sort_values(["eff_sort", "input_row_order"], kind="mergesort")
seq = pd.Series(np.arange(1, len(tmp) + 1, dtype=np.int32), index=tmp.index)
if "AARETE_DERIVED_AMENDMENT_NUM" in df.columns:
amendment_str = df.loc[tmp.index, "AARETE_DERIVED_AMENDMENT_NUM"].apply(
+67
View File
@@ -1006,5 +1006,72 @@ class TestComputeRanksWithAmendmentNum(unittest.TestCase):
self.assertEqual(result.at[3, "orphan_rank_dest"], "0.2.1") # B=2
class TestNormalizeAmendmentVal(unittest.TestCase):
"""Unit tests for ParentChildEngine._normalize_amendment_val."""
def test_numeric_int(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val(3), "3")
def test_numeric_float(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val(3.0), "3")
def test_numeric_string(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val("5"), "5")
def test_numeric_float_string(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val("7.0"), "7")
def test_letter_A_upper(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val("A"), "1")
def test_letter_B_upper(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val("B"), "2")
def test_letter_C_upper(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val("C"), "3")
def test_letter_F_upper(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val("F"), "6")
def test_letter_Z_upper(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val("Z"), "26")
def test_letter_a_lower(self):
"""Lowercase letters are also converted (a=1)."""
self.assertEqual(ParentChildEngine._normalize_amendment_val("a"), "1")
def test_letter_b_lower(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val("b"), "2")
def test_letter_f_lower(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val("f"), "6")
def test_nan_returns_zero(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val(np.nan), "0")
def test_none_returns_zero(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val(None), "0")
def test_empty_string_returns_zero(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val(""), "0")
def test_whitespace_only_returns_zero(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val(" "), "0")
def test_multi_char_string_returned_as_is(self):
"""Multi-character non-numeric strings are returned as-is."""
self.assertEqual(ParentChildEngine._normalize_amendment_val("AB"), "AB")
def test_letter_with_whitespace(self):
"""Letter with surrounding whitespace is still converted."""
self.assertEqual(ParentChildEngine._normalize_amendment_val(" A "), "1")
def test_zero_value(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val(0), "0")
def test_negative_number(self):
self.assertEqual(ParentChildEngine._normalize_amendment_val(-1), "-1")
if __name__ == "__main__":
unittest.main()