stats

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 5, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BigramLatency

type BigramLatency struct {
	Bigram    string
	LatencyMs int64
}

type CharStatus

type CharStatus int
const (
	StatusUntyped CharStatus = iota
	StatusCorrect
	StatusIncorrect
)

type Tracker

type Tracker struct {
	TargetText         string
	TargetRunes        []rune
	CharStates         []CharStatus
	CursorIdx          int
	StartTime          time.Time
	EndTime            time.Time
	LastKeyTime        time.Time
	LastKeyRune        rune
	IsStarted          bool
	IsFinished         bool
	TotalKeystrokes    int
	CorrectKeystrokes  int
	ErrorKeystrokes    int
	BackspaceCount     int
	WPMSamples         []float64
	DurationSec        int
	TargetWPM          float64 // Ghost Pacer Target (0 = disabled)
	GhostCursorIdx     int     // Position of Ghost Pacer
	RunBigramLatencies []BigramLatency
	MissedKeysMap      map[rune]int
}

Tracker handles real-time typing metrics, latency tracking, and Ghost Pacer calculations.

func NewTracker

func NewTracker(targetText string, durationSec int, targetWPM float64) *Tracker

NewTracker creates a new typing tracker initialized with target text, duration, and target WPM.

func (*Tracker) Backspace

func (t *Tracker) Backspace()

Backspace handles deleting the previously typed character.

func (*Tracker) CalculateAccuracy

func (t *Tracker) CalculateAccuracy() float64

CalculateAccuracy returns Accuracy percentage.

func (*Tracker) CalculateConsistency

func (t *Tracker) CalculateConsistency() float64

CalculateConsistency calculates WPM consistency percentage across samples.

func (*Tracker) CalculateRawWPM

func (t *Tracker) CalculateRawWPM() float64

CalculateRawWPM returns Raw WPM: (total_typed_chars / 5) / elapsed_minutes.

func (*Tracker) CalculateWPM

func (t *Tracker) CalculateWPM() float64

CalculateWPM returns Net WPM: (correct_chars / 5) / elapsed_minutes.

func (*Tracker) CountCorrectChars

func (t *Tracker) CountCorrectChars() int

CountCorrectChars returns total correctly typed characters currently on the board.

func (*Tracker) ElapsedSeconds

func (t *Tracker) ElapsedSeconds() float64

ElapsedSeconds calculates time spent typing.

func (*Tracker) Finish

func (t *Tracker) Finish()

Finish concludes the typing test session.

func (*Tracker) RecordRune

func (t *Tracker) RecordRune(r rune)

RecordRune processes typed character input and records latency.

func (*Tracker) RemainingSeconds

func (t *Tracker) RemainingSeconds() int

RemainingSeconds returns countdown timer seconds left.

func (*Tracker) SampleWPM

func (t *Tracker) SampleWPM()

SampleWPM appends current Net WPM to samples slice for graph plotting.

func (*Tracker) Start

func (t *Tracker) Start()

Start begins tracking time on the first keystroke.

func (*Tracker) UpdateGhostPacer

func (t *Tracker) UpdateGhostPacer()

UpdateGhostPacer updates position of the Ghost Pacer cursor.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL