Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1# -*- coding: utf-8 -*- 

2""" 

3@file 

4@brief Shortcut to *tests*. 

5""" 

6import math 

7from ..activities import Notion, QuestionChoice, ActivityGroup 

8 

9 

10def simple_french_qcm(): 

11 """ 

12 Builds a simple French :epkg:`QCM` about mathématiques. 

13 """ 

14 math_sixieme = Notion('not-math-1', 'not-math-1', 'fr', 

15 domain='maths', level='6A') 

16 

17 objs = [ 

18 QuestionChoice('ch1', '2prem', 'fr', 'Le nombre 2 est-il un nombre premier ?', 

19 notion=math_sixieme, 

20 answers=['Oui', 'Non', 'Je ne sais pas'], 

21 expected_answers=['Oui']), 

22 QuestionChoice('ch2', 'airecercle', 'fr', 'Quelle est la surface d\'un cercle en fonction du rayon R ?', 

23 notion=math_sixieme, 

24 answers=['$\\pi R$', '$2 \\pi R$', 

25 '$\\pi R^2$', '$\\pi^2 R^2$', '$3R^2/4$'], 

26 expected_answers=['$\\pi R^2$']), 

27 QuestionChoice('ch3', 'pen', 'fr', 'La figure est un pavage...', 

28 notion=math_sixieme, 

29 answers=['Impossible, aucune régularité.', 

30 'Cela ne peut couvrir tout l\'espace.', 

31 'Oui et j\'en connais l\'auteur.', 

32 'C\'est un piège.'], 

33 expected_answers=['Oui et j\'en connais l\'auteur.'], 

34 show='static/img/pen.png'), 

35 QuestionChoice('ch4', 'peri', 'fr', 'La longueur des côtes françaises est de combien ?', 

36 notion=math_sixieme, 

37 answers=["%1.3fkm" % ((550000.e6 / math.pi)**0.5 * math.pi * 2 / 499), 

38 'Il existe mais c\'est trop long à pied.', 

39 'On ne sait pas le mesurer.', 

40 'Sa longueur est infinie.', 

41 "%1.3fkm" % ((550000.e6 / math.pi)**0.5 * math.pi * 2 / 1000), ], 

42 expected_answers=['Sa longueur est infinie.'], 

43 show='static/img/koch.png'), 

44 QuestionChoice('ch5', 'glace', 'fr', 'Un glaçon dans un verre fond. Le niveau de l\'eau monte-t-il ou descend-il ?', 

45 notion=math_sixieme, 

46 answers=['Il monte.', 'Il descend.', 'Il ne bouge pas.', 

47 'Je n\'ai rien compris au réchauffement climatique.'], 

48 expected_answers=['Il ne bouge pas.']), 

49 QuestionChoice('ch6', 'carre', 'fr', 'Un carré est un...', 

50 notion=math_sixieme, 

51 answers=['rectangle', 'parallélépidède', 'losange', 'un cercle', 

52 'Je n\'ai toujours rien compris au réchauffement climatique.'], 

53 expected_answers=['rectangle', 'losange']), 

54 QuestionChoice('ch7', 'tva', 'fr', 'Vous avez acheté un produit à 10 euros. La TVA est à 20%, quel est le prix sans la TVA ?', 

55 notion=math_sixieme, 

56 answers=['8 euros', '9.2', '10 * 0.8', '10 / 1.2', '7.8', 

57 '10 / 1.2'], 

58 expected_answers=['10 / 1.2']), 

59 QuestionChoice('ch8', 'dalton', 'fr', 'Gilles et Jean sont demi-frères, Jean et Charles sont demi-frères. Gilles et Charles sont...', 

60 notion=math_sixieme, 

61 answers=['frères, demi-frères', 

62 'rien du tout', 'on ne sait pas'], 

63 expected_answers=['on ne sait pas']), 

64 QuestionChoice('ch9', 'zoo', 'fr', 'Quel est le théorème de maths qui a servi à mesurer les Pyramides ?', 

65 notion=math_sixieme, 

66 answers=None, 

67 expected_answers=['Thalès']), 

68 ] 

