Jarvis/jarvis/objective/tests_models.py

260 lines
9.6 KiB
Python

from django.test import TestCase
from jarvis.objective.models import (
Educative,
Skill,
TouchPosition,
Routine,
RoutineSkill,
Passe,
)
from jarvis.core.global_vars import ROUTINE_TYPE_CHOICE
class ToolsModels(TestCase):
def setUp(self):
"""Set up des variables pour les test."""
touch_position_1 = TouchPosition.objects.create(
long_label="debout", short_label="debout", is_default=True
)
touch_position_2 = TouchPosition.objects.create(
long_label="quadrupédique", short_label="4 patte", is_default=False
)
educ_1 = Educative.objects.create(
long_label="1/2 vrille", short_label="1/2T", difficulty=0.1, level=1, rank=1
)
educ_3 = Educative.objects.create(
long_label="4 pattes", short_label="4P", difficulty=0.1, level=1, rank=1
)
skill_1 = Skill.objects.create(
long_label="Salto arrière groupé",
short_label="Arrière o",
rotation_type=2,
notation="4.-o",
rotation=4,
twist=0,
departure=touch_position_1,
landing=touch_position_1,
difficulty=0.5,
)
skill_2 = Skill.objects.create(
long_label="Barani groupé",
short_label="Barani o",
rotation_type=2,
notation=".41o",
rotation=4,
twist=1,
departure=touch_position_1,
landing=touch_position_1,
difficulty=0.5,
)
routine_1 = Routine.objects.create(
long_label="BOT Bronze",
short_label="Bronze",
is_active=True,
is_competitive=True,
)
routine_skill_1 = RoutineSkill.objects.create(
routine=routine_1, skill=skill_1, rank=1
)
routine_skill_1 = RoutineSkill.objects.create(
routine=routine_1, skill=skill_2, rank=2
)
def test_touch_position_to_string(self):
touch_position = TouchPosition.objects.get(long_label="debout")
self.assertEqual(str(touch_position), touch_position.long_label)
def test_touch_position_get_default_position(self):
# result =
pass
def test_educative_to_string(self):
educ_1 = Educative.objects.get(long_label="1/2 vrille")
self.assertEqual(
str(educ_1),
educ_1.long_label
+ " ("
+ educ_1.short_label
+ " - "
+ str(educ_1.difficulty)
+ ")",
)
def test_skill_to_string(self):
skill_1 = Skill.objects.get(long_label="Salto arrière groupé")
self.assertEqual(
str(skill_1), skill_1.long_label + " (" + skill_1.notation + ")"
)
def test_routine_to_string(self):
routine_1 = Routine.objects.get(long_label="BOT Bronze")
self.assertEqual(
str(routine_1), routine_1.long_label + " (" + routine_1.short_label + ")"
)
def test_routine_skill_to_string(self):
routine_1 = Routine.objects.get(long_label="BOT Bronze")
skill_1 = Skill.objects.get(long_label="Salto arrière groupé")
routine_skill_1 = RoutineSkill.objects.get(routine=routine_1, skill=skill_1)
self.assertEqual(
str(routine_skill_1),
str(routine_skill_1.rank)
+ " - "
+ routine_skill_1.routine.short_label
+ " : "
+ routine_skill_1.skill.short_label,
)
class PasseTestCase(TestCase):
def setUp(self):
"""
Structure finale :
1 -> 2
1 -> 6
3 -> 4 -> 5 -> 6 -> 7
1 -> 2 -> 9
3 -> 4 -> 5 -> 6 -> 7 -> 9
"""
# 1 et 3 Eductative sans pre-requis
educ_1 = Educative.objects.create(
long_label="1/2 vrille", difficulty=0.1, level=1, rank=1
)
educ_3 = Educative.objects.create(
long_label="4 pattes", difficulty=0.1, level=1, rank=1
)
def test_is_valid_dot(self):
arg = ""
self.assertEqual(Passe.is_valid_dot(arg), True)
arg = "Q1R1"
self.assertEqual(Passe.is_valid_dot(arg), True)
arg = ".Q1R1"
self.assertEqual(Passe.is_valid_dot(arg), True)
arg = "Q1R1."
self.assertEqual(Passe.is_valid_dot(arg), True)
arg = "Q1.R1"
self.assertEqual(Passe.is_valid_dot(arg), False)
arg = ".Q1.R1."
self.assertEqual(Passe.is_valid_dot(arg), False)
def test_is_valid_subset(self):
subset = ""
self.assertEqual(Passe.is_valid_subset(subset), False)
subset = "[2-8]"
self.assertEqual(Passe.is_valid_subset(subset), True)
subset = "[2--8]"
self.assertEqual(Passe.is_valid_subset(subset), False)
subset = "[-5]"
self.assertEqual(Passe.is_valid_subset(subset), True)
subset = "[3-]"
self.assertEqual(Passe.is_valid_subset(subset), True)
subset = "[8-2]"
self.assertEqual(Passe.is_valid_subset(subset), False)
subset = "[-]"
self.assertEqual(Passe.is_valid_subset(subset), False)
subset = "[1-]"
self.assertEqual(Passe.is_valid_subset(subset), False)
subset = "[-1]"
self.assertEqual(Passe.is_valid_subset(subset), False)
subset = "[4]"
self.assertEqual(Passe.is_valid_subset(subset), False)
subset = "[6-6]"
self.assertEqual(Passe.is_valid_subset(subset), False)
subset = "4"
self.assertEqual(Passe.is_valid_subset(subset), False)
subset = "[6-6"
self.assertEqual(Passe.is_valid_subset(subset), False)
subset = "[66]"
self.assertEqual(Passe.is_valid_subset(subset), False)
subset = "4-8"
self.assertEqual(Passe.is_valid_subset(subset), False)
subset = "6-]"
self.assertEqual(Passe.is_valid_subset(subset), False)
subset = "[4-"
self.assertEqual(Passe.is_valid_subset(subset), False)
subset = "[6"
self.assertEqual(Passe.is_valid_subset(subset), False)
subset = "Q1R1 [4-8]"
self.assertEqual(Passe.is_valid_subset(subset), False)
subset = "Q1R1 [-8]"
self.assertEqual(Passe.is_valid_subset(subset), False)
def test_is_valid_routine_type(self):
for item in ROUTINE_TYPE_CHOICE:
self.assertEqual(Passe.is_valid_routine_type(item[1]), True)
routine_type = ""
self.assertEqual(Passe.is_valid_routine_type(routine_type), False)
routine_type = ".Q1R1"
self.assertEqual(Passe.is_valid_routine_type(routine_type), False)
routine_type = "SFS."
self.assertEqual(Passe.is_valid_routine_type(routine_type), False)
routine_type = "Q1R1 [4-8]"
self.assertEqual(Passe.is_valid_routine_type(routine_type), False)
routine_type = "SFS [-8]"
self.assertEqual(Passe.is_valid_routine_type(routine_type), False)
def test_is_valid_regexp_one_arg(self):
arg = ""
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), False)
arg = "WC"
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), True)
arg = "1|"
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), True)
arg = ".Q1R1"
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), True)
arg = "Q1R2."
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), True)
arg = ".Q1R1 [4-8"
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), False)
arg = "Q1R2. [4-8"
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), False)
arg = "Q1R1 [4-8]"
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), False)
arg = "Q1R1 [8-4]"
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), False)
def test_is_valid_regexp_two_args(self):
arg1 = ""
arg2 = ""
self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), False)
arg1 = "Q1R1"
self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), False)
arg2 = "[4-8]"
self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), True)
arg2 = "[8-8]"
self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), False)
arg2 = "[8-4]"
self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), False)
arg2 = "[-8]"
self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), True)
arg2 = "[4-]"
self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), True)
arg1 = "Q1R1."
self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), True)
def test_is_valid_regexp(self):
regexp = ""
self.assertEqual(Passe.is_valid_regexp(regexp), False)
regexp = "Q1R1 [4-8]"
self.assertEqual(Passe.is_valid_regexp(regexp), True)
regexp = "Q1R1 [8-8]"
self.assertEqual(Passe.is_valid_regexp(regexp), False)
regexp = "Q1R1 [8-4]"
self.assertEqual(Passe.is_valid_regexp(regexp), False)
regexp = "Q1R1 [-8]"
self.assertEqual(Passe.is_valid_regexp(regexp), True)
regexp = "Q1R1 [4-]"
self.assertEqual(Passe.is_valid_regexp(regexp), True)
regexp = "Q1R1. [4-8]"
self.assertEqual(Passe.is_valid_regexp(regexp), True)
regexp = "Q1R1. [4-]"
self.assertEqual(Passe.is_valid_regexp(regexp), True)
regexp = ".Q1R1 [-8]"
self.assertEqual(Passe.is_valid_regexp(regexp), True)
regexp = "Q1R1. [8-8]"
self.assertEqual(Passe.is_valid_regexp(regexp), False)
regexp = ".Q1R1 [8-4]"
self.assertEqual(Passe.is_valid_regexp(regexp), False)