Skip to content

Commit 7da116a

Browse files
authored
Merge pull request #4212 from AtCoder-NoviSteps/feat/aoj-source-label-format
feat: show AOJ task labels as "contest - index(AOJ)"
2 parents fe4ba2f + bb07437 commit 7da116a

6 files changed

Lines changed: 109 additions & 100 deletions

File tree

‎src/lib/contests/fixtures/contest_name_and_task_index.ts‎

Lines changed: 40 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ import {
33
getPastContestLabel,
44
getJoiContestLabel,
55
getAtCoderUniversityContestLabel,
6-
getAojContestLabel,
76
PAST_TRANSLATIONS,
8-
AOJ_COURSES,
97
} from '#lib/contests/index.js';
108

119
export type TestCaseForContestNameAndTaskIndex = {
@@ -633,6 +631,18 @@ const AOJ_COURSES_TEST_DATA = {
633631
},
634632
};
635633

634+
// Literal labels so the expected values do not depend on getAojContestLabel.
635+
const AOJ_COURSE_LABELS: Record<string, string> = {
636+
ITP1: 'プログラミング入門',
637+
ALDS1: 'アルゴリズムとデータ構造入門',
638+
ITP2: 'プログラミング応用',
639+
DPL: '組み合わせ最適化',
640+
GRL: 'グラフ',
641+
DSL: 'データ構造',
642+
CGL: '計算幾何学',
643+
NTL: '整数論',
644+
};
645+
636646
const generateAojCoursesTestCases = (
637647
contestIds: string[],
638648
taskIndices: string[],
@@ -643,7 +653,7 @@ const generateAojCoursesTestCases = (
643653
)({
644654
contestId: `${contestId}`,
645655
taskTableIndex: `${contestId}_${taskIndex}`,
646-
expected: `AOJ ${contestId}_${taskIndex}${getAojContestLabel(AOJ_COURSES, contestId)}`,
656+
expected: `${AOJ_COURSE_LABELS[contestId]} - ${contestId}_${taskIndex}(AOJ)`,
647657
});
648658

649659
return testCase;
@@ -709,7 +719,7 @@ const generateAojPckTestCases = (
709719
)({
710720
contestId: `PCK${contestId}`,
711721
taskTableIndex: taskIndex,
712-
expected: `AOJ ${taskIndex}(パソコン甲子園${contestId.replace('Prelim', ' 予選 ').replace('Final', ' 本選 ')})`,
722+
expected: `パソコン甲子園${contestId.replace('Prelim', ' 予選 ').replace('Final', ' 本選 ')} - ${taskIndex}(AOJ)`,
713723
});
714724

715725
return testCase;
@@ -801,7 +811,7 @@ const generateAojJagTestCases = (contestIds: JagContestIds, taskIndices: string[
801811
taskIndices,
802812
(contestId, taskIndex) => `AOJ, JAG${contestId} - ${taskIndex}`,
803813
(contestId, taskIndex) =>
804-
`AOJ ${taskIndex}(JAG${contestId.replace('Prelim', ' 模擬国内 ').replace('Regional', ' 模擬地区 ')})`,
814+
`JAG${contestId.replace('Prelim', ' 模擬国内 ').replace('Regional', ' 模擬地区 ')} - ${taskIndex}(AOJ)`,
805815
);
806816

807817
const generateAojJagCampTestCases = (contestIds: string[], taskIndices: string[]) =>
@@ -810,11 +820,11 @@ const generateAojJagCampTestCases = (contestIds: string[], taskIndices: string[]
810820
taskIndices,
811821
(contestId, taskIndex) => `AOJ, JAG${contestId} - ${taskIndex}`,
812822
(contestId, taskIndex) =>
813-
`AOJ ${taskIndex}(JAG${contestId
823+
`JAG${contestId
814824
.replace('Summer', ' 夏合宿 ')
815825
.replace('Winter', ' 冬合宿 ')
816826
.replace('Spring', ' 春合宿 ')
817-
.replace('-day', ' Day')})`,
827+
.replace('-day', ' Day')} - ${taskIndex}(AOJ)`,
818828
);
819829

820830
const AOJ_JAG_CAMP_TEST_DATA: Record<string, { tasks: string[] }> = {
@@ -870,7 +880,7 @@ const generateAojIcpcTestCases = (
870880
return createTestCaseForContestNameAndTaskIndex(`AOJ, ICPC${contestId} - ${taskIndex}`)({
871881
contestId: `ICPC${contestId}`,
872882
taskTableIndex: taskIndex,
873-
expected: `AOJ ${taskIndex}(ICPC${contestId.replace('Prelim', ' 国内予選 ').replace('Regional', ' アジア地区 ')})`,
883+
expected: `ICPC${contestId.replace('Prelim', ' 国内予選 ').replace('Regional', ' アジア地区 ')} - ${taskIndex}(AOJ)`,
874884
});
875885
});
876886
};
@@ -883,97 +893,97 @@ const AOJ_UNIVERSITY_TEST_DATA = [
883893
{
884894
contestId: 'AOJ-RUPC2018-in-ACPC2018-day1',
885895
taskTableIndex: '2903',
886-
expected: 'AOJ 2903(RUPC 2018 in ACPC 2018 Day1)',
896+
expected: 'RUPC 2018 in ACPC 2018 Day1 - 2903(AOJ)',
887897
},
888898
{
889899
contestId: 'AOJ-UAPC2019-in-RUPC2019-day2',
890900
taskTableIndex: '3058',
891-
expected: 'AOJ 3058(ACPC 2019 in RUPC 2019 Day2)',
901+
expected: 'ACPC 2019 in RUPC 2019 Day2 - 3058(AOJ)',
892902
},
893903
{
894904
contestId: 'AOJ-HUPC2020-in-HUPC2020-day1',
895905
taskTableIndex: '3171',
896-
expected: 'AOJ 3171(HUPC 2020 in HUPC 2020 Day1)',
906+
expected: 'HUPC 2020 in HUPC 2020 Day1 - 3171(AOJ)',
897907
},
898-
{ contestId: 'AOJ-UAPC2003', taskTableIndex: '1000', expected: 'AOJ 1000(ACPC 2003)' },
908+
{ contestId: 'AOJ-UAPC2003', taskTableIndex: '1000', expected: 'ACPC 2003 - 1000(AOJ)' },
899909
{
900910
contestId: 'AOJ-UAPC2011-summer',
901911
taskTableIndex: '1001',
902-
expected: 'AOJ 1001(ACPC 2011 Summer)',
912+
expected: 'ACPC 2011 Summer - 1001(AOJ)',
903913
},
904914
{
905915
contestId: 'AOJ-UAPC2012-day1',
906916
taskTableIndex: '1002',
907-
expected: 'AOJ 1002(ACPC 2012 Day1)',
917+
expected: 'ACPC 2012 Day1 - 1002(AOJ)',
908918
},
909919
{
910920
contestId: 'AOJ-OUPC2012-in-RUPC2012-day2',
911921
taskTableIndex: '2352',
912-
expected: 'AOJ 2352(OUPC 2012 in RUPC 2012 Day2)',
922+
expected: 'OUPC 2012 in RUPC 2012 Day2 - 2352(AOJ)',
913923
},
914924
{
915925
contestId: 'AOJ-HUPC2014-in-RUPC2014-day3',
916926
taskTableIndex: '2581',
917-
expected: 'AOJ 2581(HUPC 2014 in RUPC 2014 Day3)',
927+
expected: 'HUPC 2014 in RUPC 2014 Day3 - 2581(AOJ)',
918928
},
919929
{
920930
contestId: 'AOJ-RUPC2018-in-RUPC2018-day1',
921931
taskTableIndex: '2880',
922-
expected: 'AOJ 2880(RUPC 2018 in RUPC 2018 Day1)',
932+
expected: 'RUPC 2018 in RUPC 2018 Day1 - 2880(AOJ)',
923933
},
924934
{
925935
contestId: 'AOJ-HUPC2023-in-OUPC2023-day2',
926936
taskTableIndex: '3369',
927-
expected: 'AOJ 3369(HUPC 2023 in OUPC 2023 Day2)',
937+
expected: 'HUPC 2023 in OUPC 2023 Day2 - 3369(AOJ)',
928938
},
929939
{
930940
contestId: 'AOJ-UAPC2015-in-ACPC2015-day2',
931941
taskTableIndex: '1566',
932-
expected: 'AOJ 1566(ACPC 2015 in ACPC 2015 Day2)',
942+
expected: 'ACPC 2015 in ACPC 2015 Day2 - 1566(AOJ)',
933943
},
934944
{
935945
contestId: 'AOJ-UAPC2017-in-ACPC2017-day2',
936946
taskTableIndex: '3022',
937-
expected: 'AOJ 3022(ACPC 2017 in ACPC 2017 Day2)',
947+
expected: 'ACPC 2017 in ACPC 2017 Day2 - 3022(AOJ)',
938948
},
939949
{
940950
contestId: 'AOJ-RUPC2025-in-ACPC2025-day1',
941951
taskTableIndex: '3426',
942-
expected: 'AOJ 3426(RUPC 2025 in ACPC 2025 Day1)',
952+
expected: 'RUPC 2025 in ACPC 2025 Day1 - 3426(AOJ)',
943953
},
944954
{
945955
contestId: 'AOJ-HUPC2018-in-ACPC2018-day3',
946956
taskTableIndex: '2893',
947-
expected: 'AOJ 2893(HUPC 2018 in ACPC 2018 Day3)',
957+
expected: 'HUPC 2018 in ACPC 2018 Day3 - 2893(AOJ)',
948958
},
949959
{
950960
contestId: 'AOJ-UAPC2018-in-RUPC2018-day2',
951961
taskTableIndex: '3032',
952-
expected: 'AOJ 3032(ACPC 2018 in RUPC 2018 Day2)',
962+
expected: 'ACPC 2018 in RUPC 2018 Day2 - 3032(AOJ)',
953963
},
954964
{
955965
contestId: 'AOJ-RUPC2017-in-ACPC2017-day1',
956966
taskTableIndex: '2835',
957-
expected: 'AOJ 2835(RUPC 2017 in ACPC 2017 Day1)',
967+
expected: 'RUPC 2017 in ACPC 2017 Day1 - 2835(AOJ)',
958968
},
959969
{
960970
contestId: 'AOJ-HUPC2019-in-HUPC2019-day2',
961971
taskTableIndex: '2959',
962-
expected: 'AOJ 2959(HUPC 2019 in HUPC 2019 Day2)',
972+
expected: 'HUPC 2019 in HUPC 2019 Day2 - 2959(AOJ)',
963973
},
964-
{ contestId: 'AOJ-OUPC2020', taskTableIndex: '3215', expected: 'AOJ 3215(OUPC 2020)' },
974+
{ contestId: 'AOJ-OUPC2020', taskTableIndex: '3215', expected: 'OUPC 2020 - 3215(AOJ)' },
965975
{
966976
contestId: 'AOJ-OUPC2024-day1',
967977
taskTableIndex: '3412',
968-
expected: 'AOJ 3412(OUPC 2024 Day1)',
978+
expected: 'OUPC 2024 Day1 - 3412(AOJ)',
969979
},
970980
{
971981
contestId: 'AOJ-HUPC2020-in-HUPC2020-day3',
972982
taskTableIndex: '3183',
973-
expected: 'AOJ 3183(HUPC 2020 in HUPC 2020 Day3)',
983+
expected: 'HUPC 2020 in HUPC 2020 Day3 - 3183(AOJ)',
974984
},
975-
{ contestId: 'AOJ-UTPC2010', taskTableIndex: '2207', expected: 'AOJ 2207(UTPC 2010)' },
976-
{ contestId: 'AOJ-KUPC2011', taskTableIndex: 'I', expected: 'AOJ I(KUPC 2011)' },
985+
{ contestId: 'AOJ-UTPC2010', taskTableIndex: '2207', expected: 'UTPC 2010 - 2207(AOJ)' },
986+
{ contestId: 'AOJ-KUPC2011', taskTableIndex: 'I', expected: 'KUPC 2011 - I(AOJ)' },
977987
];
978988

979989
export const aojUniversity = AOJ_UNIVERSITY_TEST_DATA.map(

0 commit comments

Comments
 (0)