69 return ActivityGroup("simple_french_qcm", "simple_french_qcm", objs) 

70 

71 

72def ml_french_qcm(): 

73 """ 

74 Builds a simple French :epkg:`QCM` about machine learning. 

75 """ 

76 niveau = Notion('not-math-2', 'not-math-2', 'fr', 

77 domain='maths', level='20A') 

78 

79 objs = [ 

80 QuestionChoice('ch1', 'pen', 'fr', 'Si ce dessin vous inspire quelques mots...', 

81 notion=niveau, 

82 answers=['Complètement raté.', 

83 'Je ne comprends pas la symbolique.', 

84 "C'est de l'overfitting.", 

85 "Bordel c'est Noël."], 

86 expected_answers=[], 

87 show='static/img/coeur.png'), 

88 QuestionChoice('ch2', 'r2', 'fr', 'Vous avez un $R^2$ de 0.99 et...', 

89 notion=niveau, 

90 answers=["Chouette les vacances !", "Trop facile !", "C'est beaucoup trop facile.", 

91 "Ah oui, le découpage train test."], 

92 expected_answers=[]), 

93 QuestionChoice('ch3', 'c1000', 'fr', 'On vous demande de classer 2000 images en 1000 classes.', 

94 notion=niveau, 

95 answers=["Ok.", 

96 "Mais c'est juste une fois ou toutes les semaines ?", 

97 "C'est quoi les dix classes les plus importantes ?", 

98 "Vous n'êtes pas Harry Potter. Vous êtes datascientiste."], 

99 expected_answers=[]), 

100 QuestionChoice('ch4', 'go6', 'fr', '6 Go de données et une random forest à caler...', 

101 notion=niveau, 

102 answers=["Il vous faut une plus grosse machine.", 

103 "La grosse machine, c'est pas assez, c'est l'occasion de demander un cluster.", 

104 "Seuls les russes savent le faire.", 

105 "Vous essayez XGBoost.", 

106 "Vous bidouillez scikit-learn pour gérer l'apprentissage sans tout charger en mémoire pour chaque arbre.", 

107 "Ouais, on va tout refaire en C++."], 

108 expected_answers=[]), 

109 QuestionChoice('ch5', 'noel', 'fr', "C'est Noël et vous devez livrez 1000 paquets en 3 jours avec 10 chauffeurs. " 

110 "Ca commence dans 48h.", 

111 notion=niveau, 

112 answers=["Ce n'est pas possible.", 

113 "Impossible n'est pas français.", 

114 "Trop cool ! Je vais pondre un algo de folie.", 

115 "Je ne le ferai jamais à la main. Je ne sais pas compter de toutes façons.", 

116 "Je sens le truc bugger à 3h du mat, soit 3h avant le départ des chauffeurs."], 

117 expected_answers=[]), 

118 QuestionChoice('ch6', 'auc', 'fr', "Une AUC de 0.2.", 

119 notion=niveau, 

120 answers=["Ce n'est pas possible.", 

121 "C'est mieux que zéro.", 

122 "Il y a sans doute une erreur de signe.", 

123 "C'est quoi le taux de classif déjà ?", 

124 "Mais pourquoi mettre l'AUC dans le rapport, personne ne sait ce que c'est !"], 

125 expected_answers=[]), 

126 QuestionChoice('ch7', 'jaune', 'fr', "Vous avez construit un modèle qui prédit la tendance de la mode " 

127 "et le jaune est à l'honneur en ce moment.", 

128 notion=niveau, 

129 answers=["Les prédictions ne seront pas bonnes pendant 6 mois.", 

130 "Vous avez vu une série médicale et vous faites une analogie avec un diagnostique différentiel.", 

131 "Vous devez construire une autre source de données : vous prenez les photos des tenues de vos employés.", 

132 "Vous créez une collection pour laquelle les concepteurs de vêtements ont plus de libertés."], 

133 expected_answers=[]), 

134 QuestionChoice('ch8', 'classif', 'fr', "95% de bonne classification (binaire). c'est bon ou c'est pas bon ?", 

135 notion=niveau, 

136 answers=["C'est nul.", 

137 "C'est génial.", 

138 "On n'est pas loin.", 

139 "Ca dépend de l'utilisation du modèle.", 

140 "Votre commentaire dépend de celui qui vous écoute.", 

141 "L'équipe marketting est déjà en train de vendre le produit.", 

142 "Au fait, c'est quoi les proportions des deux classes ?"], 

143 expected_answers=[]), 

144 QuestionChoice('ch9', 'csp', 'fr', "Vous aimeriez connaître la catégorie socio professionnelle de l'interviewé.", 

145 notion=niveau, 

146 answers=["Les gens mentent à cette question.", 

147 "Cela introduit un biais non éthique lors de l'étude.", 

148 "Trois questions détournées et c'est réglé.", 

149 "Combien de fois par semaine achetez-vous du bio ?"], 

150 expected_answers=[]), 

151 QuestionChoice('ch10', 'coche', 'fr', "Vous avez coché...", 

152 notion=niveau, 

153 answers=["Une seule réponse à chaque fois.", 

154 "Une ou plusieurs réponses.", 

155 "C'est une question piège.", 

156 "Ah on pouvait cocher plusieurs cases ? Mais ce n'était pas précisé."], 

157 expected_answers=[]), 

158 QuestionChoice('ch11', 'st', 'fr', "Encore une prédiction de séries temporelles", 

159 notion=niveau, 

160 answers=["Cool, sliding windows + random forest comme d'hab et c'et torché.", 

161 "LSTM parce que jamais fait.", 

162 "Du deep du deep du deep", 

163 "Il faut varier les plaisirs, et ce sera utile dans 6 mois."], 

164 expected_answers=[]), 

165 QuestionChoice('ch12', 'biais', 'fr', "Votre modèle prédit un prix plus élevé pour les hommes une assurance automobile.", 

166 notion=niveau, 

167 answers=["Pour une fois qu'ils gagnent moins.", 

168 "C'est un biais non éthique.", 

169 "C'est un résultat attendu.", 

170 "Il y a peut être d'autres biais. Il faut vérifier."], 

171 expected_answers=[]), 

172 QuestionChoice('ch13', 'vba', 'fr', "Votre patron vous demande une macro VBA parce qu'il a toujours fait comme ça.", 

173 notion=niveau, 

174 answers=["Vous démissionnez.", 

175 "Ca pètera un jour mais vous serez parti d'ici là.", 

176 "Ca marche bien le VBA.", 

177 "Vous le faites en python quand même."], 

178 expected_answers=[]), 

179 QuestionChoice('ch14', 'apple', 'fr', "Votre père ne comprend pas pourquoi Apple sait qu'il a la grippe.", 

180 notion=niveau, 

181 answers=["Vous lui demandez comment il le sait.", 

182 "Vous lui recommandez de prendre un téléphone avec l'OS de Firefox.", 

183 "Vous prenez le temps de passer en revue les paramètres de son téléphone.", 

184 "Vous lui apprenez à changer les paramètres de son téléphone."], 

185 expected_answers=[]), 

186 QuestionChoice('ch15', 'tsne', 'fr', "Vous avez utilisé une t-SNE pour projeter les données. Vons songez à l'utiliser pour prédire.", 

187 notion=niveau, 

188 answers=["Ca marche.", 

189 "Vous regardez l'API.", 

190 "Vous cherchez une librairie qui implémente une version paramétrisée.", 

191 "Vous remplacez par une ACP.", 

192 "Vous apprenez le résultat avec un réseau de neurones profond."], 

193 expected_answers=[]), 

194 ] 

