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)