Création d'un outil de test AtCoder pour Python

introduction

image.png

Lors de la résolution du problème AtCoder et de la vérification du fonctionnement avec un test utilisant des échantillons d'entrée / sortie Copier à la main et vérifier la sortie ... Cela prend beaucoup de temps à répéter. En particulier, cela affecte le temps de réponse correct pour les questions de 100 à 200 points.

Pour réduire cela, nous avons créé un outil qui teste automatiquement en donnant un ensemble de données d'entrée / sortie.

La source

https://github.com/mui-nyan/atcoder_testtool

introduction

actest_python() {
    bash ~/Documents/dev/atcoder_testtool/actest_python.sh $1 $2
}

Comment utiliser

image.png

Créez un fichier de données dans le même répertoire que le fichier source que vous souhaitez tester. Ici, le nom du fichier est ʻinput. Le format du fichier de données est le suivant: ʻinput --- output === est répété.

Entrée 1
---
Sortie 1
===
Entrée 2
---
Sortie 2
===

(=== est requis après la dernière sortie)

Si vous exécutez ʻactest_python` et donnez le nom du fichier source et le fichier de données comme arguments, il sera testé dans l'ordre.

$ actest_python B.py input
AC 91ms Expect: 2 Actual: 2
AC 92ms Expect: 0 Actual: 0
AC 91ms Expect: 5 Actual: 5

Ceci est un exemple d'affichage lorsque la réponse est incorrecte ou que le délai est dépassé. Le délai est fixé à 2 secondes.

$ actest_python B.py input
WA 96ms Expect: 2 Actual: 3
TLE 2192ms Expect: 0 Actual: 0
AC 91ms Expect: 5 Actual: 5

Je veux profiter de la création de fichiers de données

Le test est facile, mais la création d'un fichier de données est un problème, donc J'ai également créé un outil pour aider à créer un fichier de données.

Il est également inclus dans le GitHub ci-dessus, mais c'est tout.

javascript: (function(){ let ans = ""; let i=0; while($(`.lang-ja #pre-sample${i}`).length > 0) { const input = $(`#pre-sample${i}`).html().trim(); const expect = $(`#pre-sample${i+1}`).html().trim(); ans += input + "\n---\n" + expect + "\n===\n"; i += 2; } console.log(ans); navigator.clipboard.writeText(ans); })();

Enregistrez-le dans un signet ...

image.png

Exécutez sur la page de questions ...

image.png

Une fois collé,

image.png

Vous pouvez créer un fichier de données!

résultat

heureux!

Recommended Posts

Création d'un outil de test AtCoder pour Python
Modèle Python pour Codeforces-test manuel-
Installez RDKit, un outil informatique de chimie pour Python
J'ai touché au dernier outil de test automatique "Playwright for Python"
AtCoder: Python: Papa, l'exemple de test.
atCoder 173 Python
Outil de visualisation Python pour le travail d'analyse de données
Tableau de comparaison des outils d'environnement Python pour Rubyist
Fiche de triche AtCoder en python (pour moi-même)
Un outil pour saisir facilement du code Python
J'ai créé un outil de mot de passe en Python.
Ensemble d'entrées standard Atcoder pour les débutants (python)
30/10/2016 else pour Python3> pour:
python [pour moi]
AtCoder ABC 174 Python
Test d'intégrité Python
AtCoder ABC 175 Python
Création d'un wrapper Python pour l'API Qiita
Création d'un outil de gestion de bibliothèque d'en-tête uniquement pour C / C ++
AtCoder # 36 quotidien avec Python
Daily AtCoder # 32 en Python
À propos de Python for loop
Jugement des nombres premiers par Python
Jugement des nombres premiers avec Python
Daily AtCoder # 6 en Python
Daily AtCoder # 18 en Python
Daily AtCoder # 53 en Python
Un outil pour créer des images de masque pour ETC en Python
AtCoder # 7 tous les jours avec Python
AtCoder # 24 tous les jours avec Python
Daily AtCoder # 37 en Python
Résolvez AtCoder 167 avec python
AtCoder # 8 tous les jours avec Python
Daily AtCoder # 42 en Python
AtCoder # 21 quotidien avec Python
Daily AtCoder # 17 avec Python
Daily AtCoder # 38 en Python
Daily AtCoder # 54 en Python
Daily AtCoder # 11 en Python
Daily AtCoder # 15 en Python
Daily AtCoder # 13 en Python
Test numpy Python Basic 8
AtCoder # 45 quotidien avec Python
Mémo du package de test Python
AtCoder # 30 tous les jours en Python
AtCoder # 40 quotidien avec Python
À propos de Python, pour ~ (plage)
AtCoder # 10 quotidien avec Python
Jugement des nombres premiers avec python
AtCoder # 5 tous les jours avec Python
Daily AtCoder # 28 en Python
AtCoder # 39 quotidien avec Python
Manuel python pour les débutants
Automatiser la soumission d'AtCoder (Python)
Daily AtCoder # 20 en Python
Refactoring des outils utilisables avec Python
Daily AtCoder # 19 en Python
Daily AtCoder # 52 en Python
Daily AtCoder # 3 en Python