예제 #1
0
    def test_agc041_a(self) -> None:
        url = 'https://atcoder.jp/contests/agc041/tasks/agc041_a'
        expected = '\r\n'.join([
            r'<var>N</var> <var>A</var> <var>B</var>',
            r'',
        ]).strip() + '\r\n'

        html = download_html(url)
        self.assertEqual(analyzer.parse_input_format_string(html, url=url), expected)
        self.assertRaises(analyzer.HTMLParserError, lambda: analyzer.parse_output_format_string(html, url=url))
예제 #2
0
    def test_no_100(self) -> None:
        url = 'https://yukicoder.me/problems/no/100'
        expected = '\n'.join([
            r'$N$',
            r'$a_1$ $\ldots$ $a_N$',
            r'',
        ]).strip() + '\n'

        html = download_html(url)
        self.assertEqual(analyzer.parse_input_format_string(html, url=url), expected)
        self.assertRaises(analyzer.HTMLParserError, lambda: analyzer.parse_output_format_string(html, url=url))
예제 #3
0
    def test_stirling_number_of_the_second_kind(self) -> None:
        url = 'https://judge.yosupo.jp/problem/stirling_number_of_the_second_kind'
        expected_input = '\n'.join([
            r'$N$',
            r'',
        ]).strip() + '\n'
        expected_output = '\n'.join([
            r'$S(N, 0)$ $\cdots$ $S(N, N)$',
            r'',
        ]).strip() + '\n'

        html = download_html(url)
        self.assertEqual(analyzer.parse_input_format_string(html, url=url), expected_input)
        self.assertEqual(analyzer.parse_output_format_string(html, url=url), expected_output)
예제 #4
0
    def test_unionfind(self) -> None:
        url = 'https://judge.yosupo.jp/problem/unionfind'
        expected = '\n'.join([
            r'$N$ $Q$',
            r'$t_1$ $u_1$ $v_1$',
            r'$t_2$ $u_2$ $v_2$',
            r':',
            r'$t_Q$ $u_Q$ $v_Q$',
            r'',
        ]).strip() + '\n'

        html = download_html(url)
        self.assertEqual(analyzer.parse_input_format_string(html, url=url), expected)
        self.assertRaises(analyzer.HTMLParserError, lambda: analyzer.parse_output_format_string(html, url=url))
예제 #5
0
    def test_arc001_3(self) -> None:
        url = 'https://atcoder.jp/contests/arc001/tasks/arc001_3'
        expected = '\r\n'.join([
            r'',
            r'<var>c_{11}</var> <var>c_{12}</var> … <var>c_{18}</var>',
            r'<var>c_{21}</var> <var>c_{22}</var> … <var>c_{28}</var>',
            r':',
            r':',
            r'<var>c_{81}</var> <var>c_{82}</var> … <var>c_{88}</var>',
            r'',
        ]).strip() + '\r\n'

        html = download_html(url)
        self.assertEqual(analyzer.parse_input_format_string(html, url=url), expected)
        self.assertRaises(analyzer.HTMLParserError, lambda: analyzer.parse_output_format_string(html, url=url))
예제 #6
0
    def test_no_1000(self) -> None:
        url = 'https://yukicoder.me/problems/no/1000'
        expected = '\n'.join([
            r'$N\ Q$',
            r'$A_1\ A_2\ \cdots \ A_N$',
            r'$c_1\ x_1\ y_1$',
            r'$c_2\ x_2\ y_2$',
            r'$\vdots$',
            r'$c_Q\ x_Q\ y_Q$',
            r'',
        ]).strip() + '\n'

        html = download_html(url)
        self.assertEqual(analyzer.parse_input_format_string(html, url=url), expected)
        self.assertRaises(analyzer.HTMLParserError, lambda: analyzer.parse_output_format_string(html, url=url))
예제 #7
0
    def test_no_1(self) -> None:
        url = 'https://yukicoder.me/problems/no/1'
        expected = '\n'.join([
            r'\(N\)',
            r'\(C\)',
            r'\(V\)',
            r'\(S_1\ S_2\ S_3\ \dots\ S_V\)',
            r'\(T_1\ T_2\ T_3\ \dots\ T_V\)',
            r'\(Y_1\ Y_2\ Y_3\ \dots\ Y_V\)',
            r'\(M_1\ M_2\ M_3\ \dots\ M_V\)',
            r'',
        ]).strip() + '\n'

        html = download_html(url)
        self.assertEqual(analyzer.parse_input_format_string(html, url=url), expected)
        self.assertRaises(analyzer.HTMLParserError, lambda: analyzer.parse_output_format_string(html, url=url))
예제 #8
0
    def test_arc001_4(self) -> None:
        url = 'https://atcoder.jp/contests/arc001/tasks/arc001_4'
        expected = '\r\n'.join([
            r'',
            r'<var>N</var>',
            r'<var>start</var> <var>goal</var>',
            r'<var>l_0</var> <var>r_0</var>',
            r'<var>l_1</var> <var>r_1</var>',
            r'<var>:</var>',
            r'<var>:</var>',
            r'<var>l_N</var> <var>r_N</var>',
            r'',
        ]).strip() + '\r\n'

        html = download_html(url)
        self.assertEqual(analyzer.parse_input_format_string(html, url=url), expected)
        self.assertRaises(analyzer.HTMLParserError, lambda: analyzer.parse_output_format_string(html, url=url))
예제 #9
0
    def test_no_1078(self) -> None:
        """`<br />` is used in the output format.
        """

        url = 'https://yukicoder.me/problems/no/1078'
        expected_input = '\n'.join([
            r'$N$',
            r'$S_1\ S_2\ \cdots\ S_N$',
            r'$T_1\ T_2\ \cdots\ T_N$',
            r'$U_1\ U_2\ \cdots\ U_N$',
        ]).strip() + '\n'
        expected_output = '\n'.join([
            r'$a_{1,1} \cdots\ a_{1,N}$<br>$\vdots$<br>$a_{N,1} \cdots\ a_{N,N}$',
        ]).strip() + '\n'

        html = download_html(url)
        self.assertEqual(analyzer.parse_input_format_string(html, url=url), expected_input)
        self.assertEqual(analyzer.parse_output_format_string(html, url=url), expected_output)
예제 #10
0
    def test_two_edge_connected_components(self) -> None:
        url = 'https://judge.yosupo.jp/problem/two_edge_connected_components'
        expected_input = '\n'.join([
            r'$N$ $M$',
            r'$a_0$ $b_0$',
            r'$a_1$ $b_1$',
            r':',
            r'$a_{M - 1}$ $b_{M - 1}$',
            r'',
        ]).strip() + '\n'
        expected_output = '\n'.join([
            r'$l$ $v_0$ $v_1$ ... $v_{l-1}$',
            r'',
        ]).strip() + '\n'

        html = download_html(url)
        self.assertEqual(analyzer.parse_input_format_string(html, url=url), expected_input)
        self.assertEqual(analyzer.parse_output_format_string(html, url=url), expected_output)