195 return ActivityGroup("ml_french_qcm", "ml_french_qcm", objs) 

196 

197 

198def simple_cinema_qcm(): 

199 """ 

200 Builds a simple French :epkg:`QCM` about movies. 

201 """ 

202 cinema_seconde = Notion('not-cinema-1', 'not-cinema-1', 'fr', 

203 domain='cinema', level='2A') 

204 

205 objs = [ 

206 QuestionChoice( 

207 'ch1', 'hp', 'fr', 'Quel est la deuxieme épreuve de la coupe de feu ?', 

208 notion=cinema_seconde, 

209 answers=["l'épreuve du dragon", 

210 "l'épreuve des sirènes", "le labyrinthe"], 

211 expected_answers=["l'épreuve du dragon"]), 

212 QuestionChoice( 

213 'ch2', 'bond', 'fr', 'Quel acteur a joué en premier James Bond ?', 

214 notion=cinema_seconde, 

215 answers=["Emma Peel", "Sean Connery", "Michael Moore"], 

216 expected_answers=["Sean Connery"]), 

217 QuestionChoice( 

218 'ch3', 'manga', 'fr', "Comment se nomme la sorcière dans 'Le voyage de Chihiro' ?", 

219 notion=cinema_seconde, 

220 answers=["Yagaba", "Babayaga", "Yubaba"], 

221 expected_answers=["Yubaba"]), 

222 QuestionChoice( 

223 'ch4', 'heros', 'fr', "Dans le film Avengers Endgame, qui meurt lorsque Thanos claque des doigts ?", 

224 notion=cinema_seconde, 

225 answers=["Spiderman-Black Panther-Doctor Strange", 

226 "Spiderman-Ironman-Gamorra", "Hulk-Black Widow-Rocket"], 

227 expected_answers=["Spiderman-Black Panther-Doctor Strange"]), 

228 QuestionChoice( 

229 'ch5', 'cannes', 'fr', "Quelle est la dernière femme réalisatrice à avoir gagné la Palme d'or à Cannes ?", 

230 notion=cinema_seconde, 

231 answers=["Agnès Varda", "Jane Campion", "Kathryn Bigelow"], 

232 expected_answers=["Jane Campion"]), 

233 QuestionChoice( 

234 'ch6', 'bat', 'fr', "Quel est le tout premier acteur à avoir joué le Joker ?", 

235 notion=cinema_seconde, 

236 answers=["Heath Ledger", "Joaquin Phoenix", "Jack Nickolson"], 

237 expected_answers=["Jack Nickolson"]), 

238 QuestionChoice( 

239 'ch7', 'sw', 'fr', "Quel est le compositeur de la musique de Star Wars ?", 

240 notion=cinema_seconde, 

241 answers=["Clint Eastwood", "John Williams", 

242 "Hans Zimmer", "Maurice Jarre"], 

243 expected_answers=["John Williams"]), 

244 QuestionChoice( 

245 'ch8', 'rn', 'fr', "Comment se nomme le renne de Kristoff dans la 'Reine des Neiges' ?", 

246 notion=cinema_seconde, 

247 answers=["Sven", "Hans", "Mark"], 

248 expected_answers=["Sven"]), 

249 QuestionChoice( 

250 'ch9', 'as', 'fr', ("Dans 'Les Aristochats', comment se prénomme le dernier chat " 

251 "de Adélaïde Bonnefamille apres Toulouse, Berlioz et Duchesse ?"), 

252 notion=cinema_seconde, 

253 answers=["Juliette", "Chloé", "Marie"], 

254 expected_answers=["Marie"]), 

255 QuestionChoice( 

256 'ch10', 'as', 'fr', "Qui joue 'Edward aux mains d'argent' ?", 

257 notion=cinema_seconde, 

258 answers=["Leonardo DiCaprio", "Johnny Depp", "Tom Hanks"], 

259 expected_answers=["Johnny Depp"]), 

260 ] 

261 return ActivityGroup("simple_cinema_qcm", "simple_cinema_qcm", objs)