From a70869146bfbacba92e671c40f2fb1b7baf8d600 Mon Sep 17 00:00:00 2001 From: Gene Dan Date: Fri, 5 Jun 2026 14:08:53 -0500 Subject: [PATCH] FIX: Make quarterly.csv development dates ISO 8601-compatible. --- chainladder/core/tests/test_triangle.py | 20 + chainladder/core/triangle.py | 2 +- chainladder/utils/data/quarterly.csv | 552 ++++++++++++------------ 3 files changed, 297 insertions(+), 277 deletions(-) diff --git a/chainladder/core/tests/test_triangle.py b/chainladder/core/tests/test_triangle.py index d5b0aab9..504f341f 100644 --- a/chainladder/core/tests/test_triangle.py +++ b/chainladder/core/tests/test_triangle.py @@ -1061,3 +1061,23 @@ def test_xs(clrd): assert clrd.xs('comauto',level=1).index.equals(clrd.xs('comauto',level='LOB').index) +def test_to_datetime_uninferrable_format_raises() -> None: + """ + Initialize a triangle with incorrect date format on the origin axis. Should raise a ValueError. + + Returns + ------- + None + + """ + with pytest.raises(ValueError, match="Unable to infer datetime"): + cl.Triangle( + data={ + 'origin': ['1995/Q1', '1996/Q1'], + 'development': ['1995Q1', '1996Q1'], + 'value': [1.0, 2.0]}, + origin='origin', + development='development', + columns='value', + cumulative=True + ) \ No newline at end of file diff --git a/chainladder/core/triangle.py b/chainladder/core/triangle.py index 4658f02b..eed90ffb 100644 --- a/chainladder/core/triangle.py +++ b/chainladder/core/triangle.py @@ -34,7 +34,7 @@ class Triangle(TriangleBase): Parameters ---------- - data: DataFrame or DataFrameXchg, or dict + data: DataFrame | DataFrameXchg | dict A single dataframe that contains columns representing all other arguments to the Triangle constructor. One may supply a DataFrame-like object (referred to as DataFrameXchg) supporting the __dataframe__ diff --git a/chainladder/utils/data/quarterly.csv b/chainladder/utils/data/quarterly.csv index 416dfb4d..abf62531 100644 --- a/chainladder/utils/data/quarterly.csv +++ b/chainladder/utils/data/quarterly.csv @@ -1,277 +1,277 @@ development,origin,incurred,paid -1995Q1,1995,44.0,3.0 -1996Q1,1996,42.0,1.0 -1997Q1,1997,17.0,1.0 -1998Q1,1998,10.0,1.0 -1999Q1,1999,13.0,1.0 -2000Q1,2000,2.0,1.0 -2001Q1,2001,4.0,1.0 -2002Q1,2002,2.0,1.0 -2003Q1,2003,3.0,1.0 -2004Q1,2004,4.0,4.0 -2005Q1,2005,21.0,1.0 -2006Q1,2006,13.0,1.0 -1995Q2,1995,96.0,24.0 -1996Q2,1996,136.0,16.0 -1997Q2,1997,43.0,17.0 -1998Q2,1998,43.0,11.0 -1999Q2,1999,41.0,14.0 -2000Q2,2000,29.0,6.0 -2001Q2,2001,25.0,7.0 -2002Q2,2002,34.0,10.0 -2003Q2,2003,19.0,9.0 -2004Q2,2004,38.0,16.0 -2005Q2,2005,79.0,7.0 -1995Q3,1995,194.0,65.0 -1996Q3,1996,202.0,54.0 -1997Q3,1997,135.0,55.0 -1998Q3,1998,107.0,40.0 -1999Q3,1999,109.0,47.0 -2000Q3,2000,88.0,28.0 -2001Q3,2001,151.0,37.0 -2002Q3,2002,115.0,45.0 -2003Q3,2003,90.0,31.0 -2004Q3,2004,138.0,49.0 -2005Q3,2005,115.0,36.0 -1995Q4,1995,420.0,141.0 -1996Q4,1996,365.0,135.0 -1997Q4,1997,380.0,166.0 -1998Q4,1998,238.0,93.0 -1999Q4,1999,306.0,113.0 -2000Q4,2000,254.0,100.0 -2001Q4,2001,333.0,128.0 -2002Q4,2002,290.0,110.0 -2003Q4,2003,692.0,94.0 -2004Q4,2004,371.0,170.0 -2005Q4,2005,299.0,97.0 -1996Q1,1995,621.0,273.0 -1997Q1,1996,541.0,260.0 -1998Q1,1997,530.0,296.0 -1999Q1,1998,393.0,185.0 -2000Q1,1999,481.0,225.0 -2001Q1,2000,380.0,194.0 -2002Q1,2001,777.0,271.0 -2003Q1,2002,472.0,236.0 -2004Q1,2003,597.0,192.0 -2005Q1,2004,583.0,289.0 -2006Q1,2005,422.0,183.0 -1996Q2,1995,715.0,418.0 -1997Q2,1996,651.0,398.0 -1998Q2,1997,714.0,442.0 -1999Q2,1998,574.0,343.0 -2000Q2,1999,657.0,379.0 -2001Q2,2000,501.0,297.0 -2002Q2,2001,663.0,427.0 -2003Q2,2002,809.0,442.0 -2004Q2,2003,929.0,299.0 -2005Q2,2004,756.0,442.0 -1996Q3,1995,748.0,550.0 -1997Q3,1996,817.0,594.0 -1998Q3,1997,813.0,587.0 -1999Q3,1998,732.0,474.0 -2000Q3,1999,821.0,570.0 -2001Q3,2000,615.0,415.0 -2002Q3,2001,856.0,579.0 -2003Q3,2002,1054.0,668.0 -2004Q3,2003,883.0,408.0 -2005Q3,2004,902.0,601.0 -1996Q4,1995,906.0,692.0 -1997Q4,1996,988.0,758.0 -1998Q4,1997,945.0,701.0 -1999Q4,1998,894.0,643.0 -2000Q4,1999,1007.0,715.0 -2001Q4,2000,735.0,521.0 -2002Q4,2001,988.0,722.0 -2003Q4,2002,1543.0,890.0 -2004Q4,2003,1117.0,792.0 -2005Q4,2004,1111.0,793.0 -1997Q1,1995,950.0,814.0 -1998Q1,1996,1052.0,871.0 -1999Q1,1997,966.0,811.0 -2000Q1,1998,935.0,744.0 -2001Q1,1999,1021.0,832.0 -2002Q1,2000,788.0,616.0 -2003Q1,2001,1063.0,838.0 -2004Q1,2002,1617.0,1078.0 -2005Q1,2003,1092.0,873.0 -2006Q1,2004,1212.0,948.0 -1997Q2,1995,973.0,876.0 -1998Q2,1996,1122.0,964.0 -1999Q2,1997,1008.0,891.0 -2000Q2,1998,967.0,831.0 -2001Q2,1999,1141.0,955.0 -2002Q2,2000,842.0,697.0 -2003Q2,2001,1167.0,937.0 -2004Q2,2002,1505.0,1198.0 -2005Q2,2003,1176.0,949.0 -1997Q3,1995,997.0,916.0 -1998Q3,1996,1139.0,1017.0 -1999Q3,1997,1028.0,940.0 -2000Q3,1998,1019.0,902.0 -2001Q3,1999,1171.0,1048.0 -2002Q3,2000,912.0,758.0 -2003Q3,2001,1199.0,1020.0 -2004Q3,2002,1599.0,1325.0 -2005Q3,2003,1198.0,1019.0 -1997Q4,1995,1030.0,959.0 -1998Q4,1996,1173.0,1052.0 -1999Q4,1997,1069.0,976.0 -2000Q4,1998,1037.0,951.0 -2001Q4,1999,1249.0,1118.0 -2002Q4,2000,915.0,810.0 -2003Q4,2001,1242.0,1091.0 -2004Q4,2002,1695.0,1412.0 -2005Q4,2003,1230.0,1064.0 -1998Q1,1995,1020.0,968.0 -1999Q1,1996,1169.0,1089.0 -2000Q1,1997,1064.0,1000.0 -2001Q1,1998,1062.0,989.0 -2002Q1,1999,1267.0,1183.0 -2003Q1,2000,953.0,859.0 -2004Q1,2001,1307.0,1160.0 -2005Q1,2002,1818.0,1524.0 -2006Q1,2003,1221.0,1100.0 -1998Q2,1995,1035.0,1002.0 -1999Q2,1996,1174.0,1108.0 -2000Q2,1997,1073.0,1022.0 -2001Q2,1998,1079.0,1022.0 -2002Q2,1999,1289.0,1214.0 -2003Q2,2000,963.0,892.0 -2004Q2,2001,1305.0,1207.0 -2005Q2,2002,1716.0,1615.0 -1998Q3,1995,1055.0,1020.0 -1999Q3,1996,1205.0,1141.0 -2000Q3,1997,1086.0,1043.0 -2001Q3,1998,1099.0,1053.0 -2002Q3,1999,1358.0,1293.0 -2003Q3,2000,977.0,916.0 -2004Q3,2001,1348.0,1239.0 -2005Q3,2002,1819.0,1653.0 -1998Q4,1995,1072.0,1031.0 -1999Q4,1996,1225.0,1175.0 -2000Q4,1997,1112.0,1059.0 -2001Q4,1998,1138.0,1074.0 -2002Q4,1999,1400.0,1327.0 -2003Q4,2000,990.0,935.0 -2004Q4,2001,1362.0,1305.0 -2005Q4,2002,1839.0,1720.0 -1999Q1,1995,1070.0,1041.0 -2000Q1,1996,1238.0,1194.0 -2001Q1,1997,1100.0,1068.0 -2002Q1,1998,1126.0,1093.0 -2003Q1,1999,1400.0,1363.0 -2004Q1,2000,1001.0,950.0 -2005Q1,2001,1362.0,1323.0 -2006Q1,2002,1820.0,1760.0 -1999Q2,1995,1051.0,1035.0 -2000Q2,1996,1228.0,1208.0 -2001Q2,1997,1111.0,1080.0 -2002Q2,1998,1163.0,1132.0 -2003Q2,1999,1409.0,1383.0 -2004Q2,2000,1005.0,967.0 -2005Q2,2001,1376.0,1347.0 -1999Q3,1995,1062.0,1045.0 -2000Q3,1996,1239.0,1217.0 -2001Q3,1997,1115.0,1091.0 -2002Q3,1998,1198.0,1145.0 -2003Q3,1999,1437.0,1396.0 -2004Q3,2000,1013.0,982.0 -2005Q3,2001,1376.0,1365.0 -1999Q4,1995,1070.0,1054.0 -2000Q4,1996,1254.0,1226.0 -2001Q4,1997,1128.0,1099.0 -2002Q4,1998,1207.0,1162.0 -2003Q4,1999,1468.0,1438.0 -2004Q4,2000,1029.0,1004.0 -2005Q4,2001,1383.0,1375.0 -2000Q1,1995,1069.0,1060.0 -2001Q1,1996,1249.0,1231.0 -2002Q1,1997,1128.0,1104.0 -2003Q1,1998,1209.0,1177.0 -2004Q1,1999,1476.0,1457.0 -2005Q1,2000,1030.0,1013.0 -2006Q1,2001,1411.0,1387.0 -2000Q2,1995,1076.0,1068.0 -2001Q2,1996,1262.0,1243.0 -2002Q2,1997,1142.0,1130.0 -2003Q2,1998,1215.0,1192.0 -2004Q2,1999,1488.0,1474.0 -2005Q2,2000,1056.0,1028.0 -2000Q3,1995,1081.0,1075.0 -2001Q3,1996,1264.0,1249.0 -2002Q3,1997,1170.0,1135.0 -2003Q3,1998,1216.0,1197.0 -2004Q3,1999,1524.0,1504.0 -2005Q3,2000,1056.0,1036.0 -2000Q4,1995,1088.0,1079.0 -2001Q4,1996,1267.0,1252.0 -2002Q4,1997,1159.0,1138.0 -2003Q4,1998,1240.0,1213.0 -2004Q4,1999,1550.0,1521.0 -2005Q4,2000,1066.0,1046.0 -2001Q1,1995,1089.0,1081.0 -2002Q1,1996,1266.0,1253.0 -2003Q1,1997,1155.0,1141.0 -2004Q1,1998,1243.0,1225.0 -2005Q1,1999,1550.0,1532.0 -2006Q1,2000,1066.0,1054.0 -2001Q2,1995,1091.0,1084.0 -2002Q2,1996,1263.0,1256.0 -2003Q2,1997,1167.0,1147.0 -2004Q2,1998,1259.0,1237.0 -2005Q2,1999,1561.0,1547.0 -2001Q3,1995,1090.0,1086.0 -2002Q3,1996,1278.0,1258.0 -2003Q3,1997,1177.0,1163.0 -2004Q3,1998,1281.0,1265.0 -2005Q3,1999,1566.0,1559.0 -2001Q4,1995,1094.0,1089.0 -2002Q4,1996,1273.0,1261.0 -2003Q4,1997,1194.0,1184.0 -2004Q4,1998,1284.0,1274.0 -2005Q4,1999,1585.0,1565.0 -2002Q1,1995,1094.0,1091.0 -2003Q1,1996,1269.0,1266.0 -2004Q1,1997,1196.0,1185.0 -2005Q1,1998,1286.0,1275.0 -2006Q1,1999,1583.0,1573.0 -2002Q2,1995,1095.0,1094.0 -2003Q2,1996,1279.0,1267.0 -2004Q2,1997,1198.0,1186.0 -2005Q2,1998,1289.0,1278.0 -2002Q3,1995,1098.0,1095.0 -2003Q3,1996,1281.0,1268.0 -2004Q3,1997,1197.0,1189.0 -2005Q3,1998,1292.0,1286.0 -2002Q4,1995,1096.0,1096.0 -2003Q4,1996,1299.0,1288.0 -2004Q4,1997,1198.0,1192.0 -2005Q4,1998,1297.0,1288.0 -2003Q1,1995,1097.0,1097.0 -2004Q1,1996,1296.0,1288.0 -2005Q1,1997,1201.0,1194.0 -2006Q1,1998,1298.0,1293.0 -2003Q2,1995,1097.0,1098.0 -2004Q2,1996,1302.0,1289.0 -2005Q2,1997,1201.0,1195.0 -2003Q3,1995,1101.0,1098.0 -2004Q3,1996,1303.0,1291.0 -2005Q3,1997,1200.0,1197.0 -2003Q4,1995,1098.0,1099.0 -2004Q4,1996,1300.0,1296.0 -2005Q4,1997,1203.0,1197.0 -2004Q1,1995,1099.0,1099.0 -2005Q1,1996,1300.0,1296.0 -2006Q1,1997,1200.0,1198.0 -2004Q2,1995,1103.0,1100.0 -2005Q2,1996,1302.0,1297.0 -2004Q3,1995,1100.0,1098.0 -2005Q3,1996,1300.0,1298.0 -2004Q4,1995,1098.0,1098.0 -2005Q4,1996,1303.0,1298.0 -2005Q1,1995,1100.0,1098.0 -2006Q1,1996,1300.0,1298.0 -2005Q2,1995,1100.0,1099.0 -2005Q3,1995,1098.0,1099.0 -2005Q4,1995,1101.0,1100.0 -2006Q1,1995,1100.0,1100.0 +1995-01,1995,44,3 +1996-01,1996,42,1 +1997-01,1997,17,1 +1998-01,1998,10,1 +1999-01,1999,13,1 +2000-01,2000,2,1 +2001-01,2001,4,1 +2002-01,2002,2,1 +2003-01,2003,3,1 +2004-01,2004,4,4 +2005-01,2005,21,1 +2006-01,2006,13,1 +1995-04,1995,96,24 +1996-04,1996,136,16 +1997-04,1997,43,17 +1998-04,1998,43,11 +1999-04,1999,41,14 +2000-04,2000,29,6 +2001-04,2001,25,7 +2002-04,2002,34,10 +2003-04,2003,19,9 +2004-04,2004,38,16 +2005-04,2005,79,7 +1995-07,1995,194,65 +1996-07,1996,202,54 +1997-07,1997,135,55 +1998-07,1998,107,40 +1999-07,1999,109,47 +2000-07,2000,88,28 +2001-07,2001,151,37 +2002-07,2002,115,45 +2003-07,2003,90,31 +2004-07,2004,138,49 +2005-07,2005,115,36 +1995-10,1995,420,141 +1996-10,1996,365,135 +1997-10,1997,380,166 +1998-10,1998,238,93 +1999-10,1999,306,113 +2000-10,2000,254,100 +2001-10,2001,333,128 +2002-10,2002,290,110 +2003-10,2003,692,94 +2004-10,2004,371,170 +2005-10,2005,299,97 +1996-01,1995,621,273 +1997-01,1996,541,260 +1998-01,1997,530,296 +1999-01,1998,393,185 +2000-01,1999,481,225 +2001-01,2000,380,194 +2002-01,2001,777,271 +2003-01,2002,472,236 +2004-01,2003,597,192 +2005-01,2004,583,289 +2006-01,2005,422,183 +1996-04,1995,715,418 +1997-04,1996,651,398 +1998-04,1997,714,442 +1999-04,1998,574,343 +2000-04,1999,657,379 +2001-04,2000,501,297 +2002-04,2001,663,427 +2003-04,2002,809,442 +2004-04,2003,929,299 +2005-04,2004,756,442 +1996-07,1995,748,550 +1997-07,1996,817,594 +1998-07,1997,813,587 +1999-07,1998,732,474 +2000-07,1999,821,570 +2001-07,2000,615,415 +2002-07,2001,856,579 +2003-07,2002,1054,668 +2004-07,2003,883,408 +2005-07,2004,902,601 +1996-10,1995,906,692 +1997-10,1996,988,758 +1998-10,1997,945,701 +1999-10,1998,894,643 +2000-10,1999,1007,715 +2001-10,2000,735,521 +2002-10,2001,988,722 +2003-10,2002,1543,890 +2004-10,2003,1117,792 +2005-10,2004,1111,793 +1997-01,1995,950,814 +1998-01,1996,1052,871 +1999-01,1997,966,811 +2000-01,1998,935,744 +2001-01,1999,1021,832 +2002-01,2000,788,616 +2003-01,2001,1063,838 +2004-01,2002,1617,1078 +2005-01,2003,1092,873 +2006-01,2004,1212,948 +1997-04,1995,973,876 +1998-04,1996,1122,964 +1999-04,1997,1008,891 +2000-04,1998,967,831 +2001-04,1999,1141,955 +2002-04,2000,842,697 +2003-04,2001,1167,937 +2004-04,2002,1505,1198 +2005-04,2003,1176,949 +1997-07,1995,997,916 +1998-07,1996,1139,1017 +1999-07,1997,1028,940 +2000-07,1998,1019,902 +2001-07,1999,1171,1048 +2002-07,2000,912,758 +2003-07,2001,1199,1020 +2004-07,2002,1599,1325 +2005-07,2003,1198,1019 +1997-10,1995,1030,959 +1998-10,1996,1173,1052 +1999-10,1997,1069,976 +2000-10,1998,1037,951 +2001-10,1999,1249,1118 +2002-10,2000,915,810 +2003-10,2001,1242,1091 +2004-10,2002,1695,1412 +2005-10,2003,1230,1064 +1998-01,1995,1020,968 +1999-01,1996,1169,1089 +2000-01,1997,1064,1000 +2001-01,1998,1062,989 +2002-01,1999,1267,1183 +2003-01,2000,953,859 +2004-01,2001,1307,1160 +2005-01,2002,1818,1524 +2006-01,2003,1221,1100 +1998-04,1995,1035,1002 +1999-04,1996,1174,1108 +2000-04,1997,1073,1022 +2001-04,1998,1079,1022 +2002-04,1999,1289,1214 +2003-04,2000,963,892 +2004-04,2001,1305,1207 +2005-04,2002,1716,1615 +1998-07,1995,1055,1020 +1999-07,1996,1205,1141 +2000-07,1997,1086,1043 +2001-07,1998,1099,1053 +2002-07,1999,1358,1293 +2003-07,2000,977,916 +2004-07,2001,1348,1239 +2005-07,2002,1819,1653 +1998-10,1995,1072,1031 +1999-10,1996,1225,1175 +2000-10,1997,1112,1059 +2001-10,1998,1138,1074 +2002-10,1999,1400,1327 +2003-10,2000,990,935 +2004-10,2001,1362,1305 +2005-10,2002,1839,1720 +1999-01,1995,1070,1041 +2000-01,1996,1238,1194 +2001-01,1997,1100,1068 +2002-01,1998,1126,1093 +2003-01,1999,1400,1363 +2004-01,2000,1001,950 +2005-01,2001,1362,1323 +2006-01,2002,1820,1760 +1999-04,1995,1051,1035 +2000-04,1996,1228,1208 +2001-04,1997,1111,1080 +2002-04,1998,1163,1132 +2003-04,1999,1409,1383 +2004-04,2000,1005,967 +2005-04,2001,1376,1347 +1999-07,1995,1062,1045 +2000-07,1996,1239,1217 +2001-07,1997,1115,1091 +2002-07,1998,1198,1145 +2003-07,1999,1437,1396 +2004-07,2000,1013,982 +2005-07,2001,1376,1365 +1999-10,1995,1070,1054 +2000-10,1996,1254,1226 +2001-10,1997,1128,1099 +2002-10,1998,1207,1162 +2003-10,1999,1468,1438 +2004-10,2000,1029,1004 +2005-10,2001,1383,1375 +2000-01,1995,1069,1060 +2001-01,1996,1249,1231 +2002-01,1997,1128,1104 +2003-01,1998,1209,1177 +2004-01,1999,1476,1457 +2005-01,2000,1030,1013 +2006-01,2001,1411,1387 +2000-04,1995,1076,1068 +2001-04,1996,1262,1243 +2002-04,1997,1142,1130 +2003-04,1998,1215,1192 +2004-04,1999,1488,1474 +2005-04,2000,1056,1028 +2000-07,1995,1081,1075 +2001-07,1996,1264,1249 +2002-07,1997,1170,1135 +2003-07,1998,1216,1197 +2004-07,1999,1524,1504 +2005-07,2000,1056,1036 +2000-10,1995,1088,1079 +2001-10,1996,1267,1252 +2002-10,1997,1159,1138 +2003-10,1998,1240,1213 +2004-10,1999,1550,1521 +2005-10,2000,1066,1046 +2001-01,1995,1089,1081 +2002-01,1996,1266,1253 +2003-01,1997,1155,1141 +2004-01,1998,1243,1225 +2005-01,1999,1550,1532 +2006-01,2000,1066,1054 +2001-04,1995,1091,1084 +2002-04,1996,1263,1256 +2003-04,1997,1167,1147 +2004-04,1998,1259,1237 +2005-04,1999,1561,1547 +2001-07,1995,1090,1086 +2002-07,1996,1278,1258 +2003-07,1997,1177,1163 +2004-07,1998,1281,1265 +2005-07,1999,1566,1559 +2001-10,1995,1094,1089 +2002-10,1996,1273,1261 +2003-10,1997,1194,1184 +2004-10,1998,1284,1274 +2005-10,1999,1585,1565 +2002-01,1995,1094,1091 +2003-01,1996,1269,1266 +2004-01,1997,1196,1185 +2005-01,1998,1286,1275 +2006-01,1999,1583,1573 +2002-04,1995,1095,1094 +2003-04,1996,1279,1267 +2004-04,1997,1198,1186 +2005-04,1998,1289,1278 +2002-07,1995,1098,1095 +2003-07,1996,1281,1268 +2004-07,1997,1197,1189 +2005-07,1998,1292,1286 +2002-10,1995,1096,1096 +2003-10,1996,1299,1288 +2004-10,1997,1198,1192 +2005-10,1998,1297,1288 +2003-01,1995,1097,1097 +2004-01,1996,1296,1288 +2005-01,1997,1201,1194 +2006-01,1998,1298,1293 +2003-04,1995,1097,1098 +2004-04,1996,1302,1289 +2005-04,1997,1201,1195 +2003-07,1995,1101,1098 +2004-07,1996,1303,1291 +2005-07,1997,1200,1197 +2003-10,1995,1098,1099 +2004-10,1996,1300,1296 +2005-10,1997,1203,1197 +2004-01,1995,1099,1099 +2005-01,1996,1300,1296 +2006-01,1997,1200,1198 +2004-04,1995,1103,1100 +2005-04,1996,1302,1297 +2004-07,1995,1100,1098 +2005-07,1996,1300,1298 +2004-10,1995,1098,1098 +2005-10,1996,1303,1298 +2005-01,1995,1100,1098 +2006-01,1996,1300,1298 +2005-04,1995,1100,1099 +2005-07,1995,1098,1099 +2005-10,1995,1101,1100 +2006-01,1995,1100,1100