Module: JLPT::ExamReadiness
- Defined in:
- lib/jlpt/analyzers/exam_readiness.rb
Overview
Exam Readiness and Level Coverage Evaluator.
Evaluates how well input text aligns with a target JLPT exam level (N5-N1), calculating target level vocabulary density and readiness score.
Constant Summary collapse
- LEVEL_THRESHOLD_MAP =
{ n5: 1, n4: 2, n3: 3, n2: 4, n1: 5 }.freeze
Class Method Summary collapse
-
.evaluate(text, target_level: :n3) ⇒ Hash
Evaluate readiness score for a target JLPT level.
Class Method Details
.evaluate(text, target_level: :n3) ⇒ Hash
Evaluate readiness score for a target JLPT level
18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/jlpt/analyzers/exam_readiness.rb', line 18 def evaluate(text, target_level: :n3) target_sym = target_level.to_s.downcase.to_sym target_val = LEVEL_THRESHOLD_MAP[target_sym] || 3 res = JLPT.analyze(text) current_val = LEVEL_THRESHOLD_MAP[res.recommended_level] || 1 readiness = calculate_readiness_score(current_val, target_val, res.score) status = determine_readiness_status(readiness) { target_level: target_sym, current_level: res.recommended_level, readiness_score: readiness, status: status } end |