mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-06-21 01:48:21 +02:00
tests
This commit is contained in:
@ -1,39 +1,39 @@
|
||||
# Copyright (C) 2018-2023 by BDE ENS Paris-Saclay
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
import time
|
||||
# import time
|
||||
from functools import lru_cache
|
||||
from random import Random
|
||||
# from random import Random
|
||||
|
||||
from django import forms
|
||||
from django.db import transaction
|
||||
from django.db.models import Q
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
# from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from .base import WEISurvey, WEISurveyInformation, WEISurveyAlgorithm, WEIBusInformation
|
||||
from ...models import WEIMembership
|
||||
|
||||
WORDS = {
|
||||
"ambiance":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"musique":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"boisson":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"beauferie":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"sommeil":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"vacances":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"activite":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"hygiene":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"animal":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"fensfoire":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"kokarde":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"copain":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"vie":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"jeux":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"calin":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"vommi":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"kfet":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"fatigue":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"duree trajet":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}],
|
||||
"scolarite":["Question", {1:"réponse 1", 2:"réponse 2", 3:"réponse 3", 4:"réponse 4", 5:"réponse 5"}]
|
||||
"ambiance": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"musique": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"boisson": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"beauferie": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"sommeil": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"vacances": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"activite": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"hygiene": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"animal": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"fensfoire": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"kokarde": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"copain": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"vie": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"jeux": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"calin": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"vommi": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"kfet": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"fatigue": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"duree trajet": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}],
|
||||
"scolarite": ["Question", {1: "réponse 1", 2: "réponse 2", 3: "réponse 3", 4: "réponse 4", 5: "réponse 5"}]
|
||||
}
|
||||
|
||||
|
||||
@ -55,9 +55,8 @@ class WEISurveyForm2023(forms.Form):
|
||||
# return
|
||||
|
||||
question = information.questions[information.step]
|
||||
print(information.step, question)
|
||||
self.fields[question] = forms.ChoiceField(
|
||||
label=WORDS[question][0]+question,
|
||||
label=WORDS[question][0] + question,
|
||||
widget=forms.RadioSelect(),
|
||||
)
|
||||
answers = [(answer, WORDS[question][1][answer]) for answer in WORDS[question][1]]
|
||||
@ -144,14 +143,14 @@ class WEISurvey2023(WEISurvey):
|
||||
return False
|
||||
return True
|
||||
|
||||
@classmethod
|
||||
@lru_cache()
|
||||
def word_mean(cls, word):
|
||||
"""
|
||||
Calculate the mid-score given by all buses.
|
||||
"""
|
||||
buses = cls.get_algorithm_class().get_buses()
|
||||
return sum([cls.get_algorithm_class().get_bus_information(bus).scores[word] for bus in buses]) / buses.count()
|
||||
# @classmethod
|
||||
# @lru_cache()
|
||||
# def word_mean(cls, word):
|
||||
# """
|
||||
# Calculate the mid-score given by all buses.
|
||||
# """
|
||||
# buses = cls.get_algorithm_class().get_buses()
|
||||
# return sum([cls.get_algorithm_class().get_bus_information(bus).scores[word] for bus in buses]) / buses.count()
|
||||
|
||||
@lru_cache()
|
||||
def score(self, bus):
|
||||
@ -160,8 +159,9 @@ class WEISurvey2023(WEISurvey):
|
||||
|
||||
bus_info = self.get_algorithm_class().get_bus_information(bus)
|
||||
# Score is the given score by the bus subtracted to the mid-score of the buses.
|
||||
s = sum(bus_info.scores[getattr(self.information, 'word' + str(i))]
|
||||
- self.word_mean(getattr(self.information, 'word' + str(i))) for i in range(1, 21)) / 20
|
||||
s = 0
|
||||
for question in WORDS:
|
||||
s += bus_info.scores[question][str(getattr(self.information, question))]
|
||||
return s
|
||||
|
||||
@lru_cache()
|
||||
@ -176,7 +176,7 @@ class WEISurvey2023(WEISurvey):
|
||||
|
||||
@classmethod
|
||||
def clear_cache(cls):
|
||||
cls.word_mean.cache_clear()
|
||||
# cls.word_mean.cache_clear()
|
||||
return super().clear_cache()
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user