Jump to content

Module:sa-verb/testcases

Wiktionary වෙතින්

This is primarily intended as a "test suite for Sanskrit verb conjugations based off of Whitney".

To this end, it is designed to compare the conjugation of verbs as documented in Whitney with the conjugation generated by Module:sa-verb without specific form overrides. For forms and tenses generated by the module, specific form overrides can always bring the Devanagari to the desired form, so there is limited point in testing the outcome of such overrides.

The data to be compared against is laid out in tables within this module with names such as bhavati_ref, with subtables for each tense/mood and voice, namely:

Active Middle Description
presa presm Present tense
subja subjm Subjunctive mood (of the present tense), for future expansion
optaa optam Optative mood
impra imprm Imperative mood
impfa impfm Imperfect tense
pap pmp present active and middle participles
futua futum Future tense
conda condm Conditional tense
fap fmp Future active and middle participles
pfuta pfutm Periphrastic future
aoria aorim Aorist tense
preca precm Benedictive tense
aap amp aorist active and middle participles
perfa perfm perfect tense
pfap pfmp perfect active and middle participles
prrfa prrfm Periphrastic perfect

The named subtables are all optional. The subtables for the participles are lists of alternative 'lemmas', while the subtables contain 9 number lists of forms for the 9 person-number combinations, 1s, 1du, 1p, 2s, 2du, 2p, 3s, 3du and 3p, in that order. All subtables and lists may contain named strings why explaining why the form given is the correct form and whynot explaining why the generated form is correct instead. These are displayed if a test fails.

To better detect errors in the module, the concept of the 'regular' forms of a verb is supported. The version of a named subtable containing only the regular forms is as above but suffixed with '_reg'. The function regularise() returns the table with such subtables replacing the full subtable.

The individual test results are laid out in tables grouped by test function, with the 'text' column giving a 'label', principally the first non-positional parameter shorn of stem override, and the part of the verb being compared. The label includes an accent if the forms being compared are to have Vedic accents, and does not it they are not to. For finite forms, all forms, active and middle, of the same person are compared in a single test, and for non-finite forms, all alternative forms are compared together. When what is being compared with is the regular forms of the verb, the label will contain the word 'regularised'.

There are a number of flags that influence the generation of the forms in the generated inflection tables. These are recorded in a 'header' line in the results table immediately prior to the affected texts. These fall into three groups:

1. The stem overrides:

Name Description
spres strong stem for present tense system other than the imperfect and injunctive.
wpres weak stem for the present tense system other than the imperfect and injunctive.
fp_pres argument 'extra_1p_stem' for present tense (used before endings starting with m/v/y)
spast strong stem for the imperfect tense.
wpast weak stem for the imperfect tense.
fp_past argument 'extra_1p_stem' for imperfect tense (used before endings starting with m/v)
sinj strong stem for the augmentless imperfect tense.
winj weak stem for the augmentless imperfect tense.
pfroot 'stem' for the periphrastic future.
aaor stem for the active of the aorist
maor stem for the middle of the aorist
aprec stem for the active of the benedictive
mprec stem for the middle of the benedictive
ainj stem for the active of the augmentless aorist
minj stem for the middle of the augmentless aorist
sperf strong stem for the perfect
wperf weak stem for the perfect

2. Flag options. These correspond to options exposed by {{sa-conj}}, and are: set, j_to_z, h_to_g, diaspirate and aor.

3. Postprocessing options:

detAt Imperative forms in -tāt are removed from the comparison.
adddegem Generated forms are supplemented by the result of stops optionally deleting immediately between nasals and stops.

The tests are grouped by tense system and, for the present system, by class. The groups are displayed in alphabetic order.

130 of 671 tests failed. (refresh)

TextExpectedActual
test_aorist:
Whitney's root aorists (various middles):
Passedádāt aor 1ádām ; ádāva ; ádāmaádām ; ádāva ; ádāma
Passedádāt aor 2ádāḥ ; ádātam ; ádātaádāḥ ; ádātam ; ádāta
Passedádāt aor 3ádāt ; ádātām ; áduḥádāt ; ádātām ; áduḥ
Failedábhūt aor 1ábhūvam ; ábhūva ; ábhūmaábhvam ; ábhūva ; ábhūma
Passedábhūt aor 2ábhūḥ ; ábhūtam ; ábhūtaábhūḥ ; ábhūtam ; ábhūta
Passedábhūt aor 3ábhūt ; ábhūtām ; ábhūvanábhūt ; ábhūtām ; ábhūvan
Failedabhūt aor 1abhūvam ; abhūva ; abhūmaabhvam ; abhūva ; abhūma
Passedabhūt aor 2abhūḥ ; abhūtam ; abhūtaabhūḥ ; abhūtam ; abhūta
Passedabhūt aor 3abhūt ; abhūtām ; abhūvanabhūt ; abhūtām ; abhūvan
Passedábhūt prec 1bhūyā́sam ; bhūyā́sva ; bhūyā́sma ; bhaviṣīyá ; bhaviṣīváhi ; bhaviṣīmáhibhūyā́sam ; bhūyā́sva ; bhūyā́sma ; bhaviṣīyá ; bhaviṣīváhi ; bhaviṣīmáhi
Passedábhūt prec 2bhūyā́ḥ ; bhūyā́stam ; bhūyā́sta ; bhaviṣīṣṭhā́ḥ ; bhaviṣīyā́sthām ; bhaviṣīḍhvámbhūyā́ḥ ; bhūyā́stam ; bhūyā́sta ; bhaviṣīṣṭhā́ḥ ; bhaviṣīyā́sthām ; bhaviṣīḍhvám
Failedábhūt prec 3bhūyā́t ; bhūyā́stām ; bhūyā́suḥ ; bhaviṣīṣṭá ; bhaviṣīyā́stām ; bhaviṣīránbhūyā́t bhūyā́ḥ ; bhūyā́stām ; bhūyā́suḥ ; bhaviṣīṣṭá ; bhaviṣīyā́stām ; bhaviṣīrán
Passedabhūt prec 1bhūyāsam ; bhūyāsva ; bhūyāsma ; bhaviṣīya ; bhaviṣīvahi ; bhaviṣīmahibhūyāsam ; bhūyāsva ; bhūyāsma ; bhaviṣīya ; bhaviṣīvahi ; bhaviṣīmahi
Passedabhūt prec 2bhūyāḥ ; bhūyāstam ; bhūyāsta ; bhaviṣīṣṭhāḥ ; bhaviṣīyāsthām ; bhaviṣīḍhvambhūyāḥ ; bhūyāstam ; bhūyāsta ; bhaviṣīṣṭhāḥ ; bhaviṣīyāsthām ; bhaviṣīḍhvam
Failedabhūt prec 3bhūyāt ; bhūyāstām ; bhūyāsuḥ ; bhaviṣīṣṭa ; bhaviṣīyāstām ; bhaviṣīranbhūyāt bhūyāḥ ; bhūyāstām ; bhūyāsuḥ ; bhaviṣīṣṭa ; bhaviṣīyāstām ; bhaviṣīran
Whitney's a-aorists (various middles):
Passedásicat aor 1ásicam ; ásicāva ; ásicāma ; ásice ; ásicāvahi ; ásicāmahiásicam ; ásicāva ; ásicāma ; ásice ; ásicāvahi ; ásicāmahi
Passedásicat aor 2ásicaḥ ; ásicatam ; ásicata ; ásicathāḥ ; ásicethām ; ásicadhvamásicaḥ ; ásicatam ; ásicata ; ásicathāḥ ; ásicethām ; ásicadhvam
Passedásicat aor 3ásicat ; ásicatām ; ásican ; ásicata ; ásicetām ; ásicantaásicat ; ásicatām ; ásican ; ásicata ; ásicetām ; ásicanta
Passedávidat aor 1ávidam ; ávidāva ; ávidāma ; ávide ; ávidāvahi ; ávidāmahiávidam ; ávidāva ; ávidāma ; ávide ; ávidāvahi ; ávidāmahi
Passedávidat aor 2ávidaḥ ; ávidatam ; ávidata ; ávidathāḥ ; ávidethām ; ávidadhvamávidaḥ ; ávidatam ; ávidata ; ávidathāḥ ; ávidethām ; ávidadhvam
Passedávidat aor 3ávidat ; ávidatām ; ávidan ; ávidata ; ávidetām ; ávidantaávidat ; ávidatām ; ávidan ; ávidata ; ávidetām ; ávidanta
Whitney's reduplicated aorists:
Passedájījanat aor 1ájījanam ; ájījanāva ; ájījanāma ; ájījane ; ájījanāvahi ; ájījanāmahiájījanam ; ájījanāva ; ájījanāma ; ájījane ; ájījanāvahi ; ájījanāmahi
Passedájījanat aor 2ájījanaḥ ; ájījanatam ; ájījanata ; ájījanathāḥ ; ájījanethām ; ájījanadhvamájījanaḥ ; ájījanatam ; ájījanata ; ájījanathāḥ ; ájījanethām ; ájījanadhvam
Passedájījanat aor 3ájījanat ; ájījanatām ; ájījanan ; ájījanata ; ájījanetām ; ájījanantaájījanat ; ájījanatām ; ájījanan ; ájījanata ; ájījanetām ; ájījananta
Passedájījanat inj 1jī́janam ; jī́janāva ; jī́janāma ; jī́jane ; jī́janāvahi ; jī́janāmahijī́janam ; jī́janāva ; jī́janāma ; jī́jane ; jī́janāvahi ; jī́janāmahi
Passedájījanat inj 2jī́janaḥ ; jī́janatam ; jī́janata ; jī́janathāḥ ; jī́janethām ; jī́janadhvamjī́janaḥ ; jī́janatam ; jī́janata ; jī́janathāḥ ; jī́janethām ; jī́janadhvam
Passedájījanat inj 3jī́janat ; jī́janatām ; jī́janan ; jī́janata ; jī́janetām ; jī́janantajī́janat ; jī́janatām ; jī́janan ; jī́janata ; jī́janetām ; jī́jananta
Whitney's s-aorists:
Passedánaiṣīt aor 1ánaiṣam ; ánaiṣva ; ánaiṣma ; áneṣi ; áneṣvahi ; áneṣmahiánaiṣam ; ánaiṣva ; ánaiṣma ; áneṣi ; áneṣvahi ; áneṣmahi
Passedánaiṣīt aor 2ánaiṣīḥ ánaiḥ ; ánaiṣṭam ; ánaiṣṭa ; áneṣṭhāḥ ; áneṣāthām ; áneḍhvamánaiṣīḥ ánaiḥ ; ánaiṣṭam ; ánaiṣṭa ; áneṣṭhāḥ ; áneṣāthām ; áneḍhvam
Failedánaiṣīt aor 3ánaiṣīt ánaiḥ ánait ; ánaiṣṭām ; ánaiṣuḥ ; áneṣṭa ; áneṣātām ; áneṣataánaiṣīt ánaiḥ ; ánaiṣṭām ; ánaiṣuḥ ; áneṣṭa ; áneṣātām ; áneṣata
Passedánaiṣīt inj 1naíṣam ; naíṣva ; naíṣma ; néṣi ; néṣvahi ; néṣmahinaíṣam ; naíṣva ; naíṣma ; néṣi ; néṣvahi ; néṣmahi
Passedánaiṣīt inj 2naíṣīḥ naíḥ ; naíṣṭam ; naíṣṭa ; néṣṭhāḥ ; néṣāthām ; néḍhvamnaíṣīḥ naíḥ ; naíṣṭam ; naíṣṭa ; néṣṭhāḥ ; néṣāthām ; néḍhvam
Failedánaiṣīt inj 3naíṣīt naíḥ naít ; naíṣṭām ; naíṣuḥ ; néṣṭa ; néṣātām ; néṣatanaíṣīt naíḥ ; naíṣṭām ; naíṣuḥ ; néṣṭa ; néṣātām ; néṣata
For ácchaitsīt, middle 3s on -tta defaults to s-aorist
Passedácchaitsīt aor 1ácchaitsam ; ácchaitsva ; ácchaitsma ; ácchitsi ; ácchitsvahi ; ácchitsmahiácchaitsam ; ácchaitsva ; ácchaitsma ; ácchitsi ; ácchitsvahi ; ácchitsmahi
Passedácchaitsīt aor 2ácchaitsīḥ ácchait ; ácchaittam ; ácchaitta ; ácchitthāḥ ; ácchitsāthām ; ácchiddhvamácchaitsīḥ ácchait ; ácchaittam ; ácchaitta ; ácchitthāḥ ; ácchitsāthām ; ácchiddhvam
Passedácchaitsīt aor 3ácchaitsīt ácchait ; ácchaittām ; ácchaitsuḥ ; ácchitta ; ácchitsātām ; ácchitsataácchaitsīt ácchait ; ácchaittām ; ácchaitsuḥ ; ácchitta ; ácchitsātām ; ácchitsata
Whitney's iṣ-aorists:
Passedápāvīt aor 1ápāviṣam ; ápāviṣva ; ápāviṣma ; ápaviṣi ; ápaviṣvahi ; ápaviṣmahiápāviṣam ; ápāviṣva ; ápāviṣma ; ápaviṣi ; ápaviṣvahi ; ápaviṣmahi
Passedápāvīt aor 2ápāvīḥ ; ápāviṣṭam ; ápāviṣṭa ; ápaviṣṭhāḥ ; ápaviṣāthām ; ápaviḍhvamápāvīḥ ; ápāviṣṭam ; ápāviṣṭa ; ápaviṣṭhāḥ ; ápaviṣāthām ; ápaviḍhvam
Passedápāvīt aor 3ápāvīt ; ápāviṣṭām ; ápāviṣuḥ ; ápaviṣṭa ; ápaviṣātām ; ápaviṣataápāvīt ; ápāviṣṭām ; ápāviṣuḥ ; ápaviṣṭa ; ápaviṣātām ; ápaviṣata
Passedábodhīt aor 1ábodhiṣam ; ábodhiṣva ; ábodhiṣma ; ábodhiṣi ; ábodhiṣvahi ; ábodhiṣmahiábodhiṣam ; ábodhiṣva ; ábodhiṣma ; ábodhiṣi ; ábodhiṣvahi ; ábodhiṣmahi
Passedábodhīt aor 2ábodhīḥ ; ábodhiṣṭam ; ábodhiṣṭa ; ábodhiṣṭhāḥ ; ábodhiṣāthām ; ábodhiḍhvamábodhīḥ ; ábodhiṣṭam ; ábodhiṣṭa ; ábodhiṣṭhāḥ ; ábodhiṣāthām ; ábodhiḍhvam
Passedábodhīt aor 3ábodhīt ; ábodhiṣṭām ; ábodhiṣuḥ ; ábodhiṣṭa ; ábodhiṣātām ; ábodhiṣataábodhīt ; ábodhiṣṭām ; ábodhiṣuḥ ; ábodhiṣṭa ; ábodhiṣātām ; ábodhiṣata
Passedábodhīt inj 1bódhiṣam ; bódhiṣva ; bódhiṣma ; bódhiṣi ; bódhiṣvahi ; bódhiṣmahibódhiṣam ; bódhiṣva ; bódhiṣma ; bódhiṣi ; bódhiṣvahi ; bódhiṣmahi
Passedábodhīt inj 2bódhīḥ ; bódhiṣṭam ; bódhiṣṭa ; bódhiṣṭhāḥ ; bódhiṣāthām ; bódhiḍhvambódhīḥ ; bódhiṣṭam ; bódhiṣṭa ; bódhiṣṭhāḥ ; bódhiṣāthām ; bódhiḍhvam
Passedábodhīt inj 3bódhīt ; bódhiṣṭām ; bódhiṣuḥ ; bódhiṣṭa ; bódhiṣātām ; bódhiṣatabódhīt ; bódhiṣṭām ; bódhiṣuḥ ; bódhiṣṭa ; bódhiṣātām ; bódhiṣata
Whitney's siṣ-aorists:
áyāsīt uses aor=iṣ
Passedáyāsīt aor 1áyāsiṣam ; áyāsiṣva ; áyāsiṣmaáyāsiṣam ; áyāsiṣva ; áyāsiṣma
Passedáyāsīt aor 2áyāsīḥ ; áyāsiṣṭam ; áyāsiṣṭaáyāsīḥ ; áyāsiṣṭam ; áyāsiṣṭa
Passedáyāsīt aor 3áyāsīt ; áyāsiṣṭām ; áyāsiṣuḥáyāsīt ; áyāsiṣṭām ; áyāsiṣuḥ
Passedáyāsīt inj 1yā́siṣam ; yā́siṣva ; yā́siṣmayā́siṣam ; yā́siṣva ; yā́siṣma
Passedáyāsīt inj 2yā́sīḥ ; yā́siṣṭam ; yā́siṣṭayā́sīḥ ; yā́siṣṭam ; yā́siṣṭa
Passedáyāsīt inj 3yā́sīt ; yā́siṣṭām ; yā́siṣuḥyā́sīt ; yā́siṣṭām ; yā́siṣuḥ
ánaṁsīt uses aor=iṣ
Passedánaṁsīt aor 1ánaṁsiṣam ; ánaṁsiṣva ; ánaṁsiṣmaánaṁsiṣam ; ánaṁsiṣva ; ánaṁsiṣma
Passedánaṁsīt aor 2ánaṁsīḥ ; ánaṁsiṣṭam ; ánaṁsiṣṭaánaṁsīḥ ; ánaṁsiṣṭam ; ánaṁsiṣṭa
Passedánaṁsīt aor 3ánaṁsīt ; ánaṁsiṣṭām ; ánaṁsiṣuḥánaṁsīt ; ánaṁsiṣṭām ; ánaṁsiṣuḥ
Whitney's sa-aorists:
Passedádikṣat aor 1ádikṣam ; ádikṣāva ; ádikṣāma ; ádikṣi ; ádikṣāvahi ; ádikṣāmahiádikṣam ; ádikṣāva ; ádikṣāma ; ádikṣi ; ádikṣāvahi ; ádikṣāmahi
Passedádikṣat aor 2ádikṣaḥ ; ádikṣatam ; ádikṣata ; ádikṣathāḥ ; ádikṣāthām ; ádikṣadhvamádikṣaḥ ; ádikṣatam ; ádikṣata ; ádikṣathāḥ ; ádikṣāthām ; ádikṣadhvam
Passedádikṣat aor 3ádikṣat ; ádikṣatām ; ádikṣan ; ádikṣata ; ádikṣātām ; ádikṣantaádikṣat ; ádikṣatām ; ádikṣan ; ádikṣata ; ádikṣātām ; ádikṣanta
Passedádikṣat inj 1dikṣám ; dikṣā́va ; dikṣā́ma ; dikṣí ; dikṣā́vahi ; dikṣā́mahidikṣám ; dikṣā́va ; dikṣā́ma ; dikṣí ; dikṣā́vahi ; dikṣā́mahi
Passedádikṣat inj 2dikṣáḥ ; dikṣátam ; dikṣáta ; dikṣáthāḥ ; dikṣā́thām ; dikṣádhvamdikṣáḥ ; dikṣátam ; dikṣáta ; dikṣáthāḥ ; dikṣā́thām ; dikṣádhvam
Passedádikṣat inj 3dikṣát ; dikṣátām ; dikṣán ; dikṣáta ; dikṣā́tām ; dikṣántadikṣát ; dikṣátām ; dikṣán ; dikṣáta ; dikṣā́tām ; dikṣánta
TextExpectedActual
test_class_1:
Failedbhávati pres 1bhávāmi ; bhávāvaḥ ; bhávāmaḥ ; bháve ; bhávāvahe ; bhávāmahebhávāmi ; bhávāvaḥ ; bhávāmaḥ bhávāmasi ; bháve ; bhávāvahe ; bhávāmahe
Passedbhávati pres 2bhávasi ; bhávathaḥ ; bhávatha ; bhávase ; bhávethe ; bhávadhvebhávasi ; bhávathaḥ ; bhávatha ; bhávase ; bhávethe ; bhávadhve
Passedbhávati pres 3bhávati ; bhávataḥ ; bhávanti ; bhávate ; bhávete ; bhávantebhávati ; bhávataḥ ; bhávanti ; bhávate ; bhávete ; bhávante
Passedbhávati opt 1bháveyam ; bháveva ; bhávema ; bháveya ; bhávevahi ; bhávemahibháveyam ; bháveva ; bhávema ; bháveya ; bhávevahi ; bhávemahi
Passedbhávati opt 2bháveḥ ; bhávetam ; bháveta ; bhávethāḥ ; bháveyāthām ; bhávedhvambháveḥ ; bhávetam ; bháveta ; bhávethāḥ ; bháveyāthām ; bhávedhvam
Passedbhávati opt 3bhávet ; bhávetām ; bháveyuḥ ; bháveta ; bháveyātām ; bháveranbhávet ; bhávetām ; bháveyuḥ ; bháveta ; bháveyātām ; bháveran
Failedbhávati act part bhávantbhávat
Whitney e.g. Para 741 cites participles in strong form. See discussion.
Passedbhávati mid part bhávamānabhávamāna
Passedbhávati impf 1ábhavam ; ábhavāva ; ábhavāma ; ábhave ; ábhavāvahi ; ábhavāmahiábhavam ; ábhavāva ; ábhavāma ; ábhave ; ábhavāvahi ; ábhavāmahi
Passedbhávati impf 2ábhavaḥ ; ábhavatam ; ábhavata ; ábhavathāḥ ; ábhavethām ; ábhavadhvamábhavaḥ ; ábhavatam ; ábhavata ; ábhavathāḥ ; ábhavethām ; ábhavadhvam
Passedbhávati impf 3ábhavat ; ábhavatām ; ábhavan ; ábhavata ; ábhavetām ; ábhavantaábhavat ; ábhavatām ; ábhavan ; ábhavata ; ábhavetām ; ábhavanta
Passedbhávati inj 1bhávam ; bhávāva ; bhávāma ; bháve ; bhávāvahi ; bhávāmahibhávam ; bhávāva ; bhávāma ; bháve ; bhávāvahi ; bhávāmahi
Passedbhávati inj 2bhávaḥ ; bhávatam ; bhávata ; bhávathāḥ ; bhávethām ; bhávadhvambhávaḥ ; bhávatam ; bhávata ; bhávathāḥ ; bhávethām ; bhávadhvam
Passedbhávati inj 3bhávat ; bhávatām ; bhávan ; bhávata ; bhávetām ; bhávantabhávat ; bhávatām ; bhávan ; bhávata ; bhávetām ; bhávanta
Regularised bhávati uses detAt
FailedRegularised bhávati pres 1bhávāmi ; bhávāvaḥ ; bhávāmaḥ ; bháve ; bhávāvahe ; bhávāmahebhávāmi ; bhávāvaḥ ; bhávāmaḥ bhávāmasi ; bháve ; bhávāvahe ; bhávāmahe
PassedRegularised bhávati pres 2bhávasi ; bhávathaḥ ; bhávatha ; bhávase ; bhávethe ; bhávadhvebhávasi ; bhávathaḥ ; bhávatha ; bhávase ; bhávethe ; bhávadhve
PassedRegularised bhávati pres 3bhávati ; bhávataḥ ; bhávanti ; bhávate ; bhávete ; bhávantebhávati ; bhávataḥ ; bhávanti ; bhávate ; bhávete ; bhávante
PassedRegularised bhávati opt 1bháveyam ; bháveva ; bhávema ; bháveya ; bhávevahi ; bhávemahibháveyam ; bháveva ; bhávema ; bháveya ; bhávevahi ; bhávemahi
PassedRegularised bhávati opt 2bháveḥ ; bhávetam ; bháveta ; bhávethāḥ ; bháveyāthām ; bhávedhvambháveḥ ; bhávetam ; bháveta ; bhávethāḥ ; bháveyāthām ; bhávedhvam
PassedRegularised bhávati opt 3bhávet ; bhávetām ; bháveyuḥ ; bháveta ; bháveyātām ; bháveranbhávet ; bhávetām ; bháveyuḥ ; bháveta ; bháveyātām ; bháveran
PassedRegularised bhávati impr 1bhávāni ; bhávāva ; bhávāma ; bhávai ; bhávāvahai ; bhávāmahaibhávāni ; bhávāva ; bhávāma ; bhávai ; bhávāvahai ; bhávāmahai
PassedRegularised bhávati impr 2bháva ; bhávatam ; bhávata ; bhávasva ; bhávethām ; bhávadhvambháva ; bhávatam ; bhávata ; bhávasva ; bhávethām ; bhávadhvam
PassedRegularised bhávati impr 3bhávatu ; bhávatām ; bhávantu ; bhávatām ; bhávetām ; bhávantāmbhávatu ; bhávatām ; bhávantu ; bhávatām ; bhávetām ; bhávantām
PassedRegularised bhávati impf 1ábhavam ; ábhavāva ; ábhavāma ; ábhave ; ábhavāvahi ; ábhavāmahiábhavam ; ábhavāva ; ábhavāma ; ábhave ; ábhavāvahi ; ábhavāmahi
PassedRegularised bhávati impf 2ábhavaḥ ; ábhavatam ; ábhavata ; ábhavathāḥ ; ábhavethām ; ábhavadhvamábhavaḥ ; ábhavatam ; ábhavata ; ábhavathāḥ ; ábhavethām ; ábhavadhvam
PassedRegularised bhávati impf 3ábhavat ; ábhavatām ; ábhavan ; ábhavata ; ábhavetām ; ábhavantaábhavat ; ábhavatām ; ábhavan ; ábhavata ; ábhavetām ; ábhavanta
PassedRegularised bhávati inj 1bhávam ; bhávāva ; bhávāma ; bháve ; bhávāvahi ; bhávāmahibhávam ; bhávāva ; bhávāma ; bháve ; bhávāvahi ; bhávāmahi
PassedRegularised bhávati inj 2bhávaḥ ; bhávatam ; bhávata ; bhávathāḥ ; bhávethām ; bhávadhvambhávaḥ ; bhávatam ; bhávata ; bhávathāḥ ; bhávethām ; bhávadhvam
PassedRegularised bhávati inj 3bhávat ; bhávatām ; bhávan ; bhávata ; bhávetām ; bhávantabhávat ; bhávatām ; bhávan ; bhávata ; bhávetām ; bhávanta
FailedRegularised bhávati act part bhávantbhávat
Whitney e.g. Para 741 cites participles in strong form. See discussion.
PassedRegularised bhávati mid part bhávamānabhávamāna
Failedbhávate pres 1bhávāmi ; bhávāvaḥ ; bhávāmaḥ ; bháve ; bhávāvahe ; bhávāmahebhávāmi ; bhávāvaḥ ; bhávāmaḥ bhávāmasi ; bháve ; bhávāvahe ; bhávāmahe
Passedbhávate pres 2bhávasi ; bhávathaḥ ; bhávatha ; bhávase ; bhávethe ; bhávadhvebhávasi ; bhávathaḥ ; bhávatha ; bhávase ; bhávethe ; bhávadhve
Passedbhávate pres 3bhávati ; bhávataḥ ; bhávanti ; bhávate ; bhávete ; bhávantebhávati ; bhávataḥ ; bhávanti ; bhávate ; bhávete ; bhávante
Passedbhavate opt 1bháveyam ; bháveva ; bhávema ; bháveya ; bhávevahi ; bhávemahibháveyam ; bháveva ; bhávema ; bháveya ; bhávevahi ; bhávemahi
Passedbhavate opt 2bháveḥ ; bhávetam ; bháveta ; bhávethāḥ ; bháveyāthām ; bhávedhvambháveḥ ; bhávetam ; bháveta ; bhávethāḥ ; bháveyāthām ; bhávedhvam
Passedbhavate opt 3bhávet ; bhávetām ; bháveyuḥ ; bháveta ; bháveyātām ; bháveranbhávet ; bhávetām ; bháveyuḥ ; bháveta ; bháveyātām ; bháveran
Passedbhávate impr 1bhávāni ; bhávāva ; bhávāma ; bhávai ; bhávāvahai ; bhávāmahaibhávāni ; bhávāva ; bhávāma ; bhávai ; bhávāvahai ; bhávāmahai
Failedbhávate impr 2bháva bhávatāt ; bhávatam ; bhávata ; bhávasva ; bhávethām ; bhávadhvambháva ; bhávatam ; bhávata ; bhávasva ; bhávethām ; bhávadhvam
Passedbhávate impr 3bhávatu ; bhávatām ; bhávantu ; bhávatām ; bhávetām ; bhávantāmbhávatu ; bhávatām ; bhávantu ; bhávatām ; bhávetām ; bhávantām
Failedbhávate act part bhávantbhávat
Whitney e.g. Para 741 cites participles in strong form. See discussion.
Passedbhávate mid part bhávamānabhávamāna
Passedbhávate impf 1ábhavam ; ábhavāva ; ábhavāma ; ábhave ; ábhavāvahi ; ábhavāmahiábhavam ; ábhavāva ; ábhavāma ; ábhave ; ábhavāvahi ; ábhavāmahi
Passedbhávate impf 2ábhavaḥ ; ábhavatam ; ábhavata ; ábhavathāḥ ; ábhavethām ; ábhavadhvamábhavaḥ ; ábhavatam ; ábhavata ; ábhavathāḥ ; ábhavethām ; ábhavadhvam
Passedbhávate impf 3ábhavat ; ábhavatām ; ábhavan ; ábhavata ; ábhavetām ; ábhavantaábhavat ; ábhavatām ; ábhavan ; ábhavata ; ábhavetām ; ábhavanta
Passedbhávate inj 1bhávam ; bhávāva ; bhávāma ; bháve ; bhávāvahi ; bhávāmahibhávam ; bhávāva ; bhávāma ; bháve ; bhávāvahi ; bhávāmahi
Passedbhávate inj 2bhávaḥ ; bhávatam ; bhávata ; bhávathāḥ ; bhávethām ; bhávadhvambhávaḥ ; bhávatam ; bhávata ; bhávathāḥ ; bhávethām ; bhávadhvam
Passedbhávate inj 3bhávat ; bhávatām ; bhávan ; bhávata ; bhávetām ; bhávantabhávat ; bhávatām ; bhávan ; bhávata ; bhávetām ; bhávanta
pesati (not a Whitney table) uses no_retroflex_root_s
Failedpesati (not a Whitney table) pres 1pesāmi ; pesāvaḥ ; pesāmaḥpesāmi ; pesāvaḥ ; pesāmaḥ pesāmasi
Passedpesati (not a Whitney table) pres 2pesasi ; pesathaḥ ; pesathapesasi ; pesathaḥ ; pesatha
Passedpesati (not a Whitney table) pres 3pesati ; pesataḥ ; pesantipesati ; pesataḥ ; pesanti
With irregularities:
Passedbhavati impr 1bhávāni ; bhávāva ; bhávāma ; bhávai ; bhávāvahai ; bhávāmahaibhávāni ; bhávāva ; bhávāma ; bhávai ; bhávāvahai ; bhávāmahai
Failedbhavati impr 2bháva bhávatāt ; bhávatam ; bhávata ; bhávasva ; bhávethām ; bhávadhvambháva ; bhávatam ; bhávata ; bhávasva ; bhávethām ; bhávadhvam
Passedbhavati impr 3bhávatu ; bhávatām ; bhávantu ; bhávatām ; bhávetām ; bhávantāmbhávatu ; bhávatām ; bhávantu ; bhávatām ; bhávetām ; bhávantām
TextExpectedActual
test_class_10:
Failedcintáyati pres 1cintáyāmi ; cintáyāvaḥ ; cintáyāmaḥ ; cintáye ; cintáyāvahe ; cintáyāmahecintáyāmi ; cintáyāvaḥ ; cintáyāmaḥ cintáyāmasi ; cintáye ; cintáyāvahe ; cintáyāmahe
Passedcintáyati pres 2cintáyasi ; cintáyathaḥ ; cintáyatha ; cintáyase ; cintáyethe ; cintáyadhvecintáyasi ; cintáyathaḥ ; cintáyatha ; cintáyase ; cintáyethe ; cintáyadhve
Passedcintáyati pres 3cintáyati ; cintáyataḥ ; cintáyanti ; cintáyate ; cintáyete ; cintáyantecintáyati ; cintáyataḥ ; cintáyanti ; cintáyate ; cintáyete ; cintáyante
Passedcintáyati opt 1cintáyeyam ; cintáyeva ; cintáyema ; cintáyeya ; cintáyevahi ; cintáyemahicintáyeyam ; cintáyeva ; cintáyema ; cintáyeya ; cintáyevahi ; cintáyemahi
Passedcintáyati opt 2cintáyeḥ ; cintáyetam ; cintáyeta ; cintáyethāḥ ; cintáyeyāthām ; cintáyedhvamcintáyeḥ ; cintáyetam ; cintáyeta ; cintáyethāḥ ; cintáyeyāthām ; cintáyedhvam
Passedcintáyati opt 3cintáyet ; cintáyetām ; cintáyeyuḥ ; cintáyeta ; cintáyeyātām ; cintáyerancintáyet ; cintáyetām ; cintáyeyuḥ ; cintáyeta ; cintáyeyātām ; cintáyeran
Passedcintáyati impr 1cintáyāni ; cintáyāva ; cintáyāma ; cintáyai ; cintáyāvahai ; cintáyāmahaicintáyāni ; cintáyāva ; cintáyāma ; cintáyai ; cintáyāvahai ; cintáyāmahai
Passedcintáyati impr 2cintáya ; cintáyatam ; cintáyata ; cintáyasva ; cintáyethām ; cintáyadhvamcintáya ; cintáyatam ; cintáyata ; cintáyasva ; cintáyethām ; cintáyadhvam
Passedcintáyati impr 3cintáyatu ; cintáyatām ; cintáyantu ; cintáyatām ; cintáyetām ; cintáyantāmcintáyatu ; cintáyatām ; cintáyantu ; cintáyatām ; cintáyetām ; cintáyantām
Passedcintáyati impf 1ácintayam ; ácintayāva ; ácintayāma ; ácintaye ; ácintayāvahi ; ácintayāmahiácintayam ; ácintayāva ; ácintayāma ; ácintaye ; ácintayāvahi ; ácintayāmahi
Passedcintáyati impf 2ácintayaḥ ; ácintayatam ; ácintayata ; ácintayathāḥ ; ácintayethām ; ácintayadhvamácintayaḥ ; ácintayatam ; ácintayata ; ácintayathāḥ ; ácintayethām ; ácintayadhvam
Passedcintáyati impf 3ácintayat ; ácintayatām ; ácintayan ; ácintayata ; ácintayetām ; ácintayantaácintayat ; ácintayatām ; ácintayan ; ácintayata ; ácintayetām ; ácintayanta
Passedcintáyati inj 1cintáyam ; cintáyāva ; cintáyāma ; cintáye ; cintáyāvahi ; cintáyāmahicintáyam ; cintáyāva ; cintáyāma ; cintáye ; cintáyāvahi ; cintáyāmahi
Passedcintáyati inj 2cintáyaḥ ; cintáyatam ; cintáyata ; cintáyathāḥ ; cintáyethām ; cintáyadhvamcintáyaḥ ; cintáyatam ; cintáyata ; cintáyathāḥ ; cintáyethām ; cintáyadhvam
Passedcintáyati inj 3cintáyat ; cintáyatām ; cintáyan ; cintáyata ; cintáyetām ; cintáyantacintáyat ; cintáyatām ; cintáyan ; cintáyata ; cintáyetām ; cintáyanta
Failedcintáyati act part cintáyantcintáyat
Whitney e.g. Para 741 cites participles in strong form. See discussion.
Passedcintáyati mid part cintáyamāna cintayānacintáyamāna cintayāna
Failedvisarjayati (not a Whitney table) pres 1visarjayāmi ; visarjayāvaḥ ; visarjayāmaḥvisarjayāmi ; visarjayāvaḥ ; visarjayāmaḥ visarjayāmasi
Passedvisarjayati (not a Whitney table) pres 2visarjayasi ; visarjayathaḥ ; visarjayathavisarjayasi ; visarjayathaḥ ; visarjayatha
Passedvisarjayati (not a Whitney table) pres 3visarjayati ; visarjayataḥ ; visarjayantivisarjayati ; visarjayataḥ ; visarjayanti
TextExpectedActual
test_class_2:
Passedfull extracting éti impf 1ā́yam ; aíva ; aímaā́yam ; aíva ; aíma
Passedfull extracting éti impf 2aíḥ ; aítam ; aítaaíḥ ; aítam ; aíta
Passedfull extracting éti impf 3aít ; aítām ; ā́yanaít ; aítām ; ā́yan
explicit weak lemma: éti uses detAt
Failedexplicit weak lemma: éti pres 1émi ; iváḥ ; imáḥémi ; iváḥ ; imáḥ imási
Passedexplicit weak lemma: éti pres 2éṣi ; itháḥ ; itháéṣi ; itháḥ ; ithá
Passedexplicit weak lemma: éti pres 3éti ; itáḥ ; yántiéti ; itáḥ ; yánti
Passedexplicit weak lemma: éti opt 1iyā́m ; iyā́va ; iyā́maiyā́m ; iyā́va ; iyā́ma
Passedexplicit weak lemma: éti opt 2iyā́ḥ ; iyā́tam ; iyā́taiyā́ḥ ; iyā́tam ; iyā́ta
Passedexplicit weak lemma: éti opt 3iyā́t ; iyā́tām ; iyúḥiyā́t ; iyā́tām ; iyúḥ
Passedexplicit weak lemma: éti impr 1áyāni ; áyāva ; áyāmaáyāni ; áyāva ; áyāma
Passedexplicit weak lemma: éti impr 2ihí ; itám ; itáihí ; itám ; itá
Passedexplicit weak lemma: éti impr 3étu ; itā́m ; yántuétu ; itā́m ; yántu
Passedexplicit weak lemma: éti impf 1ā́yam ; aíva ; aímaā́yam ; aíva ; aíma
Passedexplicit weak lemma: éti impf 2aíḥ ; aítam ; aítaaíḥ ; aítam ; aíta
Passedexplicit weak lemma: éti impf 3aít ; aítām ; ā́yanaít ; aítām ; ā́yan
Failedexplicit weak lemma: éti part yántt
Whitney e.g. Para 741 cites participles in strong form. See discussion.
PassedRegularised ā́ste pres 1ā́se ; ā́svahe ; ā́smaheā́se ; ā́svahe ; ā́smahe
PassedRegularised ā́ste pres 2ā́sse ; ā́sāthe ; ā́ddhveā́sse ; ā́sāthe ; ā́ddhve
PassedRegularised ā́ste pres 3ā́ste ; ā́sāte ; ā́sateā́ste ; ā́sāte ; ā́sate
PassedRegularised ā́ste opt 1ā́sīya ; ā́sīvahi ; ā́sīmahiā́sīya ; ā́sīvahi ; ā́sīmahi
PassedRegularised ā́ste opt 2ā́sīthāḥ ; ā́sīyāthām ; ā́sīdhvamā́sīthāḥ ; ā́sīyāthām ; ā́sīdhvam
PassedRegularised ā́ste opt 3ā́sīta ; ā́sīyātām ; ā́sīranā́sīta ; ā́sīyātām ; ā́sīran
PassedRegularised ā́ste impr 1ā́sai ; ā́sāvahai ; ā́sāmahaiā́sai ; ā́sāvahai ; ā́sāmahai
PassedRegularised ā́ste impr 2ā́ssva ; ā́sāthām ; ā́ddhvamā́ssva ; ā́sāthām ; ā́ddhvam
PassedRegularised ā́ste impr 3ā́stām ; ā́sātām ; ā́satāmā́stām ; ā́sātām ; ā́satām
PassedRegularised ā́ste impf 1ā́si ; ā́svahi ; ā́smahiā́si ; ā́svahi ; ā́smahi
PassedRegularised ā́ste impf 2ā́sthāḥ ; ā́sāthām ; ā́ddhvamā́sthāḥ ; ā́sāthām ; ā́ddhvam
PassedRegularised ā́ste impf 3ā́sta ; ā́sātām ; ā́sataā́sta ; ā́sātām ; ā́sata
PassedRegularised ā́ste part ā́sānaā́sāna
dvéṣṭi uses detAt
Faileddvéṣṭi pres 1dvéṣmi ; dviṣváḥ ; dviṣmáḥ ; dviṣé ; dviṣváhe ; dviṣmáhedvéṣmi ; dviṣváḥ ; dviṣmáḥ dviṣmási ; dviṣé ; dviṣváhe ; dviṣmáhe
Passeddvéṣṭi pres 2dvékṣi ; dviṣṭháḥ ; dviṣṭhá ; dvikṣé ; dviṣā́the ; dviḍḍhvédvékṣi ; dviṣṭháḥ ; dviṣṭhá ; dvikṣé ; dviṣā́the ; dviḍḍhvé
Passeddvéṣṭi pres 3dvéṣṭi ; dviṣṭáḥ ; dviṣánti ; dviṣṭé ; dviṣā́te ; dviṣátedvéṣṭi ; dviṣṭáḥ ; dviṣánti ; dviṣṭé ; dviṣā́te ; dviṣáte
Passeddvéṣṭi opt 1dviṣyā́m ; dviṣyā́va ; dviṣyā́ma ; dviṣīyá ; dviṣīváhi ; dviṣīmáhidviṣyā́m ; dviṣyā́va ; dviṣyā́ma ; dviṣīyá ; dviṣīváhi ; dviṣīmáhi
Passeddvéṣṭi opt 2dviṣyā́ḥ ; dviṣyā́tam ; dviṣyā́ta ; dviṣīthā́ḥ ; dviṣīyā́thām ; dviṣīdhvámdviṣyā́ḥ ; dviṣyā́tam ; dviṣyā́ta ; dviṣīthā́ḥ ; dviṣīyā́thām ; dviṣīdhvám
Passeddvéṣṭi opt 3dviṣyā́t ; dviṣyā́tām ; dviṣyúḥ ; dviṣītá ; dviṣīyā́tām ; dviṣīrándviṣyā́t ; dviṣyā́tām ; dviṣyúḥ ; dviṣītá ; dviṣīyā́tām ; dviṣīrán
Passeddvéṣṭi impr 1dvéṣāṇi ; dvéṣāva ; dvéṣāma ; dvéṣai ; dvéṣāvahai ; dvéṣāmahaidvéṣāṇi ; dvéṣāva ; dvéṣāma ; dvéṣai ; dvéṣāvahai ; dvéṣāmahai
Passeddvéṣṭi impr 2dviḍḍhí ; dviṣṭám ; dviṣṭá ; dvikṣvá ; dviṣā́thām ; dviḍḍhvámdviḍḍhí ; dviṣṭám ; dviṣṭá ; dvikṣvá ; dviṣā́thām ; dviḍḍhvám
Passeddvéṣṭi impr 3dvéṣṭu ; dviṣṭā́m ; dviṣántu ; dviṣṭā́m ; dviṣā́tām ; dviṣátāmdvéṣṭu ; dviṣṭā́m ; dviṣántu ; dviṣṭā́m ; dviṣā́tām ; dviṣátām
Passeddvéṣṭi impf 1ádveṣam ; ádviṣva ; ádviṣma ; ádviṣi ; ádviṣvahi ; ádviṣmahiádveṣam ; ádviṣva ; ádviṣma ; ádviṣi ; ádviṣvahi ; ádviṣmahi
Passeddvéṣṭi impf 2ádveṭ ; ádviṣṭam ; ádviṣṭa ; ádviṣṭhāḥ ; ádviṣāthām ; ádviḍḍhvamádveṭ ; ádviṣṭam ; ádviṣṭa ; ádviṣṭhāḥ ; ádviṣāthām ; ádviḍḍhvam
Passeddvéṣṭi impf 3ádveṭ ; ádviṣṭām ; ádviṣan ; ádviṣṭa ; ádviṣātām ; ádviṣataádveṭ ; ádviṣṭām ; ádviṣan ; ádviṣṭa ; ádviṣātām ; ádviṣata
Faileddvéṣṭi act part dviṣántdviṣát
Whitney e.g. Para 741 cites participles in strong form. See discussion.
Passeddvéṣṭi mid part dviṣāṇádviṣāṇá
Regularised dógdhi uses h_to_g diaspirate detAt
FailedRegularised dógdhi pres 1dóhmi ; duhváḥ ; duhmáḥ ; duhé ; duhváhe ; duhmáhedóhmi ; duhváḥ ; duhmáḥ duhmási ; duhé ; duhváhe ; duhmáhe
PassedRegularised dógdhi pres 2dhókṣi ; dugdháḥ ; dugdhá ; dhukṣé ; duhā́the ; dhugdhvédhókṣi ; dugdháḥ ; dugdhá ; dhukṣé ; duhā́the ; dhugdhvé
PassedRegularised dógdhi pres 3dógdhi ; dugdháḥ ; duhánti ; dugdhé ; duhā́te ; duhátedógdhi ; dugdháḥ ; duhánti ; dugdhé ; duhā́te ; duháte
PassedRegularised dógdhi opt 1duhyā́m ; duhyā́va ; duhyā́ma ; duhīyá ; duhīváhi ; duhīmáhiduhyā́m ; duhyā́va ; duhyā́ma ; duhīyá ; duhīváhi ; duhīmáhi
PassedRegularised dógdhi opt 2duhyā́ḥ ; duhyā́tam ; duhyā́ta ; duhīthā́ḥ ; duhīyā́thām ; duhīdhvámduhyā́ḥ ; duhyā́tam ; duhyā́ta ; duhīthā́ḥ ; duhīyā́thām ; duhīdhvám
PassedRegularised dógdhi opt 3duhyā́t ; duhyā́tām ; duhyúḥ ; duhītá ; duhīyā́tām ; duhīránduhyā́t ; duhyā́tām ; duhyúḥ ; duhītá ; duhīyā́tām ; duhīrán
PassedRegularised dógdhi impr 1dóhāni ; dóhāva ; dóhāma ; dóhai ; dóhāvahai ; dóhāmahaidóhāni ; dóhāva ; dóhāma ; dóhai ; dóhāvahai ; dóhāmahai
PassedRegularised dógdhi impr 2dugdhí ; dugdhám ; dugdhá ; dhukṣvá ; duhā́thām ; dhugdhvámdugdhí ; dugdhám ; dugdhá ; dhukṣvá ; duhā́thām ; dhugdhvám
PassedRegularised dógdhi impr 3dógdhu ; dugdhā́m ; duhántu ; dugdhā́m ; duhā́tām ; duhátāmdógdhu ; dugdhā́m ; duhántu ; dugdhā́m ; duhā́tām ; duhátām
PassedRegularised dógdhi impf 1ádoham ; áduhva ; áduhma ; áduhi ; áduhvahi ; áduhmahiádoham ; áduhva ; áduhma ; áduhi ; áduhvahi ; áduhmahi
PassedRegularised dógdhi impf 2ádhok ; ádugdham ; ádugdha ; ádugdhāḥ ; áduhāthām ; ádhugdhvamádhok ; ádugdham ; ádugdha ; ádugdhāḥ ; áduhāthām ; ádhugdhvam
PassedRegularised dógdhi impf 3ádhok ; ádugdhām ; áduhan ; ádugdha ; áduhātām ; áduhataádhok ; ádugdhām ; áduhan ; ádugdha ; áduhātām ; áduhata
FailedRegularised dógdhi act part duhántduhát
Whitney e.g. Para 741 cites participles in strong form. See discussion.
PassedRegularised dógdhi mid part duhānáduhāná
léḍhi uses detAt
Failedléḍhi pres 1léhmi ; lihváḥ ; lihmáḥ ; lihé ; lihváhe ; lihmáheléhmi ; lihváḥ ; lihmáḥ lihmási ; lihé ; lihváhe ; lihmáhe
Passedléḍhi pres 2lékṣi ; līḍháḥ ; līḍhá ; likṣé ; lihā́the ; līḍhvélékṣi ; līḍháḥ ; līḍhá ; likṣé ; lihā́the ; līḍhvé
Passedléḍhi pres 3léḍhi ; līḍháḥ ; lihánti ; līḍhé ; lihā́te ; liháteléḍhi ; līḍháḥ ; lihánti ; līḍhé ; lihā́te ; liháte
Passedléḍhi opt 1lihyā́m ; lihyā́va ; lihyā́ma ; lihīyá ; lihīváhi ; lihīmáhilihyā́m ; lihyā́va ; lihyā́ma ; lihīyá ; lihīváhi ; lihīmáhi
Passedléḍhi opt 2lihyā́ḥ ; lihyā́tam ; lihyā́ta ; lihīthā́ḥ ; lihīyā́thām ; lihīdhvámlihyā́ḥ ; lihyā́tam ; lihyā́ta ; lihīthā́ḥ ; lihīyā́thām ; lihīdhvám
Passedléḍhi opt 3lihyā́t ; lihyā́tām ; lihyúḥ ; lihītá ; lihīyā́tām ; lihīránlihyā́t ; lihyā́tām ; lihyúḥ ; lihītá ; lihīyā́tām ; lihīrán
Passedléḍhi impr 1léhāni ; léhāva ; léhāma ; léhai ; léhāvahai ; léhāmahailéhāni ; léhāva ; léhāma ; léhai ; léhāvahai ; léhāmahai
Passedléḍhi impr 2līḍhí ; līḍhám ; līḍhá ; likṣvá ; lihā́thām ; līḍhvámlīḍhí ; līḍhám ; līḍhá ; likṣvá ; lihā́thām ; līḍhvám
Passedléḍhi impr 3léḍhu ; līḍhā́m ; lihántu ; līḍhā́m ; lihā́tām ; lihátāmléḍhu ; līḍhā́m ; lihántu ; līḍhā́m ; lihā́tām ; lihátām
Passedléḍhi impf 1áleham ; álihva ; álihma ; álihi ; álihvahi ; álihmahiáleham ; álihva ; álihma ; álihi ; álihvahi ; álihmahi
Passedléḍhi impf 2áleṭ ; álīḍham ; álīḍha ; álīḍhāḥ ; álihāthām ; álīḍhvamáleṭ ; álīḍham ; álīḍha ; álīḍhāḥ ; álihāthām ; álīḍhvam
Passedléḍhi impf 3áleṭ ; álīḍhām ; álihan ; álīḍha ; álihātām ; álihataáleṭ ; álīḍhām ; álihan ; álīḍha ; álihātām ; álihata
Failedléḍhi act part lihántlihát
Whitney e.g. Para 741 cites participles in strong form. See discussion.
Passedléḍhi mid part lihānálihāná
ásti uses detAt
Failedásti pres 1ásmi ; sváḥ sva ; smáḥ smaásmi ; sváḥ ; smáḥ smási
Failedásti pres 2ási ; stháḥ ; sthá sthánaássi ; stháḥ ; sthá
Passedásti pres 3ásti ; stáḥ ; sántiásti ; stáḥ ; sánti
Failedásti opt 1syā́m ; syā́va syāvaḥ ; syā́ma syāmaḥsyā́m ; syā́va ; syā́ma
Passedásti opt 2syā́ḥ ; syā́tam ; syā́tasyā́ḥ ; syā́tam ; syā́ta
Passedásti opt 3syā́t ; syā́tām ; syúḥsyā́t ; syā́tām ; syúḥ
Passedásti impr 1ásāni ; ásāva ; ásāmaásāni ; ásāva ; ásāma
Failedásti impr 2edhí ; stám ; stá
Whitney Para 740 mentions ony 2s, not 3s, in -tāt.
dhí ; stám ; stá
Passedásti impr 3ástu ; stā́m ; sántuástu ; stā́m ; sántu
Passedásti impf 1ā́sam ; ā́sva ; ā́smaā́sam ; ā́sva ; ā́sma
Failedásti impf 2ā́sīḥ ā́ḥ ; ā́stam ; ā́staā́sīḥ ; ā́stam ; ā́sta
Failedásti impf 3ā́sīt ā́ḥ ; ā́stām ; ā́sanā́sīt ; ā́stām ; ā́san
Failedásti part sántt
Whitney e.g. Para 741 cites participles in strong form. See discussion.
asti uses detAt
Failedasti pres 1asmi ; svaḥ sva ; smaḥ smaasmi ; svaḥ ; smaḥ smasi
Failedasti pres 2asi ; sthaḥ ; stha sthanaassi ; sthaḥ ; stha
Passedasti pres 3asti ; staḥ ; santiasti ; staḥ ; santi
Failedasti opt 1syām ; syāva syāvaḥ ; syāma syāmaḥsyām ; syāva ; syāma
Passedasti opt 2syāḥ ; syātam ; syātasyāḥ ; syātam ; syāta
Passedasti opt 3syāt ; syātām ; syuḥsyāt ; syātām ; syuḥ
Passedasti impr 1asāni ; asāva ; asāmaasāni ; asāva ; asāma
Failedasti impr 2edhi ; stam ; sta
Whitney Para 740 mentions ony 2s, not 3s, in -tāt.
dhi ; stam ; sta
Passedasti impr 3astu ; stām ; santuastu ; stām ; santu
Passedasti impf 1āsam ; āsva ; āsmaāsam ; āsva ; āsma
Failedasti impf 2āsīḥ āḥ ; āstam ; āstaāsīḥ ; āstam ; āsta
Failedasti impf 3āsīt āḥ ; āstām ; āsanāsīt ; āstām ; āsan
Failedasti part santsat
Whitney e.g. Para 741 cites participles in strong form. See discussion.
hánti uses wpres=<ha> wpast=<áha> fp_pres=han fp_past=áhan
Failedhánti pres 1hánmi ; hanváḥ ; hanmáḥ ; ghné ; hanváhe ; hanmáhehánmi ; hanváḥ ; hanmáḥ hanmási ; ghné ; hanváhe ; hanmáhe
Passedhánti pres 2háṃsi ; hatháḥ ; hathá ; hasé ; ghnā́the ; hadhvéháṃsi ; hatháḥ ; hathá ; hasé ; ghnā́the ; hadhvé
Passedhánti pres 3hánti ; hatáḥ ; ghnánti ; haté ; ghnā́te ; ghnátehánti ; hatáḥ ; ghnánti ; haté ; ghnā́te ; ghnáte
Passedhánti opt 1hanyā́m ; hanyā́va ; hanyā́ma ; ghnīyá ; ghnīváhi ; ghnīmáhihanyā́m ; hanyā́va ; hanyā́ma ; ghnīyá ; ghnīváhi ; ghnīmáhi
Passedhánti opt 2hanyā́ḥ ; hanyā́tam ; hanyā́ta ; ghnīthā́ḥ ; ghnīyā́thām ; ghnīdhvámhanyā́ḥ ; hanyā́tam ; hanyā́ta ; ghnīthā́ḥ ; ghnīyā́thām ; ghnīdhvám
Failedhánti opt 3hanyā́t ; hanyā́tām ; hanyúḥ ; ghnītá hanītá ; ghnīyā́tām ; ghnīránhanyā́t ; hanyā́tām ; hanyúḥ ; ghnītá ; ghnīyā́tām ; ghnīrán
Passedhánti impr 1hánāni ; hánāva ; hánāma ; hánai ; hánāvahai ; hánāmahaihánāni ; hánāva ; hánāma ; hánai ; hánāvahai ; hánāmahai
Failedhánti impr 2jahí hatāt ; hatám ; hatá ; hasvá ; ghnā́thām ; hadhvámhahí ; hatám ; hatá ; hasvá ; ghnā́thām ; hadhvám
Passedhánti impr 3hántu ; hatā́m ; ghnántu ; hatā́m ; ghnā́tām ; ghnátāmhántu ; hatā́m ; ghnántu ; hatā́m ; ghnā́tām ; ghnátām
Passedhánti impf 1áhanam ; áhanva ; áhanma ; ághni ; áhanvahi ; áhanmahiáhanam ; áhanva ; áhanma ; ághni ; áhanvahi ; áhanmahi
Passedhánti impf 2áhan ; áhatam ; áhata ; áhathāḥ ; ághnāthām ; áhadhvamáhan ; áhatam ; áhata ; áhathāḥ ; ághnāthām ; áhadhvam
Failedhánti impf 3áhan ; áhatām ; ághnan ; áhata ; ághnātām ; ághnata áhataáhan ; áhatām ; ághnan ; áhata ; ághnātām ; ághnata
Failedhánti act part ghnántghnát
Whitney e.g. Para 741 cites participles in strong form. See discussion.
Passedhánti mid part ghnānághnāná
hanti uses wpres=<ha> wpast=<aha> fp_pres=han fp_past=ahan
Failedhanti pres 1hanmi ; hanvaḥ ; hanmaḥ ; ghne ; hanvahe ; hanmahehanmi ; hanvaḥ ; hanmaḥ hanmasi ; ghne ; hanvahe ; hanmahe
Passedhanti pres 2haṃsi ; hathaḥ ; hatha ; hase ; ghnāthe ; hadhvehaṃsi ; hathaḥ ; hatha ; hase ; ghnāthe ; hadhve
Passedhanti pres 3hanti ; hataḥ ; ghnanti ; hate ; ghnāte ; ghnatehanti ; hataḥ ; ghnanti ; hate ; ghnāte ; ghnate
Passedhanti opt 1hanyām ; hanyāva ; hanyāma ; ghnīya ; ghnīvahi ; ghnīmahihanyām ; hanyāva ; hanyāma ; ghnīya ; ghnīvahi ; ghnīmahi
Passedhanti opt 2hanyāḥ ; hanyātam ; hanyāta ; ghnīthāḥ ; ghnīyāthām ; ghnīdhvamhanyāḥ ; hanyātam ; hanyāta ; ghnīthāḥ ; ghnīyāthām ; ghnīdhvam
Failedhanti opt 3hanyāt ; hanyātām ; hanyuḥ ; ghnīta hanīta ; ghnīyātām ; ghnīranhanyāt ; hanyātām ; hanyuḥ ; ghnīta ; ghnīyātām ; ghnīran
Passedhanti impr 1hanāni ; hanāva ; hanāma ; hanai ; hanāvahai ; hanāmahaihanāni ; hanāva ; hanāma ; hanai ; hanāvahai ; hanāmahai
Failedhanti impr 2jahi hatāt ; hatam ; hata ; hasva ; ghnāthām ; hadhvamhahi ; hatam ; hata ; hasva ; ghnāthām ; hadhvam
Passedhanti impr 3hantu ; hatām ; ghnantu ; hatām ; ghnātām ; ghnatāmhantu ; hatām ; ghnantu ; hatām ; ghnātām ; ghnatām
Passedhanti impf 1ahanam ; ahanva ; ahanma ; aghni ; ahanvahi ; ahanmahiahanam ; ahanva ; ahanma ; aghni ; ahanvahi ; ahanmahi
Passedhanti impf 2ahan ; ahatam ; ahata ; ahathāḥ ; aghnāthām ; ahadhvamahan ; ahatam ; ahata ; ahathāḥ ; aghnāthām ; ahadhvam
Failedhanti impf 3ahan ; ahatām ; aghnan ; ahata ; aghnātām ; aghnata ahataahan ; ahatām ; aghnan ; ahata ; aghnātām ; aghnata
Failedhanti act part ghnantghnat
Whitney e.g. Para 741 cites participles in strong form. See discussion.
Passedhanti mid part ghnānaghnāna
With irregularities:
Failedā́ste part ā́sīna āsānáā́sāna
dógdhi uses h_to_g diaspirate spres=<dóh> spast=<ádoh>
Faileddógdhi mid part duhāná dúhāna dúghānaduhāná
TextExpectedActual
test_class_3:
juhóti uses wpast=<ájuhu> detAt
Failedjuhóti pres 1juhómi ; juhuváḥ ; juhumáḥ ; júhve ; juhuváhe ; juhumáhejuhómi ; juhuváḥ ; juhumáḥ juhumási ; júhve ; juhuváhe ; juhumáhe
Passedjuhóti pres 2juhóṣi ; juhutháḥ ; juhuthá ; juhuṣé ; júhvāthe ; juhudhvéjuhóṣi ; juhutháḥ ; juhuthá ; juhuṣé ; júhvāthe ; juhudhvé
Passedjuhóti pres 3juhóti ; juhutáḥ ; júhvati ; juhuté ; júhvāte ; júhvatejuhóti ; juhutáḥ ; júhvati ; juhuté ; júhvāte ; júhvate
Passedjuhóti opt 1juhuyā́m ; juhuyā́va ; juhuyā́ma ; júhvīya ; júhvīvahi ; júhvīmahijuhuyā́m ; juhuyā́va ; juhuyā́ma ; júhvīya ; júhvīvahi ; júhvīmahi
Passedjuhóti opt 2juhuyā́ḥ ; juhuyā́tam ; juhuyā́ta ; júhvīthāḥ ; júhvīyāthām ; júhvīdhvamjuhuyā́ḥ ; juhuyā́tam ; juhuyā́ta ; júhvīthāḥ ; júhvīyāthām ; júhvīdhvam
Passedjuhóti opt 3juhuyā́t ; juhuyā́tām ; juhuyúḥ ; júhvīta ; júhvīyātām ; júhvīranjuhuyā́t ; juhuyā́tām ; juhuyúḥ ; júhvīta ; júhvīyātām ; júhvīran
Passedjuhóti impr 1juhávāni ; juhávāva ; juhávāma ; juhávai ; juhávāvahai ; juhávāmahaijuhávāni ; juhávāva ; juhávāma ; juhávai ; juhávāvahai ; juhávāmahai
Failedjuhóti impr 2juhudhí ; juhutám ; juhutá ; juhuṣvá ; júhvāthām ; juhudhvám
Whitney reports that in Class 3, -tāt only occurs for 4 roots, and this is not one of them.
juhuhí ; juhutám ; juhutá ; juhuṣvá ; júhvāthām ; juhudhvám
Passedjuhóti impr 3juhótu ; juhutā́m ; júhvatu ; juhutā́m ; júhvātām ; júhvatāmjuhótu ; juhutā́m ; júhvatu ; juhutā́m ; júhvātām ; júhvatām
Passedjuhóti impf 1ájuhavam ; ájuhuva ; ájuhuma ; ájuhvi ; ájuhuvahi ; ájuhumahiájuhavam ; ájuhuva ; ájuhuma ; ájuhvi ; ájuhuvahi ; ájuhumahi
Passedjuhóti impf 2ájuhoḥ ; ájuhutam ; ájuhuta ; ájuhuthāḥ ; ájuhvāthām ; ájuhudhvamájuhoḥ ; ájuhutam ; ájuhuta ; ájuhuthāḥ ; ájuhvāthām ; ájuhudhvam
Passedjuhóti impf 3ájuhot ; ájuhutām ; ájuhavuḥ ; ájuhuta ; ájuhvātām ; ájuhvataájuhot ; ájuhutām ; ájuhavuḥ ; ájuhuta ; ájuhvātām ; ájuhvata
Passedjuhóti act part júhvatjúhvat
Passedjuhóti mid part júhvānajúhvāna
bíbharti uses detAt
Failedbíbharti pres 1bíbharmi ; bibhṛváḥ ; bibhṛmáḥ ; bíbhre ; bibhṛváhe ; bibhṛmáhebíbharmi ; bibhṛváḥ ; bibhṛmáḥ bibhṛmási ; bíbhre ; bibhṛváhe ; bibhṛmáhe
Passedbíbharti pres 2bíbharṣi ; bibhṛtháḥ ; bibhṛthá ; bibhṛṣé ; bíbhrāthe ; bibhṛdhvébíbharṣi ; bibhṛtháḥ ; bibhṛthá ; bibhṛṣé ; bíbhrāthe ; bibhṛdhvé
Passedbíbharti pres 3bíbharti ; bibhṛtáḥ ; bíbhrati ; bibhṛté ; bíbhrāte ; bíbhratebíbharti ; bibhṛtáḥ ; bíbhrati ; bibhṛté ; bíbhrāte ; bíbhrate
Passedbíbharti opt 1bibhṛyā́m ; bibhṛyā́va ; bibhṛyā́ma ; bíbhrīya ; bíbhrīvahi ; bíbhrīmahibibhṛyā́m ; bibhṛyā́va ; bibhṛyā́ma ; bíbhrīya ; bíbhrīvahi ; bíbhrīmahi
Passedbíbharti opt 2bibhṛyā́ḥ ; bibhṛyā́tam ; bibhṛyā́ta ; bíbhrīthāḥ ; bíbhrīyāthām ; bíbhrīdhvambibhṛyā́ḥ ; bibhṛyā́tam ; bibhṛyā́ta ; bíbhrīthāḥ ; bíbhrīyāthām ; bíbhrīdhvam
Passedbíbharti opt 3bibhṛyā́t ; bibhṛyā́tām ; bibhṛyúḥ ; bíbhrīta ; bíbhrīyātām ; bíbhrīranbibhṛyā́t ; bibhṛyā́tām ; bibhṛyúḥ ; bíbhrīta ; bíbhrīyātām ; bíbhrīran
Passedbíbharti impr 1bíbharāṇi ; bíbharāva ; bíbharāma ; bíbharai ; bíbharāvahai ; bíbharāmahaibíbharāṇi ; bíbharāva ; bíbharāma ; bíbharai ; bíbharāvahai ; bíbharāmahai
Passedbíbharti impr 2bibhṛhí ; bibhṛtám ; bibhṛtá ; bibhṛṣvá ; bíbhrāthām ; bibhṛdhvámbibhṛhí ; bibhṛtám ; bibhṛtá ; bibhṛṣvá ; bíbhrāthām ; bibhṛdhvám
Passedbíbharti impr 3bíbhartu ; bibhṛtā́m ; bíbhratu ; bibhṛtā́m ; bíbhrātām ; bíbhratāmbíbhartu ; bibhṛtā́m ; bíbhratu ; bibhṛtā́m ; bíbhrātām ; bíbhratām
Passedbíbharti impf 1ábibharam ; ábibhṛva ; ábibhṛma ; ábibhri ; ábibhṛvahi ; ábibhṛmahiábibharam ; ábibhṛva ; ábibhṛma ; ábibhri ; ábibhṛvahi ; ábibhṛmahi
Passedbíbharti impf 2ábibhaḥ ; ábibhṛtam ; ábibhṛta ; ábibhṛthāḥ ; ábibhrāthām ; ábibhṛdhvamábibhaḥ ; ábibhṛtam ; ábibhṛta ; ábibhṛthāḥ ; ábibhrāthām ; ábibhṛdhvam
Passedbíbharti impf 3ábibhaḥ ; ábibhṛtām ; ábibharuḥ ; ábibhṛta ; ábibhrātām ; ábibhrataábibhaḥ ; ábibhṛtām ; ábibharuḥ ; ábibhṛta ; ábibhrātām ; ábibhrata
Passedbíbharti act part bíbhratbíbhrat
Passedbíbharti mid part bíbhrāṇabíbhrāṇa
Faileddádāti pres 1dádāmi ; dadváḥ ; dadmáḥdádāmi ; dadváḥ ; dadmáḥ dadmási
Passeddádāti pres 2dádāsi ; dattháḥ ; datthádádāsi ; dattháḥ ; datthá
Passeddádāti pres 3dádāti ; dattáḥ ; dádatidádāti ; dattáḥ ; dádati
Passeddádāti opt 1dadyā́m ; dadyā́va ; dadyā́madadyā́m ; dadyā́va ; dadyā́ma
Passeddádāti opt 2dadyā́ḥ ; dadyā́tam ; dadyā́tadadyā́ḥ ; dadyā́tam ; dadyā́ta
Passeddádāti opt 3dadyā́t ; dadyā́tām ; dadyúḥdadyā́t ; dadyā́tām ; dadyúḥ
Passeddádāti impr 1dádāni ; dádāva ; dádāmadádāni ; dádāva ; dádāma
Faileddádāti impr 2daddhí dattā́t dehí ; dattám ; dattá dádāta dádātanadaddhí ; dattám ; dattá
Passeddádāti impr 3dádātu ; dattā́m ; dádatudádātu ; dattā́m ; dádatu
Passeddádāti impf 1ádadām ; ádadva ; ádadmaádadām ; ádadva ; ádadma
Passeddádāti impf 2ádadāḥ ; ádattam ; ádattaádadāḥ ; ádattam ; ádatta
Passeddádāti impf 3ádadāt ; ádattām ; ádaduḥádadāt ; ádattām ; ádaduḥ
Passeddádāti part dádatdádat
dádāti uses spres=<dádā>
Faileddádāti pres 1dadé ; dádvahe ; dádmahedáde ; dadváhe ; dadmáhe
Faileddádāti pres 2datsé ; dadāthe ; daddhvedatsé ; dádāthe ; daddhvé
Faileddádāti pres 3datté ; dadā́te ; dádatedatté ; dádāte ; dádate
Passeddádāti opt 1dádīya ; dádīvahi ; dádīmahidádīya ; dádīvahi ; dádīmahi
Passeddádāti opt 2dádīthāḥ ; dádīyāthām ; dádīdhvamdádīthāḥ ; dádīyāthām ; dádīdhvam
Passeddádāti opt 3dádīta ; dádīyātām ; dádīrandádīta ; dádīyātām ; dádīran
Passeddádāti impr 1dádai ; dádāvahai ; dádāmahaidádai ; dádāvahai ; dádāmahai
Passeddádāti impr 2datsvá ; dádāthām ; daddhvámdatsvá ; dádāthām ; daddhvám
Passeddádāti impr 3dattā́m ; dádātām ; dádatāmdattā́m ; dádātām ; dádatām
Passeddádāti impf 1ádadi ; ádadvahi ; ádadmahiádadi ; ádadvahi ; ádadmahi
Passeddádāti impf 2ádatthāḥ ; ádadāthām ; ádaddhvamádatthāḥ ; ádadāthām ; ádaddhvam
Passeddádāti impf 3ádatta ; ádadātām ; ádadataádatta ; ádadātām ; ádadata
Passeddádāti part dádānadádāna
Faileddadāti pres 1dadāmi ; dadvaḥ ; dadmaḥ ; dade ; dadvahe ; dadmahedadāmi ; dadvaḥ ; dadmaḥ dadmasi ; dade ; dadvahe ; dadmahe
Passeddadāti pres 2dadāsi ; datthaḥ ; dattha ; datse ; dadāthe ; daddhvedadāsi ; datthaḥ ; dattha ; datse ; dadāthe ; daddhve
Passeddadāti pres 3dadāti ; dattaḥ ; dadati ; datte ; dadāte ; dadatedadāti ; dattaḥ ; dadati ; datte ; dadāte ; dadate
Passeddadāti opt 1dadyām ; dadyāva ; dadyāma ; dadīya ; dadīvahi ; dadīmahidadyām ; dadyāva ; dadyāma ; dadīya ; dadīvahi ; dadīmahi
Passeddadāti opt 2dadyāḥ ; dadyātam ; dadyāta ; dadīthāḥ ; dadīyāthām ; dadīdhvamdadyāḥ ; dadyātam ; dadyāta ; dadīthāḥ ; dadīyāthām ; dadīdhvam
Passeddadāti opt 3dadyāt ; dadyātām ; dadyuḥ ; dadīta ; dadīyātām ; dadīrandadyāt ; dadyātām ; dadyuḥ ; dadīta ; dadīyātām ; dadīran
Passeddadāti impr 1dadāni ; dadāva ; dadāma ; dadai ; dadāvahai ; dadāmahaidadāni ; dadāva ; dadāma ; dadai ; dadāvahai ; dadāmahai
Faileddadāti impr 2daddhi dattāt dehi ; dattam ; datta dadāta dadātana ; datsva ; dadāthām ; daddhvamdaddhi ; dattam ; datta ; datsva ; dadāthām ; daddhvam
Passeddadāti impr 3dadātu ; dattām ; dadatu ; dattām ; dadātām ; dadatāmdadātu ; dattām ; dadatu ; dattām ; dadātām ; dadatām
Passeddadāti impf 1adadām ; adadva ; adadma ; adadi ; adadvahi ; adadmahiadadām ; adadva ; adadma ; adadi ; adadvahi ; adadmahi
Passeddadāti impf 2adadāḥ ; adattam ; adatta ; adatthāḥ ; adadāthām ; adaddhvamadadāḥ ; adattam ; adatta ; adatthāḥ ; adadāthām ; adaddhvam
Passeddadāti impf 3adadāt ; adattām ; adaduḥ ; adatta ; adadātām ; adadataadadāt ; adattām ; adaduḥ ; adatta ; adadātām ; adadata
Passeddadāti act part dadatdadat
Passeddadāti mid part dadānadadāna
dádhāti uses diaspirate
Faileddádhāti pres 1dádhāmi ; dadhváḥ ; dadhmáḥdádhāmi ; dadhváḥ ; dadhmáḥ dadhmási
Faileddádhāti pres 2dádhāsi ; dhattháḥ ; dhatthádádhāsi ; daddháḥ ; daddhá
Faileddádhāti pres 3dádhāti ; dhattáḥ ; dádhatidádhāti ; daddháḥ ; dádhati
Passeddádhāti opt 1dadhyā́m ; dadhyā́va ; dadhyā́madadhyā́m ; dadhyā́va ; dadhyā́ma
Passeddádhāti opt 2dadhyā́ḥ ; dadhyā́tam ; dadhyā́tadadhyā́ḥ ; dadhyā́tam ; dadhyā́ta
Passeddádhāti opt 3dadhyā́t ; dadhyā́tām ; dadhyúḥdadhyā́t ; dadhyā́tām ; dadhyúḥ
Passeddádhāti impr 1dádhāni ; dádhāva ; dádhāmadádhāni ; dádhāva ; dádhāma
Faileddádhāti impr 2daddhí dhattā́t dhehí ; dhattám ; dhattá dhattána dádhāta dádhātanadaddhí ; daddhám ; daddhá
Faileddádhāti impr 3dádhātu ; dhattā́m ; dádhatu
Whitney Para 654 mentions ony 2s, not 3s, in -tāt.
dádhātu ; daddhā́m ; dádhatu
Passeddádhāti impf 1ádadhām ; ádadhva ; ádadhmaádadhām ; ádadhva ; ádadhma
Faileddádhāti impf 2ádadhāḥ ; ádhattam ; ádhattaádadhāḥ ; ádaddham ; ádaddha
Faileddádhāti impf 3ádadhāt ; ádhattām ; ádadhuḥádadhāt ; ádaddhām ; ádadhuḥ
Passeddádhāti part dádhatdádhat
dádhāti uses diaspirate spres=<dádhā>
Faileddádhāti pres 1dadhé ; dádhvahe ; dádhmahedádhe ; dadhváhe ; dadhmáhe
Faileddádhāti pres 2dhatsé ; dadhāthe ; dhaddhvedhatsé ; dádhāthe ; dhaddhvé
Faileddádhāti pres 3dhatté ; dadhā́te ; dádhatedaddhé ; dádhāte ; dádhate
Passeddádhāti opt 1dádhīya ; dádhīvahi ; dádhīmahidádhīya ; dádhīvahi ; dádhīmahi
Passeddádhāti opt 2dádhīthāḥ ; dádhīyāthām ; dádhīdhvamdádhīthāḥ ; dádhīyāthām ; dádhīdhvam
Passeddádhāti opt 3dádhīta ; dádhīyātām ; dádhīrandádhīta ; dádhīyātām ; dádhīran
Passeddádhāti impr 1dádhai ; dádhāvahai ; dádhāmahaidádhai ; dádhāvahai ; dádhāmahai
Faileddádhāti impr 2dhatsva ; dadhāthām ; dhaddhvamdhatsvá ; dádhāthām ; dhaddhvám
Faileddádhāti impr 3dhattām ; dadhātām ; dadhatāmdaddhā́m ; dádhātām ; dádhatām
Passeddádhāti impf 1ádadhi ; ádadhvahi ; ádadhmahiádadhi ; ádadhvahi ; ádadhmahi
Faileddádhāti impf 2ádhatthāḥ ; ádadhāthām ; ádhaddhvamádaddhāḥ ; ádadhāthām ; ádhaddhvam
Faileddádhāti impf 3ádhatta ; ádadhātām ; ádadhataádaddha ; ádadhātām ; ádadhata
Passeddádhāti part dádhānadádhāna
dadhāti uses diaspirate
Faileddadhāti pres 1dadhāmi ; dadhvaḥ ; dadhmaḥ ; dadhe ; dadhvahe ; dadhmahedadhāmi ; dadhvaḥ ; dadhmaḥ dadhmasi ; dadhe ; dadhvahe ; dadhmahe
Faileddadhāti pres 2dadhāsi ; dhatthaḥ ; dhattha ; dhatse ; dadhāthe ; dhaddhvedadhāsi ; daddhaḥ ; daddha ; dhatse ; dadhāthe ; dhaddhve
Faileddadhāti pres 3dadhāti ; dhattaḥ ; dadhati ; dhatte ; dadhāte ; dadhatedadhāti ; daddhaḥ ; dadhati ; daddhe ; dadhāte ; dadhate
Passeddadhāti opt 1dadhyām ; dadhyāva ; dadhyāma ; dadhīya ; dadhīvahi ; dadhīmahidadhyām ; dadhyāva ; dadhyāma ; dadhīya ; dadhīvahi ; dadhīmahi
Passeddadhāti opt 2dadhyāḥ ; dadhyātam ; dadhyāta ; dadhīthāḥ ; dadhīyāthām ; dadhīdhvamdadhyāḥ ; dadhyātam ; dadhyāta ; dadhīthāḥ ; dadhīyāthām ; dadhīdhvam
Passeddadhāti opt 3dadhyāt ; dadhyātām ; dadhyuḥ ; dadhīta ; dadhīyātām ; dadhīrandadhyāt ; dadhyātām ; dadhyuḥ ; dadhīta ; dadhīyātām ; dadhīran
Passeddadhāti impr 1dadhāni ; dadhāva ; dadhāma ; dadhai ; dadhāvahai ; dadhāmahaidadhāni ; dadhāva ; dadhāma ; dadhai ; dadhāvahai ; dadhāmahai
Faileddadhāti impr 2daddhi dhattāt dhehi ; dhattam ; dhatta dhattana dadhāta dadhātana ; dhatsva ; dadhāthām ; dhaddhvamdaddhi ; daddham ; daddha ; dhatsva ; dadhāthām ; dhaddhvam
Faileddadhāti impr 3dadhātu ; dhattām ; dadhatu ; dhattām ; dadhātām ; dadhatām
Whitney Para 654 mentions ony 2s, not 3s, in -tāt.
dadhātu ; daddhām ; dadhatu ; daddhām ; dadhātām ; dadhatām
Passeddadhāti impf 1adadhām ; adadhva ; adadhma ; adadhi ; adadhvahi ; adadhmahiadadhām ; adadhva ; adadhma ; adadhi ; adadhvahi ; adadhmahi
Faileddadhāti impf 2adadhāḥ ; adhattam ; adhatta ; adhatthāḥ ; adadhāthām ; adhaddhvamadadhāḥ ; adaddham ; adaddha ; adaddhāḥ ; adadhāthām ; adhaddhvam
Faileddadhāti impf 3adadhāt ; adhattām ; adadhuḥ ; adhatta ; adadhātām ; adadhataadadhāt ; adaddhām ; adadhuḥ ; adaddha ; adadhātām ; adadhata
Passeddadhāti act part dadhatdadhat
Passeddadhāti mid part dadhānadadhāna
TextExpectedActual
test_class_4:
náhyati uses detAt
Failednáhyati pres 1náhyāmi ; náhyāvaḥ ; náhyāmaḥ ; náhye ; náhyāvahe ; náhyāmahenáhyāmi ; náhyāvaḥ ; náhyāmaḥ náhyāmasi ; náhye ; náhyāvahe ; náhyāmahe
Passednáhyati pres 2náhyasi ; náhyathaḥ ; náhyatha ; náhyase ; náhyethe ; náhyadhvenáhyasi ; náhyathaḥ ; náhyatha ; náhyase ; náhyethe ; náhyadhve
Passednáhyati pres 3náhyati ; náhyataḥ ; náhyanti ; náhyate ; náhyete ; náhyantenáhyati ; náhyataḥ ; náhyanti ; náhyate ; náhyete ; náhyante
Passednáhyati opt 1náhyeyam ; náhyeva ; náhyema ; náhyeya ; náhyevahi ; náhyemahináhyeyam ; náhyeva ; náhyema ; náhyeya ; náhyevahi ; náhyemahi
Passednáhyati opt 2náhyeḥ ; náhyetam ; náhyeta ; náhyethāḥ ; náhyeyāthām ; náhyedhvamnáhyeḥ ; náhyetam ; náhyeta ; náhyethāḥ ; náhyeyāthām ; náhyedhvam
Passednáhyati opt 3náhyet ; náhyetām ; náhyeyuḥ ; náhyeta ; náhyeyātām ; náhyerannáhyet ; náhyetām ; náhyeyuḥ ; náhyeta ; náhyeyātām ; náhyeran
Passednáhyati impr 1náhyāni ; náhyāva ; náhyāma ; náhyai ; náhyāvahai ; náhyāmahaináhyāni ; náhyāva ; náhyāma ; náhyai ; náhyāvahai ; náhyāmahai
Passednáhyati impr 2náhya ; náhyatam ; náhyata ; náhyasva ; náhyethām ; náhyadhvamnáhya ; náhyatam ; náhyata ; náhyasva ; náhyethām ; náhyadhvam
Passednáhyati impr 3náhyatu ; náhyatām ; náhyantu ; náhyatām ; náhyetām ; náhyantāmnáhyatu ; náhyatām ; náhyantu ; náhyatām ; náhyetām ; náhyantām
Passednáhyati impf 1ánahyam ; ánahyāva ; ánahyāma ; ánahye ; ánahyāvahi ; ánahyāmahiánahyam ; ánahyāva ; ánahyāma ; ánahye ; ánahyāvahi ; ánahyāmahi
Passednáhyati impf 2ánahyaḥ ; ánahyatam ; ánahyata ; ánahyathāḥ ; ánahyethām ; ánahyadhvamánahyaḥ ; ánahyatam ; ánahyata ; ánahyathāḥ ; ánahyethām ; ánahyadhvam
Passednáhyati impf 3ánahyat ; ánahyatām ; ánahyan ; ánahyata ; ánahyetām ; ánahyantaánahyat ; ánahyatām ; ánahyan ; ánahyata ; ánahyetām ; ánahyanta
Passednáhyati inj 1náhyam ; náhyāva ; náhyāma ; náhye ; náhyāvahi ; náhyāmahináhyam ; náhyāva ; náhyāma ; náhye ; náhyāvahi ; náhyāmahi
Passednáhyati inj 2náhyaḥ ; náhyatam ; náhyata ; náhyathāḥ ; náhyethām ; náhyadhvamnáhyaḥ ; náhyatam ; náhyata ; náhyathāḥ ; náhyethām ; náhyadhvam
Passednáhyati inj 3náhyat ; náhyatām ; náhyan ; náhyata ; náhyetām ; náhyantanáhyat ; náhyatām ; náhyan ; náhyata ; náhyetām ; náhyanta
Failednáhyati act part náhyantnáhyat
Whitney e.g. Para 741 cites participles in strong form. See discussion.
Passednáhyati mid part náhyamānanáhyamāna
Passedkriyáte pres 1kriyé ; kriyā́vahe ; kriyā́mahekriyé ; kriyā́vahe ; kriyā́mahe
Passedkriyáte pres 2kriyáse ; kriyéthe ; kriyádhvekriyáse ; kriyéthe ; kriyádhve
Passedkriyáte pres 3kriyáte ; kriyéte ; kriyántekriyáte ; kriyéte ; kriyánte
Passedkriyáte opt 1kriyéya ; kriyévahi ; kriyémahikriyéya ; kriyévahi ; kriyémahi
Passedkriyáte opt 2kriyéthāḥ ; kriyéyāthām ; kriyédhvamkriyéthāḥ ; kriyéyāthām ; kriyédhvam
Passedkriyáte opt 3kriyéta ; kriyéyātām ; kriyérankriyéta ; kriyéyātām ; kriyéran
Passedkriyáte impr 1kriyaí ; kriyā́vahai ; kriyā́mahaikriyaí ; kriyā́vahai ; kriyā́mahai
Passedkriyáte impr 2kriyásva ; kriyéthām ; kriyádhvamkriyásva ; kriyéthām ; kriyádhvam
Passedkriyáte impr 3kriyátām ; kriyétām ; kriyántāmkriyátām ; kriyétām ; kriyántām
Passedkriyáte impf 1ákriye ; ákriyāvahi ; ákriyāmahiákriye ; ákriyāvahi ; ákriyāmahi
Passedkriyáte impf 2ákriyathāḥ ; ákriyethām ; ákriyadhvamákriyathāḥ ; ákriyethām ; ákriyadhvam
Passedkriyáte impf 3ákriyata ; ákriyetām ; ákriyantaákriyata ; ákriyetām ; ákriyanta
Passedkriyáte inj 1kriyé ; kriyā́vahi ; kriyā́mahikriyé ; kriyā́vahi ; kriyā́mahi
Passedkriyáte inj 2kriyáthāḥ ; kriyéthām ; kriyádhvamkriyáthāḥ ; kriyéthām ; kriyádhvam
Passedkriyáte inj 3kriyáta ; kriyétām ; kriyántakriyáta ; kriyétām ; kriyánta
Passedkriyáte part kriyámāṇakriyámāṇa
TextExpectedActual
test_class_5:
Regularised sunóti uses detAt
FailedRegularised sunóti pres 1sunómi ; sunváḥ sunuváḥ ; sunmáḥ sunumáḥ ; sunvé ; sunváhe sunuváhe ; sunmáhe sunumáhesunómi ; sunváḥ sunuváḥ ; sunmáḥ sunmási sunumáḥ sunumási ; sunvé ; sunváhe sunuváhe ; sunmáhe sunumáhe
PassedRegularised sunóti pres 2sunóṣi ; sunutháḥ ; sunuthá ; sunuṣé ; sunvā́the ; sunudhvésunóṣi ; sunutháḥ ; sunuthá ; sunuṣé ; sunvā́the ; sunudhvé
PassedRegularised sunóti pres 3sunóti ; sunutáḥ ; sunvánti ; sunuté ; sunvā́te ; sunvátesunóti ; sunutáḥ ; sunvánti ; sunuté ; sunvā́te ; sunváte
PassedRegularised sunóti opt 1sunuyā́m ; sunuyā́va ; sunuyā́ma ; sunvīyá ; sunvīváhi ; sunvīmáhisunuyā́m ; sunuyā́va ; sunuyā́ma ; sunvīyá ; sunvīváhi ; sunvīmáhi
PassedRegularised sunóti opt 2sunuyā́ḥ ; sunuyā́tam ; sunuyā́ta ; sunvīthā́ḥ ; sunvīyā́thām ; sunvīdhvámsunuyā́ḥ ; sunuyā́tam ; sunuyā́ta ; sunvīthā́ḥ ; sunvīyā́thām ; sunvīdhvám
PassedRegularised sunóti opt 3sunuyā́t ; sunuyā́tām ; sunuyúḥ ; sunvītá ; sunvīyā́tām ; sunvīránsunuyā́t ; sunuyā́tām ; sunuyúḥ ; sunvītá ; sunvīyā́tām ; sunvīrán
PassedRegularised sunóti impr 1sunávāni ; sunávāva ; sunávāma ; sunávai ; sunávāvahai ; sunávāmahaisunávāni ; sunávāva ; sunávāma ; sunávai ; sunávāvahai ; sunávāmahai
PassedRegularised sunóti impr 2sunú sunuhí ; sunutám ; sunutá ; sunuṣvá ; sunvā́thām ; sunudhvámsunú sunuhí ; sunutám ; sunutá ; sunuṣvá ; sunvā́thām ; sunudhvám
PassedRegularised sunóti impr 3sunótu ; sunutā́m ; sunvántu ; sunutā́m ; sunvā́tām ; sunvátāmsunótu ; sunutā́m ; sunvántu ; sunutā́m ; sunvā́tām ; sunvátām
PassedRegularised sunóti impf 1ásunavam ; ásunva ásunuva ; ásunma ásunuma ; ásunvi ; ásunvahi ásunuvahi ; ásunmahi ásunumahiásunavam ; ásunva ásunuva ; ásunma ásunuma ; ásunvi ; ásunvahi ásunuvahi ; ásunmahi ásunumahi
PassedRegularised sunóti impf 2ásunoḥ ; ásunutam ; ásunuta ; ásunuthāḥ ; ásunvāthām ; ásunudhvamásunoḥ ; ásunutam ; ásunuta ; ásunuthāḥ ; ásunvāthām ; ásunudhvam
PassedRegularised sunóti impf 3ásunot ; ásunutām ; ásunvan ; ásunuta ; ásunvātām ; ásunvataásunot ; ásunutām ; ásunvan ; ásunuta ; ásunvātām ; ásunvata
FailedRegularised sunóti act part sunvántsunvát
Whitney e.g. Para 741 cites participles in strong form. See discussion.
PassedRegularised sunóti mid part sunvānásunvāná
Regularised śṛṇóti uses detAt
FailedRegularised śṛṇóti pres 1śṛṇómi ; śṛṇváḥ śṛṇuváḥ ; śṛṇmáḥ śṛṇumáḥ ; śṛṇvé ; śṛṇváhe śṛṇuváhe ; śṛṇmáhe śṛṇumáheśṛṇómi ; śṛṇváḥ śṛṇuváḥ ; śṛṇmáḥ śṛṇmási śṛṇumáḥ śṛṇumási ; śṛṇvé ; śṛṇváhe śṛṇuváhe ; śṛṇmáhe śṛṇumáhe
PassedRegularised śṛṇóti pres 2śṛṇóṣi ; śṛṇutháḥ ; śṛṇuthá ; śṛṇuṣé ; śṛṇvā́the ; śṛṇudhvéśṛṇóṣi ; śṛṇutháḥ ; śṛṇuthá ; śṛṇuṣé ; śṛṇvā́the ; śṛṇudhvé
PassedRegularised śṛṇóti pres 3śṛṇóti ; śṛṇutáḥ ; śṛṇvánti ; śṛṇuté ; śṛṇvā́te ; śṛṇváteśṛṇóti ; śṛṇutáḥ ; śṛṇvánti ; śṛṇuté ; śṛṇvā́te ; śṛṇváte
PassedRegularised śṛṇóti opt 1śṛṇuyā́m ; śṛṇuyā́va ; śṛṇuyā́ma ; śṛṇvīyá ; śṛṇvīváhi ; śṛṇvīmáhiśṛṇuyā́m ; śṛṇuyā́va ; śṛṇuyā́ma ; śṛṇvīyá ; śṛṇvīváhi ; śṛṇvīmáhi
PassedRegularised śṛṇóti opt 2śṛṇuyā́ḥ ; śṛṇuyā́tam ; śṛṇuyā́ta ; śṛṇvīthā́ḥ ; śṛṇvīyā́thām ; śṛṇvīdhvámśṛṇuyā́ḥ ; śṛṇuyā́tam ; śṛṇuyā́ta ; śṛṇvīthā́ḥ ; śṛṇvīyā́thām ; śṛṇvīdhvám
PassedRegularised śṛṇóti opt 3śṛṇuyā́t ; śṛṇuyā́tām ; śṛṇuyúḥ ; śṛṇvītá ; śṛṇvīyā́tām ; śṛṇvīránśṛṇuyā́t ; śṛṇuyā́tām ; śṛṇuyúḥ ; śṛṇvītá ; śṛṇvīyā́tām ; śṛṇvīrán
PassedRegularised śṛṇóti impr 1śṛṇávāni ; śṛṇávāva ; śṛṇávāma ; śṛṇávai ; śṛṇávāvahai ; śṛṇávāmahaiśṛṇávāni ; śṛṇávāva ; śṛṇávāma ; śṛṇávai ; śṛṇávāvahai ; śṛṇávāmahai
PassedRegularised śṛṇóti impr 2śṛṇú śṛṇuhí ; śṛṇutám ; śṛṇutá ; śṛṇuṣvá ; śṛṇvā́thām ; śṛṇudhvámśṛṇú śṛṇuhí ; śṛṇutám ; śṛṇutá ; śṛṇuṣvá ; śṛṇvā́thām ; śṛṇudhvám
PassedRegularised śṛṇóti impr 3śṛṇótu ; śṛṇutā́m ; śṛṇvántu ; śṛṇutā́m ; śṛṇvā́tām ; śṛṇvátāmśṛṇótu ; śṛṇutā́m ; śṛṇvántu ; śṛṇutā́m ; śṛṇvā́tām ; śṛṇvátām
PassedRegularised śṛṇóti impf 1áśṛṇavam ; áśṛṇva áśṛṇuva ; áśṛṇma áśṛṇuma ; áśṛṇvi ; áśṛṇvahi áśṛṇuvahi ; áśṛṇmahi áśṛṇumahiáśṛṇavam ; áśṛṇva áśṛṇuva ; áśṛṇma áśṛṇuma ; áśṛṇvi ; áśṛṇvahi áśṛṇuvahi ; áśṛṇmahi áśṛṇumahi
PassedRegularised śṛṇóti impf 2áśṛṇoḥ ; áśṛṇutam ; áśṛṇuta ; áśṛṇuthāḥ ; áśṛṇvāthām ; áśṛṇudhvamáśṛṇoḥ ; áśṛṇutam ; áśṛṇuta ; áśṛṇuthāḥ ; áśṛṇvāthām ; áśṛṇudhvam
PassedRegularised śṛṇóti impf 3áśṛṇot ; áśṛṇutām ; áśṛṇvan ; áśṛṇuta ; áśṛṇvātām ; áśṛṇvataáśṛṇot ; áśṛṇutām ; áśṛṇvan ; áśṛṇuta ; áśṛṇvātām ; áśṛṇvata
FailedRegularised śṛṇóti act part śṛṇvántśṛṇvát
Whitney e.g. Para 741 cites participles in strong form. See discussion.
PassedRegularised śṛṇóti mid part śṛṇvānáśṛṇvāná
āpnóti uses detAt
Failedāpnóti pres 1āpnómi ; āpnuváḥ ; āpnumáḥ ; āpnuvé ; āpnuváhe ; āpnumáheāpnómi ; āpnuváḥ ; āpnumáḥ āpnumási ; āpnuvé ; āpnuváhe ; āpnumáhe
Passedāpnóti pres 2āpnóṣi ; āpnutháḥ ; āpnuthá ; āpnuṣé ; āpnuvā́the ; āpnudhvéāpnóṣi ; āpnutháḥ ; āpnuthá ; āpnuṣé ; āpnuvā́the ; āpnudhvé
Passedāpnóti pres 3āpnóti ; āpnutáḥ ; āpnuvánti ; āpnuté ; āpnuvā́te ; āpnuváteāpnóti ; āpnutáḥ ; āpnuvánti ; āpnuté ; āpnuvā́te ; āpnuváte
Passedāpnóti opt 1āpnuyā́m ; āpnuyā́va ; āpnuyā́ma ; āpnuvīyá ; āpnuvīváhi ; āpnuvīmáhiāpnuyā́m ; āpnuyā́va ; āpnuyā́ma ; āpnuvīyá ; āpnuvīváhi ; āpnuvīmáhi
Passedāpnóti opt 2āpnuyā́ḥ ; āpnuyā́tam ; āpnuyā́ta ; āpnuvīthā́ḥ ; āpnuvīyā́thām ; āpnuvīdhvámāpnuyā́ḥ ; āpnuyā́tam ; āpnuyā́ta ; āpnuvīthā́ḥ ; āpnuvīyā́thām ; āpnuvīdhvám
Passedāpnóti opt 3āpnuyā́t ; āpnuyā́tām ; āpnuyúḥ ; āpnuvītá ; āpnuvīyā́tām ; āpnuvīránāpnuyā́t ; āpnuyā́tām ; āpnuyúḥ ; āpnuvītá ; āpnuvīyā́tām ; āpnuvīrán
Passedāpnóti impr 1āpnávāni ; āpnávāva ; āpnávāma ; āpnávai ; āpnávāvahai ; āpnávāmahaiāpnávāni ; āpnávāva ; āpnávāma ; āpnávai ; āpnávāvahai ; āpnávāmahai
Passedāpnóti impr 2āpnuhí ; āpnutám ; āpnutá ; āpnuṣvá ; āpnuvā́thām ; āpnudhvámāpnuhí ; āpnutám ; āpnutá ; āpnuṣvá ; āpnuvā́thām ; āpnudhvám
Passedāpnóti impr 3āpnótu ; āpnutā́m ; āpnuvántu ; āpnutā́m ; āpnuvā́tām ; āpnuvátāmāpnótu ; āpnutā́m ; āpnuvántu ; āpnutā́m ; āpnuvā́tām ; āpnuvátām
Passedāpnóti impf 1ā́pnavam ; ā́pnuva ; ā́pnuma ; ā́pnuvi ; ā́pnuvahi ; ā́pnumahiā́pnavam ; ā́pnuva ; ā́pnuma ; ā́pnuvi ; ā́pnuvahi ; ā́pnumahi
Passedāpnóti impf 2ā́pnoḥ ; ā́pnutam ; ā́pnuta ; ā́pnuthāḥ ; ā́pnuvāthām ; ā́pnudhvamā́pnoḥ ; ā́pnutam ; ā́pnuta ; ā́pnuthāḥ ; ā́pnuvāthām ; ā́pnudhvam
Passedāpnóti impf 3ā́pnot ; ā́pnutām ; ā́pnuvan ; ā́pnuta ; ā́pnuvātām ; ā́pnuvataā́pnot ; ā́pnutām ; ā́pnuvan ; ā́pnuta ; ā́pnuvātām ; ā́pnuvata
Failedāpnóti act part āpnuvántāpnuvát
Whitney e.g. Para 741 cites participles in strong form. See discussion.
Passedāpnóti mid part āpnuvānáāpnuvāná
With irregularities:
sunóti uses detAt
Failedsunóti pres 1sunómi ; sunváḥ sunuváḥ ; sunmáḥ sunumáḥ ; sunvé ; sunváhe sunuváhe ; sunmáhe sunumáhesunómi ; sunváḥ sunuváḥ ; sunmáḥ sunmási sunumáḥ sunumási ; sunvé ; sunváhe sunuváhe ; sunmáhe sunumáhe
Passedsunóti pres 2sunóṣi ; sunutháḥ ; sunuthá ; sunuṣé ; sunvā́the ; sunudhvésunóṣi ; sunutháḥ ; sunuthá ; sunuṣé ; sunvā́the ; sunudhvé
Failedsunóti pres 3sunóti ; sunutáḥ ; sunvánti ; sunuté ; sunvā́te ; sunváte sunvirésunóti ; sunutáḥ ; sunvánti ; sunuté ; sunvā́te ; sunváte
Passedsunóti impr 1sunávāni ; sunávāva ; sunávāma ; sunávai ; sunávāvahai ; sunávāmahaisunávāni ; sunávāva ; sunávāma ; sunávai ; sunávāvahai ; sunávāmahai
Failedsunóti impr 2sunú sunuhí ; sunutám ; sunutá sunóta sunótana ; sunuṣvá ; sunvā́thām ; sunudhvám
2s ending is -hi rather than -dhi after vowels.
Whitney does not report -tāt for Classes 5 and 8.
sunú sunuhí ; sunutám ; sunutá ; sunuṣvá ; sunvā́thām ; sunudhvám
Passedsunóti impr 3sunótu ; sunutā́m ; sunvántu ; sunutā́m ; sunvā́tām ; sunvátāmsunótu ; sunutā́m ; sunvántu ; sunutā́m ; sunvā́tām ; sunvátām
śṛṇóti uses detAt
Failedśṛṇóti pres 1śṛṇómi ; śṛṇváḥ śṛṇuváḥ ; śṛṇmáḥ śṛṇumáḥ ; śṛṇvé ; śṛṇváhe śṛṇuváhe ; śṛṇmáhe śṛṇumáheśṛṇómi ; śṛṇváḥ śṛṇuváḥ ; śṛṇmáḥ śṛṇmási śṛṇumáḥ śṛṇumási ; śṛṇvé ; śṛṇváhe śṛṇuváhe ; śṛṇmáhe śṛṇumáhe
Passedśṛṇóti pres 2śṛṇóṣi ; śṛṇutháḥ ; śṛṇuthá ; śṛṇuṣé ; śṛṇvā́the ; śṛṇudhvéśṛṇóṣi ; śṛṇutháḥ ; śṛṇuthá ; śṛṇuṣé ; śṛṇvā́the ; śṛṇudhvé
Failedśṛṇóti pres 3śṛṇóti ; śṛṇutáḥ ; śṛṇvánti ; śṛṇuté ; śṛṇvā́te ; śṛṇváte śṛṇviréśṛṇóti ; śṛṇutáḥ ; śṛṇvánti ; śṛṇuté ; śṛṇvā́te ; śṛṇváte
Passedśṛṇóti impr 1śṛṇávāni ; śṛṇávāva ; śṛṇávāma ; śṛṇávai ; śṛṇávāvahai ; śṛṇávāmahaiśṛṇávāni ; śṛṇávāva ; śṛṇávāma ; śṛṇávai ; śṛṇávāvahai ; śṛṇávāmahai
Failedśṛṇóti impr 2śṛṇú śṛṇuhí ; śṛṇutám ; śṛṇutá śṛṇóta śṛṇótana ; śṛṇuṣvá ; śṛṇvā́thām ; śṛṇudhvám
2s ending is -hi rather than -dhi after vowels.
Whitney does not report -tāt for Classes 5 and 8.
śṛṇú śṛṇuhí ; śṛṇutám ; śṛṇutá ; śṛṇuṣvá ; śṛṇvā́thām ; śṛṇudhvám
Passedśṛṇóti impr 3śṛṇótu ; śṛṇutā́m ; śṛṇvántu ; śṛṇutā́m ; śṛṇvā́tām ; śṛṇvátāmśṛṇótu ; śṛṇutā́m ; śṛṇvántu ; śṛṇutā́m ; śṛṇvā́tām ; śṛṇvátām
TextExpectedActual
test_class_6:
Failedviśáti pres 1viśā́mi ; viśā́vaḥ ; viśā́maḥ ; viśé ; viśā́vahe ; viśā́maheviśā́mi ; viśā́vaḥ ; viśā́maḥ viśā́masi ; viśé ; viśā́vahe ; viśā́mahe
Passedviśáti pres 2viśási ; viśáthaḥ ; viśátha ; viśáse ; viśéthe ; viśádhveviśási ; viśáthaḥ ; viśátha ; viśáse ; viśéthe ; viśádhve
Passedviśáti pres 3viśáti ; viśátaḥ ; viśánti ; viśáte ; viśéte ; viśánteviśáti ; viśátaḥ ; viśánti ; viśáte ; viśéte ; viśánte
Passedviśáti opt 1viśéyam ; viśéva ; viśéma ; viśéya ; viśévahi ; viśémahiviśéyam ; viśéva ; viśéma ; viśéya ; viśévahi ; viśémahi
Passedviśáti opt 2viśéḥ ; viśétam ; viśéta ; viśéthāḥ ; viśéyāthām ; viśédhvamviśéḥ ; viśétam ; viśéta ; viśéthāḥ ; viśéyāthām ; viśédhvam
Passedviśáti opt 3viśét ; viśétām ; viśéyuḥ ; viśéta ; viśéyātām ; viśéranviśét ; viśétām ; viśéyuḥ ; viśéta ; viśéyātām ; viśéran
Passedviśáti impr 1viśā́ni ; viśā́va ; viśā́ma ; viśaí ; viśā́vahai ; viśā́mahaiviśā́ni ; viśā́va ; viśā́ma ; viśaí ; viśā́vahai ; viśā́mahai
Failedviśáti impr 2viśá viśátāt ; viśátam ; viśáta ; viśásva ; viśéthām ; viśádhvamviśá ; viśátam ; viśáta ; viśásva ; viśéthām ; viśádhvam
Passedviśáti impr 3viśátu ; viśátām ; viśántu ; viśátām ; viśétām ; viśántāmviśátu ; viśátām ; viśántu ; viśátām ; viśétām ; viśántām
Passedviśáti impf 1áviśam ; áviśāva ; áviśāma ; áviśe ; áviśāvahi ; áviśāmahiáviśam ; áviśāva ; áviśāma ; áviśe ; áviśāvahi ; áviśāmahi
Passedviśáti impf 2áviśaḥ ; áviśatam ; áviśata ; áviśathāḥ ; áviśethām ; áviśadhvamáviśaḥ ; áviśatam ; áviśata ; áviśathāḥ ; áviśethām ; áviśadhvam
Passedviśáti impf 3áviśat ; áviśatām ; áviśan ; áviśata ; áviśetām ; áviśantaáviśat ; áviśatām ; áviśan ; áviśata ; áviśetām ; áviśanta
Passedviśáti inj 1viśám ; viśā́va ; viśā́ma ; viśé ; viśā́vahi ; viśā́mahiviśám ; viśā́va ; viśā́ma ; viśé ; viśā́vahi ; viśā́mahi
Passedviśáti inj 2viśáḥ ; viśátam ; viśáta ; viśáthāḥ ; viśéthām ; viśádhvamviśáḥ ; viśátam ; viśáta ; viśáthāḥ ; viśéthām ; viśádhvam
Passedviśáti inj 3viśát ; viśátām ; viśán ; viśáta ; viśétām ; viśántaviśát ; viśátām ; viśán ; viśáta ; viśétām ; viśánta
Failedviśáti act part viśántviśát
Whitney e.g. Para 741 cites participles in strong form. See discussion.
Passedviśáti mid part viśámānaviśámāna
visṛjati (not a Whitney table) uses detAt
Failedvisṛjati (not a Whitney table) pres 1visṛjāmi ; visṛjāvaḥ ; visṛjāmaḥvisṛjāmi ; visṛjāvaḥ ; visṛjāmaḥ visṛjāmasi
Passedvisṛjati (not a Whitney table) pres 2visṛjasi ; visṛjathaḥ ; visṛjathavisṛjasi ; visṛjathaḥ ; visṛjatha
Passedvisṛjati (not a Whitney table) pres 3visṛjati ; visṛjataḥ ; visṛjantivisṛjati ; visṛjataḥ ; visṛjanti
TextExpectedActual
test_class_7:
yunákti uses detAt adddegem
Failedyunákti pres 1yunájmi ; yuñjváḥ ; yuñjmáḥ ; yuñjé ; yuñjváhe ; yuñjmáheyunájmi ; yuñjváḥ ; yuñjmáḥ yuñjmási ; yuñjé ; yuñjváhe ; yuñjmáhe
Passedyunákti pres 2yunákṣi ; yuṅtháḥ yuṅktháḥ ; yuṅthá yuṅkthá ; yuṅkṣé ; yuñjā́the ; yuṅdhvé yuṅgdhvéyunákṣi ; yuṅtháḥ yuṅktháḥ ; yuṅthá yuṅkthá ; yuṅkṣé ; yuñjā́the ; yuṅdhvé yuṅgdhvé
Passedyunákti pres 3yunákti ; yuṅtáḥ yuṅktáḥ ; yuñjánti ; yuṅté yuṅkté ; yuñjā́te ; yuñjáteyunákti ; yuṅtáḥ yuṅktáḥ ; yuñjánti ; yuṅté yuṅkté ; yuñjā́te ; yuñjáte
Passedyunákti opt 1yuñjyā́m ; yuñjyā́va ; yuñjyā́ma ; yuñjīyá ; yuñjīváhi ; yuñjīmáhiyuñjyā́m ; yuñjyā́va ; yuñjyā́ma ; yuñjīyá ; yuñjīváhi ; yuñjīmáhi
Passedyunákti opt 2yuñjyā́ḥ ; yuñjyā́tam ; yuñjyā́ta ; yuñjīthā́ḥ ; yuñjīyā́thām ; yuñjīdhvámyuñjyā́ḥ ; yuñjyā́tam ; yuñjyā́ta ; yuñjīthā́ḥ ; yuñjīyā́thām ; yuñjīdhvám
Passedyunákti opt 3yuñjyā́t ; yuñjyā́tām ; yuñjyúḥ ; yuñjītá ; yuñjīyā́tām ; yuñjīrányuñjyā́t ; yuñjyā́tām ; yuñjyúḥ ; yuñjītá ; yuñjīyā́tām ; yuñjīrán
Passedyunákti impr 1yunájāni ; yunájāva ; yunájāma ; yunájai ; yunájāvahai ; yunájāmahaiyunájāni ; yunájāva ; yunájāma ; yunájai ; yunájāvahai ; yunájāmahai
Passedyunákti impr 2yuṅdhí yuṅgdhí ; yuṅtám yuṅktám ; yuṅtá yuṅktá ; yuṅkṣvá ; yuñjā́thām ; yuṅdhvám yuṅgdhvámyuṅdhí yuṅgdhí ; yuṅtám yuṅktám ; yuṅtá yuṅktá ; yuṅkṣvá ; yuñjā́thām ; yuṅdhvám yuṅgdhvám
Passedyunákti impr 3yunáktu ; yuṅtā́m yuṅktā́m ; yuñjántu ; yuṅtā́m yuṅktā́m ; yuñjā́tām ; yuñjátāmyunáktu ; yuṅtā́m yuṅktā́m ; yuñjántu ; yuṅtā́m yuṅktā́m ; yuñjā́tām ; yuñjátām
Passedyunákti impf 1áyunajam ; áyuñjva ; áyuñjma ; áyuñji ; áyuñjvahi ; áyuñjmahiáyunajam ; áyuñjva ; áyuñjma ; áyuñji ; áyuñjvahi ; áyuñjmahi
Passedyunákti impf 2áyunak ; áyuṅtam áyuṅktam ; áyuṅta áyuṅkta ; áyuṅthāḥ áyuṅkthāḥ ; áyuñjāthām ; áyuṅdhvam áyuṅgdhvamáyunak ; áyuṅtam áyuṅktam ; áyuṅta áyuṅkta ; áyuṅthāḥ áyuṅkthāḥ ; áyuñjāthām ; áyuṅdhvam áyuṅgdhvam
Passedyunákti impf 3áyunak ; áyuṅtām áyuṅktām ; áyuñjan ; áyuṅta áyuṅkta ; áyuñjātām ; áyuñjataáyunak ; áyuṅtām áyuṅktām ; áyuñjan ; áyuṅta áyuṅkta ; áyuñjātām ; áyuñjata
Passedyunákti inj 1yunájam ; yuñjvá ; yuñjmá ; yuñjí ; yuñjváhi ; yuñjmáhiyunájam ; yuñjvá ; yuñjmá ; yuñjí ; yuñjváhi ; yuñjmáhi
Passedyunákti inj 2yunák ; yuṅtám yuṅktám ; yuṅtá yuṅktá ; yuṅthā́ḥ yuṅkthā́ḥ ; yuñjā́thām ; yuṅdhvám yuṅgdhvámyunák ; yuṅtám yuṅktám ; yuṅtá yuṅktá ; yuṅthā́ḥ yuṅkthā́ḥ ; yuñjā́thām ; yuṅdhvám yuṅgdhvám
Passedyunákti inj 3yunák ; yuṅtā́m yuṅktā́m ; yuñján ; yuṅtá yuṅktá ; yuñjā́tām ; yuñjátayunák ; yuṅtā́m yuṅktā́m ; yuñján ; yuṅtá yuṅktá ; yuñjā́tām ; yuñjáta
Failedyunákti act part yuñjántyuñját
Passedyunákti mid part yuñjānáyuñjāná
ruṇáddhi uses detAt adddegem
Failedruṇáddhi pres 1ruṇádhmi ; rundhváḥ ; rundhmáḥ ; rundhé ; rundhváhe ; rundhmáheruṇádhmi ; rundhváḥ ; rundhmáḥ rundhmási ; rundhé ; rundhváhe ; rundhmáhe
Passedruṇáddhi pres 2ruṇátsi ; rundháḥ runddháḥ ; rundhá runddhá ; runtsé ; rundhā́the ; rundhvé runddhvéruṇátsi ; rundháḥ runddháḥ ; rundhá runddhá ; runtsé ; rundhā́the ; rundhvé runddhvé
Passedruṇáddhi pres 3ruṇáddhi ; rundháḥ runddháḥ ; rundhánti ; rundhé runddhé ; rundhā́te ; rundháteruṇáddhi ; rundháḥ runddháḥ ; rundhánti ; rundhé runddhé ; rundhā́te ; rundháte
TextExpectedActual
test_class_8:
tanóti uses detAt
Failedtanóti pres 1tanómi ; tanváḥ tanuváḥ ; tanmáḥ tanumáḥ ; tanvé ; tanváhe tanuváhe ; tanmáhe tanumáhetanómi ; tanváḥ tanuváḥ ; tanmáḥ tanmási tanumáḥ tanumási ; tanvé ; tanváhe tanuváhe ; tanmáhe tanumáhe
Passedtanóti pres 2tanóṣi ; tanutháḥ ; tanuthá ; tanuṣé ; tanvā́the ; tanudhvétanóṣi ; tanutháḥ ; tanuthá ; tanuṣé ; tanvā́the ; tanudhvé
Failedtanóti pres 3tanóti ; tanutáḥ ; tanvánti ; tanuté ; tanvā́te ; tanváte tanvatétanóti ; tanutáḥ ; tanvánti ; tanuté ; tanvā́te ; tanváte
Passedtanóti opt 1tanuyā́m ; tanuyā́va ; tanuyā́ma ; tanvīyá ; tanvīváhi ; tanvīmáhitanuyā́m ; tanuyā́va ; tanuyā́ma ; tanvīyá ; tanvīváhi ; tanvīmáhi
Passedtanóti opt 2tanuyā́ḥ ; tanuyā́tam ; tanuyā́ta ; tanvīthā́ḥ ; tanvīyā́thām ; tanvīdhvámtanuyā́ḥ ; tanuyā́tam ; tanuyā́ta ; tanvīthā́ḥ ; tanvīyā́thām ; tanvīdhvám
Passedtanóti opt 3tanuyā́t ; tanuyā́tām ; tanuyúḥ ; tanvītá ; tanvīyā́tām ; tanvīrántanuyā́t ; tanuyā́tām ; tanuyúḥ ; tanvītá ; tanvīyā́tām ; tanvīrán
Passedtanóti impr 1tanávāni ; tanávāva ; tanávāma ; tanávai ; tanávāvahai ; tanávāmahaitanávāni ; tanávāva ; tanávāma ; tanávai ; tanávāvahai ; tanávāmahai
Failedtanóti impr 2tanú tanuhí ; tanutám ; tanutá tanóta ; tanuṣvá ; tanvā́thām ; tanudhvám
2s ending is -hi rather than -dhi after vowels.
Whitney does not report -tāt for Classes 5 and 8.
tanú tanuhí ; tanutám ; tanutá ; tanuṣvá ; tanvā́thām ; tanudhvám
Passedtanóti impr 3tanótu ; tanutā́m ; tanvántu ; tanutā́m ; tanvā́tām ; tanvátāmtanótu ; tanutā́m ; tanvántu ; tanutā́m ; tanvā́tām ; tanvátām
Passedtanóti impf 1átanavam ; átanva átanuva ; átanma átanuma ; átanvi ; átanvahi átanuvahi ; átanmahi átanumahiátanavam ; átanva átanuva ; átanma átanuma ; átanvi ; átanvahi átanuvahi ; átanmahi átanumahi
Passedtanóti impf 2átanoḥ ; átanutam ; átanuta ; átanuthāḥ ; átanvāthām ; átanudhvamátanoḥ ; átanutam ; átanuta ; átanuthāḥ ; átanvāthām ; átanudhvam
Passedtanóti impf 3átanot ; átanutām ; átanvan ; átanuta ; átanvātām ; átanvataátanot ; átanutām ; átanvan ; átanuta ; átanvātām ; átanvata
Failedtanóti act part tanvánttanvát
Whitney e.g. Para 741 cites participles in strong form. See discussion.
Passedtanóti mid part tanvānátanvāná
karóti uses fp_pres=kur fp_past=ákur detAt
Failedkaróti pres 1karómi ; kurváḥ ; kurmáḥ ; kurvé ; kurváhe ; kurmáhekarómi ; kurváḥ ; kurmáḥ kurmási ; kurvé ; kurváhe ; kurmáhe
Passedkaróti pres 2karóṣi ; kurutháḥ ; kuruthá ; kuruṣé ; kurvā́the ; kurudhvékaróṣi ; kurutháḥ ; kuruthá ; kuruṣé ; kurvā́the ; kurudhvé
Passedkaróti pres 3karóti ; kurutáḥ ; kurvánti ; kuruté ; kurvā́te ; kurvátekaróti ; kurutáḥ ; kurvánti ; kuruté ; kurvā́te ; kurváte
Passedkaróti opt 1kuryā́m ; kuryā́va ; kuryā́ma ; kurvīyá ; kurvīváhi ; kurvīmáhikuryā́m ; kuryā́va ; kuryā́ma ; kurvīyá ; kurvīváhi ; kurvīmáhi
Passedkaróti opt 2kuryā́ḥ ; kuryā́tam ; kuryā́ta ; kurvīthā́ḥ ; kurvīyā́thām ; kurvīdhvámkuryā́ḥ ; kuryā́tam ; kuryā́ta ; kurvīthā́ḥ ; kurvīyā́thām ; kurvīdhvám
Passedkaróti opt 3kuryā́t ; kuryā́tām ; kuryúḥ ; kurvītá ; kurvīyā́tām ; kurvīránkuryā́t ; kuryā́tām ; kuryúḥ ; kurvītá ; kurvīyā́tām ; kurvīrán
Passedkaróti impr 1karávāṇi ; karávāva ; karávāma ; karávai ; karávāvahai ; karávāmahaikarávāṇi ; karávāva ; karávāma ; karávai ; karávāvahai ; karávāmahai
Failedkaróti impr 2kurú ; kurutám ; kurutá ; kuruṣvá ; kurvā́thām ; kurudhvám
Whitney does not report -tāt for Classes 5 and 8.
kuruhí ; kurutám ; kurutá ; kuruṣvá ; kurvā́thām ; kurudhvám
Passedkaróti impr 3karótu ; kurutā́m ; kurvántu ; kurutā́m ; kurvā́tām ; kurvátāmkarótu ; kurutā́m ; kurvántu ; kurutā́m ; kurvā́tām ; kurvátām
Passedkaróti impf 1ákaravam ; ákurva ; ákurma ; ákurvi ; ákurvahi ; ákurmahiákaravam ; ákurva ; ákurma ; ákurvi ; ákurvahi ; ákurmahi
Passedkaróti impf 2ákaroḥ ; ákurutam ; ákuruta ; ákuruthāḥ ; ákurvāthām ; ákurudhvamákaroḥ ; ákurutam ; ákuruta ; ákuruthāḥ ; ákurvāthām ; ákurudhvam
Passedkaróti impf 3ákarot ; ákurutām ; ákurvan ; ákuruta ; ákurvātām ; ákurvataákarot ; ákurutām ; ákurvan ; ákuruta ; ákurvātām ; ákurvata
Failedkaróti act part kurvántkurvát
Whitney e.g. Para 741 cites participles in strong form. See discussion.
Passedkaróti mid part kurvāṇákurvāṇá
TextExpectedActual
test_class_9:
Failedkrīṇā́ti pres 1krīṇā́mi ; krīṇīváḥ ; krīṇīmáḥ ; krīṇé ; krīṇīváhe ; krīṇīmáhekrīṇā́mi ; krīṇīváḥ ; krīṇīmáḥ krīṇīmási ; krīṇé ; krīṇīváhe ; krīṇīmáhe
Passedkrīṇā́ti pres 2krīṇā́si ; krīṇītháḥ ; krīṇīthá ; krīṇīṣé ; krīṇā́the ; krīṇīdhvékrīṇā́si ; krīṇītháḥ ; krīṇīthá ; krīṇīṣé ; krīṇā́the ; krīṇīdhvé
Passedkrīṇā́ti pres 3krīṇā́ti ; krīṇītáḥ ; krīṇánti ; krīṇīté ; krīṇā́te ; krīṇátekrīṇā́ti ; krīṇītáḥ ; krīṇánti ; krīṇīté ; krīṇā́te ; krīṇáte
Passedkrīṇā́ti opt 1krīṇīyā́m ; krīṇīyā́va ; krīṇīyā́ma ; krīṇīyá ; krīṇīváhi ; krīṇīmáhikrīṇīyā́m ; krīṇīyā́va ; krīṇīyā́ma ; krīṇīyá ; krīṇīváhi ; krīṇīmáhi
Passedkrīṇā́ti opt 2krīṇīyā́ḥ ; krīṇīyā́tam ; krīṇīyā́ta ; krīṇīthā́ḥ ; krīṇīyā́thām ; krīṇīdhvámkrīṇīyā́ḥ ; krīṇīyā́tam ; krīṇīyā́ta ; krīṇīthā́ḥ ; krīṇīyā́thām ; krīṇīdhvám
Passedkrīṇā́ti opt 3krīṇīyā́t ; krīṇīyā́tām ; krīṇīyúḥ ; krīṇītá ; krīṇīyā́tām ; krīṇīránkrīṇīyā́t ; krīṇīyā́tām ; krīṇīyúḥ ; krīṇītá ; krīṇīyā́tām ; krīṇīrán
Passedkrīṇā́ti impr 1krīṇā́ni ; krīṇā́va ; krīṇā́ma ; krīṇaí ; krīṇā́vahai ; krīṇā́mahaikrīṇā́ni ; krīṇā́va ; krīṇā́ma ; krīṇaí ; krīṇā́vahai ; krīṇā́mahai
Passedkrīṇā́ti impr 2krīṇīhí ; krīṇītám ; krīṇītá ; krīṇīṣvá ; krīṇā́thām ; krīṇīdhvámkrīṇīhí ; krīṇītám ; krīṇītá ; krīṇīṣvá ; krīṇā́thām ; krīṇīdhvám
Passedkrīṇā́ti impr 3krīṇā́tu ; krīṇītā́m ; krīṇántu ; krīṇītā́m ; krīṇā́tām ; krīṇátāmkrīṇā́tu ; krīṇītā́m ; krīṇántu ; krīṇītā́m ; krīṇā́tām ; krīṇátām
Passedkrīṇā́ti impf 1ákrīṇām ; ákrīṇīva ; ákrīṇīma ; ákrīṇi ; ákrīṇīvahi ; ákrīṇīmahiákrīṇām ; ákrīṇīva ; ákrīṇīma ; ákrīṇi ; ákrīṇīvahi ; ákrīṇīmahi
Passedkrīṇā́ti impf 2ákrīṇāḥ ; ákrīṇītam ; ákrīṇīta ; ákrīṇīthāḥ ; ákrīṇāthām ; ákrīṇīdhvamákrīṇāḥ ; ákrīṇītam ; ákrīṇīta ; ákrīṇīthāḥ ; ákrīṇāthām ; ákrīṇīdhvam
Passedkrīṇā́ti impf 3ákrīṇāt ; ákrīṇītām ; ákrīṇan ; ákrīṇīta ; ákrīṇātām ; ákrīṇataákrīṇāt ; ákrīṇītām ; ákrīṇan ; ákrīṇīta ; ákrīṇātām ; ákrīṇata
Passedkrīṇā́ti inj 1krīṇā́m ; krīṇīvá ; krīṇīmá ; krīṇí ; krīṇīváhi ; krīṇīmáhikrīṇā́m ; krīṇīvá ; krīṇīmá ; krīṇí ; krīṇīváhi ; krīṇīmáhi
Passedkrīṇā́ti inj 2krīṇā́ḥ ; krīṇītám ; krīṇītá ; krīṇīthā́ḥ ; krīṇā́thām ; krīṇīdhvámkrīṇā́ḥ ; krīṇītám ; krīṇītá ; krīṇīthā́ḥ ; krīṇā́thām ; krīṇīdhvám
Passedkrīṇā́ti inj 3krīṇā́t ; krīṇītā́m ; krīṇán ; krīṇītá ; krīṇā́tām ; krīṇátakrīṇā́t ; krīṇītā́m ; krīṇán ; krīṇītá ; krīṇā́tām ; krīṇáta
Failedkrīṇā́ti act part krīṇánt
Whitney e.g. Para 741 cites participles in strong form. See discussion.
krīṇát
Passedkrīṇā́ti mid part krīṇānákrīṇāná
Failedgṛhṇā́ti pres 1gṛhṇā́mi ; gṛhṇīváḥ ; gṛhṇīmáḥ ; gṛhṇé ; gṛhṇīváhe ; gṛhṇīmáhegṛhṇā́mi ; gṛhṇīváḥ ; gṛhṇīmáḥ gṛhṇīmási ; gṛhṇé ; gṛhṇīváhe ; gṛhṇīmáhe
Passedgṛhṇā́ti pres 2gṛhṇā́si ; gṛhṇītháḥ ; gṛhṇīthá ; gṛhṇīṣé ; gṛhṇā́the ; gṛhṇīdhvégṛhṇā́si ; gṛhṇītháḥ ; gṛhṇīthá ; gṛhṇīṣé ; gṛhṇā́the ; gṛhṇīdhvé
Passedgṛhṇā́ti pres 3gṛhṇā́ti ; gṛhṇītáḥ ; gṛhṇánti ; gṛhṇīté ; gṛhṇā́te ; gṛhṇátegṛhṇā́ti ; gṛhṇītáḥ ; gṛhṇánti ; gṛhṇīté ; gṛhṇā́te ; gṛhṇáte
Passedgṛhṇā́ti impr 1gṛhṇā́ni ; gṛhṇā́va ; gṛhṇā́ma ; gṛhṇaí ; gṛhṇā́vahai ; gṛhṇā́mahaigṛhṇā́ni ; gṛhṇā́va ; gṛhṇā́ma ; gṛhṇaí ; gṛhṇā́vahai ; gṛhṇā́mahai
Failedgṛhṇā́ti impr 2gṛhāṇá gṛhṇītāt gṛhṇāhí ; gṛhṇītám ; gṛhṇītá ; gṛhṇīṣvá ; gṛhṇā́thām ; gṛhṇīdhvámgṛhāṇá ; gṛhṇītám ; gṛhṇītá ; gṛhṇīṣvá ; gṛhṇā́thām ; gṛhṇīdhvám
Passedgṛhṇā́ti impr 3gṛhṇā́tu ; gṛhṇītā́m ; gṛhṇántu ; gṛhṇītā́m ; gṛhṇā́tām ; gṛhṇátāmgṛhṇā́tu ; gṛhṇītā́m ; gṛhṇántu ; gṛhṇītā́m ; gṛhṇā́tām ; gṛhṇátām
TextExpectedActual
test_derived:
Failedvévetti pres 1vévedmi vévidīmi ; vevidváḥ ; vevidmáḥvévedmi vévidīmi ; vevidváḥ ; vevidmáḥ vevidmási
Passedvévetti pres 2vévetsi vévidīṣi ; vevittháḥ ; vevitthávévetsi vévidīṣi ; vevittháḥ ; vevitthá
Passedvévetti pres 3vévetti vévidīti ; vevittáḥ ; vévidativévetti vévidīti ; vevittáḥ ; vévidati
Passedvévetti impr 1vévidāni ; vévidāva ; vévidāmavévidāni ; vévidāva ; vévidāma
Passedvévetti impr 2veviddhí ; vevittám ; vevittáveviddhí ; vevittám ; vevittá
Passedvévetti impr 3vévettu vévidītu ; vevittā́m ; vévidatuvévettu vévidītu ; vevittā́m ; vévidatu
Passedvévetti impf 1ávevidam ; ávevidva ; ávevidmaávevidam ; ávevidva ; ávevidma
Passedvévetti impf 2ávevet ávevidīḥ ; ávevittam ; ávevittaávevet ávevidīḥ ; ávevittam ; ávevitta
Passedvévetti impf 3ávevet ávevidīt ; ávevittām ; áveviduḥávevet ávevidīt ; ávevittām ; áveviduḥ
Passedvévetti part vévidatvévidat
Regularised ī́psati uses detAt
FailedRegularised ī́psati pres 1ī́psāmi ; ī́psāvaḥ ; ī́psāmaḥī́psāmi ; ī́psāvaḥ ; ī́psāmaḥ ī́psāmasi
PassedRegularised ī́psati pres 2ī́psasi ; ī́psathaḥ ; ī́psathaī́psasi ; ī́psathaḥ ; ī́psatha
PassedRegularised ī́psati pres 3ī́psati ; ī́psataḥ ; ī́psantiī́psati ; ī́psataḥ ; ī́psanti
PassedRegularised ī́psati opt 1ī́pseyam ; ī́pseva ; ī́psemaī́pseyam ; ī́pseva ; ī́psema
PassedRegularised ī́psati opt 2ī́pseḥ ; ī́psetam ; ī́psetaī́pseḥ ; ī́psetam ; ī́pseta
PassedRegularised ī́psati opt 3ī́pset ; ī́psetām ; ī́pseyuḥī́pset ; ī́psetām ; ī́pseyuḥ
PassedRegularised ī́psati impr 1ī́psāni ; ī́psāva ; ī́psāmaī́psāni ; ī́psāva ; ī́psāma
PassedRegularised ī́psati impr 2ī́psa ; ī́psatam ; ī́psataī́psa ; ī́psatam ; ī́psata
PassedRegularised ī́psati impr 3ī́psatu ; ī́psatām ; ī́psantuī́psatu ; ī́psatām ; ī́psantu
PassedRegularised ī́psati impf 1aípsam ; aípsāva ; aípsāmaaípsam ; aípsāva ; aípsāma
PassedRegularised ī́psati impf 2aípsaḥ ; aípsatam ; aípsataaípsaḥ ; aípsatam ; aípsata
PassedRegularised ī́psati impf 3aípsat ; aípsatām ; aípsanaípsat ; aípsatām ; aípsan
PassedRegularised ī́psati inj 1ī́psam ; ī́psāva ; ī́psāmaī́psam ; ī́psāva ; ī́psāma
PassedRegularised ī́psati inj 2ī́psaḥ ; ī́psatam ; ī́psataī́psaḥ ; ī́psatam ; ī́psata
PassedRegularised ī́psati inj 3ī́psat ; ī́psatām ; ī́psanī́psat ; ī́psatām ; ī́psan
FailedRegularised ī́psati part ī́psantī́psat
Whitney e.g. Para 741 cites participles in strong form. See discussion.
Passedtítikṣate pres 1títikṣe ; títikṣāvahe ; títikṣāmahetítikṣe ; títikṣāvahe ; títikṣāmahe
Passedtítikṣate pres 2títikṣase ; títikṣethe ; títikṣadhvetítikṣase ; títikṣethe ; títikṣadhve
Passedtítikṣate pres 3títikṣate ; títikṣete ; títikṣantetítikṣate ; títikṣete ; títikṣante
Passedtítikṣate opt 1títikṣeya ; títikṣevahi ; títikṣemahitítikṣeya ; títikṣevahi ; títikṣemahi
Passedtítikṣate opt 2títikṣethāḥ ; títikṣeyāthām ; títikṣedhvamtítikṣethāḥ ; títikṣeyāthām ; títikṣedhvam
Passedtítikṣate opt 3títikṣeta ; títikṣeyātām ; títikṣerantítikṣeta ; títikṣeyātām ; títikṣeran
Passedtítikṣate impr 1títikṣai ; títikṣāvahai ; títikṣāmahaitítikṣai ; títikṣāvahai ; títikṣāmahai
Passedtítikṣate impr 2títikṣasva ; títikṣethām ; títikṣadhvamtítikṣasva ; títikṣethām ; títikṣadhvam
Passedtítikṣate impr 3títikṣatām ; títikṣetām ; títikṣantāmtítikṣatām ; títikṣetām ; títikṣantām
Passedtítikṣate impf 1átitikṣe ; átitikṣāvahi ; átitikṣāmahiátitikṣe ; átitikṣāvahi ; átitikṣāmahi
Passedtítikṣate impf 2átitikṣathāḥ ; átitikṣethām ; átitikṣadhvamátitikṣathāḥ ; átitikṣethām ; átitikṣadhvam
Passedtítikṣate impf 3átitikṣata ; átitikṣetām ; átitikṣantaátitikṣata ; átitikṣetām ; átitikṣanta
Passedtítikṣate inj 1títikṣe ; títikṣāvahi ; títikṣāmahitítikṣe ; títikṣāvahi ; títikṣāmahi
Passedtítikṣate inj 2títikṣathāḥ ; títikṣethām ; títikṣadhvamtítikṣathāḥ ; títikṣethām ; títikṣadhvam
Passedtítikṣate inj 3títikṣata ; títikṣetām ; títikṣantatítikṣata ; títikṣetām ; títikṣanta
TextExpectedActual
test_future:
Faileddāsyáti fut 1dāsyā́mi ; dāsyā́vaḥ ; dāsyā́maḥ ; dāsyé ; dāsyā́vahe ; dāsyā́mahedāsyā́mi ; dāsyā́vaḥ ; dāsyā́maḥ dāsyā́masi ; dāsyé ; dāsyā́vahe ; dāsyā́mahe
Passeddāsyáti fut 2dāsyási ; dāsyáthaḥ ; dāsyátha ; dāsyáse ; dāsyéthe ; dāsyádhvedāsyási ; dāsyáthaḥ ; dāsyátha ; dāsyáse ; dāsyéthe ; dāsyádhve
Passeddāsyáti fut 3dāsyáti ; dāsyátaḥ ; dāsyánti ; dāsyáte ; dāsyéte ; dāsyántedāsyáti ; dāsyátaḥ ; dāsyánti ; dāsyáte ; dāsyéte ; dāsyánte
Passeddāsyáti cond 1ádāsyam ; ádāsyāva ; ádāsyāma ; ádāsye ; ádāsyāvahi ; ádāsyāmahiádāsyam ; ádāsyāva ; ádāsyāma ; ádāsye ; ádāsyāvahi ; ádāsyāmahi
Passeddāsyáti cond 2ádāsyaḥ ; ádāsyatam ; ádāsyata ; ádāsyathāḥ ; ádāsyethām ; ádāsyadhvamádāsyaḥ ; ádāsyatam ; ádāsyata ; ádāsyathāḥ ; ádāsyethām ; ádāsyadhvam
Passeddāsyáti cond 3ádāsyat ; ádāsyatām ; ádāsyan ; ádāsyata ; ádāsyetām ; ádāsyantaádāsyat ; ádāsyatām ; ádāsyan ; ádāsyata ; ádāsyetām ; ádāsyanta
Faileddāsyáti fut act part dāsyánt
Whitney e.g. Para 741 cites participles in strong form. See discussion.
dāsyát
Passeddāsyáti fut mid part dāsyámānadāsyámāna
Failedkariṣyáti fut 1kariṣyā́mi ; kariṣyā́vaḥ ; kariṣyā́maḥ ; kariṣyé ; kariṣyā́vahe ; kariṣyā́mahekariṣyā́mi ; kariṣyā́vaḥ ; kariṣyā́maḥ kariṣyā́masi ; kariṣyé ; kariṣyā́vahe ; kariṣyā́mahe
Passedkariṣyáti fut 2kariṣyási ; kariṣyáthaḥ ; kariṣyátha ; kariṣyáse ; kariṣyéthe ; kariṣyádhvekariṣyási ; kariṣyáthaḥ ; kariṣyátha ; kariṣyáse ; kariṣyéthe ; kariṣyádhve
Passedkariṣyáti fut 3kariṣyáti ; kariṣyátaḥ ; kariṣyánti ; kariṣyáte ; kariṣyéte ; kariṣyántekariṣyáti ; kariṣyátaḥ ; kariṣyánti ; kariṣyáte ; kariṣyéte ; kariṣyánte
Passedkariṣyáti cond 1ákariṣyam ; ákariṣyāva ; ákariṣyāma ; ákariṣye ; ákariṣyāvahi ; ákariṣyāmahiákariṣyam ; ákariṣyāva ; ákariṣyāma ; ákariṣye ; ákariṣyāvahi ; ákariṣyāmahi
Passedkariṣyáti cond 2ákariṣyaḥ ; ákariṣyatam ; ákariṣyata ; ákariṣyathāḥ ; ákariṣyethām ; ákariṣyadhvamákariṣyaḥ ; ákariṣyatam ; ákariṣyata ; ákariṣyathāḥ ; ákariṣyethām ; ákariṣyadhvam
Passedkariṣyáti cond 3ákariṣyat ; ákariṣyatām ; ákariṣyan ; ákariṣyata ; ákariṣyetām ; ákariṣyantaákariṣyat ; ákariṣyatām ; ákariṣyan ; ákariṣyata ; ákariṣyetām ; ákariṣyanta
Failedkariṣyáti fut act part kariṣyánt
Whitney e.g. Para 741 cites participles in strong form. See discussion.
kariṣyát
Passedkariṣyáti fut mid part kariṣyámāṇakariṣyámāṇa
Faileddātā́ pfut 1dātā́smi ; dātā́svaḥ ; dātā́smaḥ ; dātā́he ; dātā́svahe ; dātā́smahedātā́smi ; dātā́svaḥ ; dātā́smaḥ dātā́smasi ; dātā́he ; dātā́svahe ; dātā́smahe
Passeddātā́ pfut 2dātā́si ; dātā́sthaḥ ; dātā́stha ; dātā́se ; dātā́sāthe ; dātā́dhvedātā́si ; dātā́sthaḥ ; dātā́stha ; dātā́se ; dātā́sāthe ; dātā́dhve
Passeddātā́ pfut 3dātā́ ; dātā́rau dātā́rā ; dātā́raḥ ; dātā́ ; dātā́rau ; dātā́raḥdātā́ ; dātā́rau dātā́rā ; dātā́raḥ ; dātā́ ; dātā́rau ; dātā́raḥ
TextExpectedActual
test_perfect:
Passedbubódha perf 1bubódha ; bubudhivá bubudhvá ; bubudhimá bubudhmá ; bubudhé ; bubudhiváhe bubudhváhe ; bubudhimáhe bubudhmáhebubódha ; bubudhivá bubudhvá ; bubudhimá bubudhmá ; bubudhé ; bubudhiváhe bubudhváhe ; bubudhimáhe bubudhmáhe
Passedbubódha perf 2bubódhitha ; bubudháthuḥ ; bubudhá ; bubudhiṣé bubutsé ; bubudhā́the ; bubudhidhvé bubuddhvébubódhitha ; bubudháthuḥ ; bubudhá ; bubudhiṣé bubutsé ; bubudhā́the ; bubudhidhvé bubuddhvé
Passedbubódha perf 3bubódha ; bubudhátuḥ ; bubudhúḥ ; bubudhé ; bubudhā́te ; bubudhiré bubudhrébubódha ; bubudhátuḥ ; bubudhúḥ ; bubudhé ; bubudhā́te ; bubudhiré bubudhré
Passedbubódha act part bubudhvā́ṃsbubudhvā́ṃs
Passedbubódha mid part bubudhānábubudhāná
ninā́ya uses set wperf=<ninī>
Passedninā́ya perf 1nináya ninā́ya ; ninyivá ; ninyimá ; ninyé ; ninyiváhe ; ninyimáhenináya ninā́ya ; ninyivá ; ninyimá ; ninyé ; ninyiváhe ; ninyimáhe
Passedninā́ya perf 2ninétha nináyitha ; ninyáthuḥ ; ninyá ; ninyiṣé ; ninyā́the ; ninyidhvéninétha nináyitha ; ninyáthuḥ ; ninyá ; ninyiṣé ; ninyā́the ; ninyidhvé
Passedninā́ya perf 3ninā́ya ; ninyátuḥ ; ninyúḥ ; ninyé ; ninyā́te ; ninyiréninā́ya ; ninyátuḥ ; ninyúḥ ; ninyé ; ninyā́te ; ninyiré
Passedninā́ya act part ninīvā́ṃsninīvā́ṃs
Passedninā́ya mid part ninyānáninyāná
babhū́va uses set
Passedbabhū́va perf 1babhū́va ; babhūvivá ; babhūvimábabhū́va ; babhūvivá ; babhūvimá
Passedbabhū́va perf 2babhū́tha babhū́vitha ; babhūváthuḥ ; babhūvábabhū́tha babhū́vitha ; babhūváthuḥ ; babhūvá
Passedbabhū́va perf 3babhū́va ; babhūvátuḥ ; babhūvúḥbabhū́va ; babhūvátuḥ ; babhūvúḥ
dadaú uses set
Passeddadaú perf 1dadaú ; dadivá ; dadimádadaú ; dadivá ; dadimá
Passeddadaú perf 2dadā́tha dadithá ; dadáthuḥ ; dadádadā́tha dadithá ; dadáthuḥ ; dadá
Passeddadaú perf 3dadaú ; dadátuḥ ; dadúḥdadaú ; dadátuḥ ; dadúḥ
Passeddadaú part dadivā́ṃsdadivā́ṃs
tatā́na uses set
Passedtatā́na perf 1tatána tatā́na ; tenivá ; tenimátatána tatā́na ; tenivá ; tenimá
Passedtatā́na perf 2tatántha tenithá ; tenáthuḥ ; tenátatántha tenithá ; tenáthuḥ ; tená
Passedtatā́na perf 3tatā́na ; tenátuḥ ; tenúḥtatā́na ; tenátuḥ ; tenúḥ
Passedtatā́na part tenivā́ṃstenivā́ṃs
jajā́na uses set
Passedjajā́na perf 1jajána jajā́na ; jajñivá ; jajñimájajána jajā́na ; jajñivá ; jajñimá
Failedjajā́na perf 2jajántha jajñithá ; jajñáthuḥ ; jajñájajántha jajánitha ; jajñáthuḥ ; jajñá
Passedjajā́na perf 3jajā́na ; jajñátuḥ ; jajñúḥjajā́na ; jajñátuḥ ; jajñúḥ
Passedjajā́na act part jajñivā́ṃsjajñivā́ṃs
Passedjajā́na mid part jajñānájajñāná
uvā́ca uses set
Passeduvā́ca perf 1uváca uvā́ca ; ūcivá ; ūcimá ; ūcé ; ūciváhe ; ūcimáheuváca uvā́ca ; ūcivá ; ūcimá ; ūcé ; ūciváhe ; ūcimáhe
Passeduvā́ca perf 2uváktha uvácitha ; ūcáthuḥ ; ūcá ; ūciṣé ; ūcā́the ; ūcidhvéuváktha uvácitha ; ūcáthuḥ ; ūcá ; ūciṣé ; ūcā́the ; ūcidhvé
Passeduvā́ca perf 3uvā́ca ; ūcátuḥ ; ūcúḥ ; ūcé ; ūcā́te ; ūciréuvā́ca ; ūcátuḥ ; ūcúḥ ; ūcé ; ūcā́te ; ūciré
Passeduvā́ca act part ūcivā́ṃsūcivā́ṃs
Passeduvā́ca mid part ūcānáūcāná
iyā́ja uses set j_to_z
Passediyā́ja perf 1iyája iyā́ja ; ījivá ; ījimá ; ījé ; ījiváhe ; ījimáheiyája iyā́ja ; ījivá ; ījimá ; ījé ; ījiváhe ; ījimáhe
Passediyā́ja perf 2iyáṣṭha iyájitha ; ījáthuḥ ; ījá ; ījiṣé ; ījā́the ; ījidhvéiyáṣṭha iyájitha ; ījáthuḥ ; ījá ; ījiṣé ; ījā́the ; ījidhvé
Passediyā́ja perf 3iyā́ja ; ījátuḥ ; ījúḥ ; ījé ; ījā́te ; ījiréiyā́ja ; ījátuḥ ; ījúḥ ; ījé ; ījā́te ; ījiré
uvóca uses set
Passeduvóca perf 1uvóca ; ūcivá ; ūcimá ; ūcé ; ūciváhe ; ūcimáheuvóca ; ūcivá ; ūcimá ; ūcé ; ūciváhe ; ūcimáhe
Passeduvóca perf 2uvócitha ; ūcáthuḥ ; ūcá ; ūciṣé ; ūcā́the ; ūcidhvéuvócitha ; ūcáthuḥ ; ūcá ; ūciṣé ; ūcā́the ; ūcidhvé
Passeduvóca perf 3uvóca ; ūcátuḥ ; ūcúḥ ; ūcé ; ūcā́te ; ūciréuvóca ; ūcátuḥ ; ūcúḥ ; ūcé ; ūcā́te ; ūciré
Passeduvóca act part ūcivā́ṃsūcivā́ṃs
Passeduvóca mid part ūcānáūcāná
Passedcakā́ra perf 1cakára cakā́ra ; cakṛvá ; cakṛmá ; cakré ; cakṛváhe ; cakṛmáhecakára cakā́ra ; cakṛvá ; cakṛmá ; cakré ; cakṛváhe ; cakṛmáhe
Passedcakā́ra perf 2cakártha ; cakráthuḥ ; cakrá ; cakṛṣé ; cakrā́the ; cakṛdhvécakártha ; cakráthuḥ ; cakrá ; cakṛṣé ; cakrā́the ; cakṛdhvé
Passedcakā́ra perf 3cakā́ra ; cakrátuḥ ; cakrúḥ ; cakré ; cakrā́te ; cakrirécakā́ra ; cakrátuḥ ; cakrúḥ ; cakré ; cakrā́te ; cakriré
Passedcakā́ra act part cakṛvā́ṃscakṛvā́ṃs
dadhā́ra uses set
Faileddadhā́ra perf 1dadhára dadhā́ra ; dadhrivá ; dadhrimá ; dadhré ; dadhriváhe dadhṛváhe ; dadhrimáhe dadhṛmáhedadhára dadhā́ra ; dadhrivá ; dadhrimá ; dadhré ; dadhriváhe ; dadhrimáhe
https://sanskrit.inria.fr allows dadhṛvá.
https://sanskrit.inria.fr allows dadhṛmá.
Faileddadhā́ra perf 2dadhártha dadháritha ; dadhráthuḥ ; dadhrá ; dadhriṣé dadhṛṣé ; dadhrā́the ; dadhridhvé dadhṛdhvédadhártha dadháritha ; dadhráthuḥ ; dadhrá ; dadhriṣé ; dadhrā́the ; dadhridhvé
Passeddadhā́ra perf 3dadhā́ra ; dadhrátuḥ ; dadhrúḥ ; dadhré ; dadhrā́te ; dadhrirédadhā́ra ; dadhrátuḥ ; dadhrúḥ ; dadhré ; dadhrā́te ; dadhriré
Faileddadhā́ra perf 1dadhára dadhā́ra ; dadhrivá ; dadhrimá ; dadhré ; dadhriváhe dadhṛváhe ; dadhrimáhe dadhṛmáhedadhára dadhā́ra ; dadhvá ; dadhṛmá ; dadhré ; dadhṛváhe ; dadhṛmáhe
https://sanskrit.inria.fr allows dadhṛvá.
https://sanskrit.inria.fr allows dadhṛmá.
Faileddadhā́ra perf 2dadhártha dadháritha ; dadhráthuḥ ; dadhrá ; dadhriṣé dadhṛṣé ; dadhrā́the ; dadhridhvé dadhṛdhvédadhártha ; dadhráthuḥ ; dadhrá ; dadhṛṣé ; dadhrā́the ; dadhṛdhvé
Passeddadhā́ra perf 3dadhā́ra ; dadhrátuḥ ; dadhrúḥ ; dadhré ; dadhrā́te ; dadhrirédadhā́ra ; dadhrátuḥ ; dadhrúḥ ; dadhré ; dadhrā́te ; dadhriré
ā́sa uses set
Passedā́sa perf 1ā́sa ; āsivá ; āsimáā́sa ; āsivá ; āsimá
Passedā́sa perf 2ā́sitha ; āsáthuḥ ; āsáā́sitha ; āsáthuḥ ; āsá
Passedā́sa perf 3ā́sa ; āsátuḥ ; āsúḥā́sa ; āsátuḥ ; āsúḥ
ā́da uses set
Passedā́da perf 1ā́da ; ādivá ; ādimáā́da ; ādivá ; ādimá
Passedā́da perf 2ā́ditha ; ādáthuḥ ; ādáā́ditha ; ādáthuḥ ; ādá
Passedā́da perf 3ā́da ; ādátuḥ ; ādúḥā́da ; ādátuḥ ; ādúḥ
Passedā́da part ādivā́ṃsādivā́ṃs
jagā́ma uses set
Passedjagā́ma perf 1jagáma jagā́ma ; jagmivá ; jagmimá ; jagmé ; jagmiváhe ; jagmimáhejagáma jagā́ma ; jagmivá ; jagmimá ; jagmé ; jagmiváhe ; jagmimáhe
Passedjagā́ma perf 2jagántha jagámitha ; jagmáthuḥ ; jagmá ; jagmiṣé ; jagmā́the ; jagmidhvéjagántha jagámitha ; jagmáthuḥ ; jagmá ; jagmiṣé ; jagmā́the ; jagmidhvé
Passedjagā́ma perf 3jagā́ma ; jagmátuḥ ; jagmúḥ ; jagmé ; jagmā́te ; jagmiréjagā́ma ; jagmátuḥ ; jagmúḥ ; jagmé ; jagmā́te ; jagmiré
Failedjagā́ma act part jaganvā́ṃs jagmivā́ṃsjagmivā́ṃs
jaghā́na uses set
Passedjaghā́na perf 1jaghána jaghā́na ; jaghnivá ; jaghnimá ; jaghné ; jaghniváhe ; jaghnimáhejaghána jaghā́na ; jaghnivá ; jaghnimá ; jaghné ; jaghniváhe ; jaghnimáhe
Passedjaghā́na perf 2jaghántha jaghánitha ; jaghnáthuḥ ; jaghná ; jaghniṣé ; jaghnā́the ; jaghnidhvéjaghántha jaghánitha ; jaghnáthuḥ ; jaghná ; jaghniṣé ; jaghnā́the ; jaghnidhvé
Passedjaghā́na perf 3jaghā́na ; jaghnátuḥ ; jaghnúḥ ; jaghné ; jaghnā́te ; jaghniréjaghā́na ; jaghnátuḥ ; jaghnúḥ ; jaghné ; jaghnā́te ; jaghniré
Failedjaghā́na act part jaghanvā́ṃs jaghnivā́ṃsjaghnivā́ṃs

local tests = require('Module:UnitTests')
local sa_verb_data = require("Module:sa-verb/data")
local to_script = require("Module:sa-convert").tr
local to_IAST = require("Module:sa-utilities/translit/SLP1-to-IAST").tr
local to_SLP1 = require("Module:sa-utilities/translit/IAST-to-SLP1").tr

local gsub = mw.ustring.gsub
local match = mw.ustring.match
local sub = mw.ustring.sub
local u = mw.ustring.char
local gasub = string.gsub -- Much faster than gsub, but handles far fewer cases.
local ti = table.insert

-- tests.sc="Lana"
tests.sc = "IAST"
tests.option = {impl="yes"}

local spaceJoin = function(vals)
	output = ""
	for i, v in ipairs(vals) do
		if output == "" then
			output = v
		else
			output = output.." "..v
		end
	end
	return output
end

local empty9 = {{}, {}, {}, {}, {}, {}, {}, {}, {}}
local num = {[1] = 1, [4] = 2, [7] = 3}

local comp_lists = function(vref, vgot, label, tablet1, tablet2)
	local exp, got
	if tablet2 then
		exp =	spaceJoin(vref[tablet1] or {})..' ; '..
				spaceJoin(vref[tablet2] or {})
		got =	spaceJoin(vgot[tablet1] or {})..' ; '..
				spaceJoin(vgot[tablet2] or {})
	else
		exp =	spaceJoin(vref[tablet1] or {})
		got =	spaceJoin(vgot[tablet1] or {})
	end
	got = to_IAST(got)
	if (exp ~= got) then
		exp = {exp}
		if vref[tablet1].why then ti(exp, vref[tablet1].why) end
		if vref[tablet2] and vref[tablet2].why then ti(exp, vref[tablet2].why) end
		exp = table.concat(exp, "<br/>")
		got = {got}
		if vref[tablet1].whynot then ti(got, vref[tablet1].whynot) end
		if vref[tablets] and vref[tablet2].whynot then ti(got, vref[tablet2].whynot) end
		got = table.concat(got, "<br/>")
	end
	tests:equals(label, got, exp,
		{show_difference = true}) -- to_script(exp, tests.sc, tests.option))
end

local pass_through = function(x) return x end

local knockout = function(forms)
	retval = {}
	for _, v in pairs(forms) do
		if not match(v, "[โเໂເ][มวມວ]["..u(0x0e3a)..u(0x0eba)..']') then
			table.insert(retval, v)
		end
	end
	return retval
end

-- tablet1 and tablet2 are tense,voice etc. tables, such as presa and presm.
local compare = function(vref, vgot, label, tablet1, tablet2, detAt)
	local exp, got
	local r1 = vref[tablet1] or empty9
	local g1 = vgot[tablet1] or empty9
	local r2, g2
--	mw.addWarning("Type of vgot["..tablet1.."] is "..type(vgot[tablet1]))
	if tablet2 then
		r2 = vref[tablet2] or empty9
		g2 = vgot[tablet2] or empty9
--		mw.addWarning("Type of vgot["..tablet2.."] is "..type(vgot[tablet2]))
	end
	local dolog = false -- Logging for debugging
	if vgot.impra and detAt then
		for p = 4, 7, 3 do
			local old = vgot.impra[p] or {}
			vgot.impra[p] = {}
			for i, v in pairs(old) do
				if type(i) == "number" then
					if not match(v, "[tdTDwqWQ]A/?t$") then
						if dolog then mw.addWarning("kept "..v) end
						ti(vgot.impra[p], v)
					elseif dolog then
						mw.addWarning("binned "..v)
					end
				else
					vgot.impra[p][i] = v
				end
			end
		end
	end

	local f
	if (tests.sc == "Thai" or tests.sc == "Laoo") and
	tests.option.impl ~= "no" then
		f = knockout
	else
		f = pass_through
	end
	for i = 1, 7, 3 do -- Was 1, 5, 2
		if tablet2 then
			exp =  spaceJoin(r1[i])..' ; '..spaceJoin(r1[i+1])..' ; '..spaceJoin(r1[i+2])
		  ..' ; '..spaceJoin(r2[i])..' ; '..spaceJoin(r2[i+1])..' ; '..spaceJoin(r2[i+2])
			if false then -- For tracking nil data flowing in.
				mw.addWarning("Type of "..tablet1..":g1["..i.."] is "..type(g1[i]))
				mw.addWarning("Type of "..tablet1..":g1["..(i+1).."] is "..type(g1[i+1]))
				mw.addWarning("Type of "..tablet1..":g1["..(i+2).."] is "..type(g1[i+2]))
				mw.addWarning("Type of "..tablet2..":g2["..i.."] is "..type(g2[i]))
				mw.addWarning("Type of "..tablet2..":g2["..(i+1).."] is "..type(g2[i+1]))
				mw.addWarning("Type of "..tablet2..":g2["..(i+2).."] is "..type(g2[i+2]))
				mw.addWarning("Type of "..tablet1..":f(g1["..i.."]) is "..type(f(g1[i])))
				mw.addWarning("Type of "..tablet1..":f(g1["..(i+1).."]) is "..type(f(g1[i+1])))
				mw.addWarning("Type of "..tablet1..":f(g1["..(i+2).."]) is "..type(f(g1[i+2])))
				mw.addWarning("Type of "..tablet2..":f(g2["..i.."]) is "..type(f(g2[i])))
				mw.addWarning("Type of "..tablet2..":f(g2["..(i+1).."]) is "..type(f(g2[i+1])))
				mw.addWarning("Type of "..tablet2..":f(g2["..(i+2).."]) is "..type(f(g2[i+2])))
			end
			got =  spaceJoin(f(g1[i]))..' ; '..spaceJoin(f(g1[i+1]))..' ; '..spaceJoin(f(g1[i+2]))
		  ..' ; '..spaceJoin(f(g2[i]))..' ; '..spaceJoin(f(g2[i+1]))..' ; '..spaceJoin(f(g2[i+2]))
		 else
			exp =  spaceJoin(r1[i])..' ; '..spaceJoin(r1[i+1])..' ; '..spaceJoin(r1[i+2])
			got =  spaceJoin(f(g1[i]))..' ; '..spaceJoin(f(g1[i+1]))..' ; '..spaceJoin(f(g1[i+2]))
		end
		got = to_IAST(got)
		if exp ~= got then -- Add arguments.
			exp = {exp}
			if r1.why             then ti(exp, r1.why); end
			if r1[i].why          then ti(exp, r1[i].why); end
			if r1[i+1].why        then ti(exp, r1[i+1].why); end
			if r1[i+2].why        then ti(exp, r1[i+2].why); end
			if r2 and r2.why      then ti(exp, r2.why); end
			if r2 and r2[i].why   then ti(exp, r2[i].why); end
			if r2 and r2[i+1].why then ti(exp, r2[i+1].why); end
			if r2 and r2[i+2].why then ti(exp, r2[i+2].why); end
			exp = table.concat(exp, "<br/>")

			got = {got}
			if r1.whynot             then ti(got, r1.whynot); end
			if r1[i].whynot          then ti(got, r1[i].whynot); end
			if r1[i+1].whynot        then ti(got, r1[i+1].whynot); end
			if r1[i+2].whynot        then ti(got, r1[i+2].whynot); end
			if r2 and r2.whynot      then ti(got, r2.whynot); end
			if r2 and r2[i].whynot   then ti(got, r2[i].whynot); end
			if r2 and r2[i+1].whynot then ti(got, r2[i+1].whynot); end
			if r2 and r2[i+2].whynot then ti(got, r2[i+2].whynot); end
			got = table.concat(got, "<br/>")
		end
		tests:equals(label..num[i], got, exp,
			{show_difference = true}) -- to_script(exp, tests.sc, tests.option))
	end
end

local whyant = "Whitney e.g. Para 741 cites participles in strong form.  "..
				"See [[Wiktionary talk:About Sanskrit#Inflectional types of "..
				"present active participle|discussion]]."
local irs3_strong = "3s imperative active is strong.  McDonnell concurs."
local notat2 = "Whitney reports that in Class 2, -tāt only occurs for 6 roots, and this is not one of them."
local notat3 = "Whitney reports that in Class 3, -tāt only occurs for 4 roots, and this is not one of them."
local notat4 = "Whitney reports that in Class 4, -tāt only occurs for 3 roots, and this is not one of them."
local notat5 = "Whitney does not report -tāt for Classes 5 and 8."
local notat7 = "Whitney denies the existence of -tāt for Class 7."
local notat9 = "Whitney reports that in Class 9, -tāt only occurs for 3 roots, and this is not one of them."
local hi_after_vowel = "2s ending is -hi rather than -dhi after vowels."
local tat2sonly = "Whitney inflection details mention ony 2s, not 3s, in -tāt."

function dhvam_why(letter)
	local argument = {"See [https://en.wikisource.org/wiki/",
				"Page%3ASanskrit_Grammar_",
				"by_Whitney_p1.djvu/105 Whitney] 226c for the retroflexion in ",
				"the 2p marker.  "}
	if letter == "is s" then
		-- s-aorist.
	elseif string.match(letter, "[yrlv]") then
		ti(argument, "The '")
		ti(argument, letter)
		ti(argument, "' is a semivowel.")
	elseif letter == 'h' then
		ti(argument, "Note the letter 'h'.")
	else
		ti(argument, "The '")
		ti(argument, letter)
		ti(argument, "' is a not semivowel.")
	end
	return table.concat(argument)
end

local bhavati_ref = {
	presa = { -- Whitney Para 735, but with ḥ for final s.
		{"bhávāmi"}, {"bhávāvaḥ"}, {"bhávāmaḥ"},
		{"bhávasi"}, {"bhávathaḥ"}, {"bhávatha"},
		{"bhávati"}, {"bhávataḥ"}, {"bhávanti"}
	},
	presm = { -- Whitney Para 735
		{"bháve"}, {"bhávāvahe"}, {"bhávāmahe"},
		{"bhávase"}, {"bhávethe"}, {"bhávadhve"},
		{"bhávate"}, {"bhávete"}, {"bhávante"}
	},
	subja = { -- Whitney Para 736, but with ḥ for final s.
		{"bhávāni"}, {"bhávāva"}, {"bhávāma"},
		{"bhávāsi", "bhávāḥ"}, {"bhávāthaḥ"}, {"bhávātha"},
		{"bhávāti", "bhávāt"}, {"bhávātaḥ"}, {"bhávān"}
	},
	subjm = { -- Whitney Para 736
		{"bhávai"}, {"bhávāvahai"}, {"bhávāmahai"},
		{"bhávāse", "bhávāsai"}, {}, {"bhávādhvai"},
		{"bhávāte", "bhávātai"}, {"bhávaite"}, {"bhávanta", "bhávāntai"}
	},
	optaa = { -- Whitney Para 738, but with ḥ for final s.
		{"bháveyam"}, {"bháveva"}, {"bhávema"},
		{"bháveḥ"}, {"bhávetam"}, {"bháveta"},
		{"bhávet"}, {"bhávetām"}, {"bháveyuḥ"},
	},
	optam = { -- Whitney Para 738, but with ḥ for final s.
		{"bháveya"}, {"bhávevahi"}, {"bhávemahi"},
		{"bhávethāḥ"}, {"bháveyāthām"}, {"bhávedhvam"},
		{"bháveta"}, {"bháveyātām"}, {"bháveran"},
	},
	impra = { -- Whitney Para 739 & 740. 
		{"bhávāni"}, {"bhávāva"}, {"bhávāma"},
		{"bháva", "bhávatāt"}, {"bhávatam"}, {"bhávata"},
		{"bhávatu", why = tat2sonly}, {"bhávatām"}, {"bhávantu"},
	},
	impra_reg = { -- Remove -tāt
		{"bhávāni"}, {"bhávāva"}, {"bhávāma"},
		{"bháva"}, {"bhávatam"}, {"bhávata"},
		{"bhávatu"}, {"bhávatām"}, {"bhávantu"},
	},
	imprm = { -- Whitney Para 739.
		{"bhávai"}, {"bhávāvahai"}, {"bhávāmahai"},
		{"bhávasva"}, {"bhávethām"}, {"bhávadhvam"},
		{"bhávatām"}, {"bhávetām"}, {"bhávantām"},
	},
	pap = {"bhávant", whynot = whyant},   -- Whitney Para 741.
	pmp = {"bhávamāna"}, -- Whitney Para 741.
	impfa = { -- Whitney Para 742, but with ḥ for final s.
		{"ábhavam"}, {"ábhavāva"}, {"ábhavāma"},
		{"ábhavaḥ"},{"ábhavatam"}, {"ábhavata"},
		{"ábhavat"}, {"ábhavatām"}, {"ábhavan"},
	},
	impfm = { -- Whitney Para 742, but with ḥ for final s.
		{"ábhave"}, {"ábhavāvahi"}, {"ábhavāmahi"},
		{"ábhavathāḥ"}, {"ábhavethām"}, {"ábhavadhvam"},
		{"ábhavata"}, {"ábhavetām"}, {"ábhavanta"},
	},
-- Injunctive form of the aboveː
	impfja = { -- Whitney Para 742 + 743, but with ḥ for final s.
		{"bhávam"}, {"bhávāva"}, {"bhávāma"},
		{"bhávaḥ"},{"bhávatam"}, {"bhávata"},
		{"bhávat"}, {"bhávatām"}, {"bhávan"},
	},
	impfjm = { -- Whitney Para 742 + 743, but with ḥ for final s.
		{"bháve"}, {"bhávāvahi"}, {"bhávāmahi"},
		{"bhávathāḥ"}, {"bhávethām"}, {"bhávadhvam"},
		{"bhávata"}, {"bhávetām"}, {"bhávanta"},
	},
}

local eti_ref = {
	presa = { -- Whitney Para 612a, but with ḥ for final s.
		{"émi"}, {"iváḥ"}, {"imáḥ"},
		{"éṣi"}, {"itháḥ"}, {"ithá"},
		{"éti"}, {"itáḥ"}, {"yánti"}
	},
	subja = { -- Whitney Para 614a, but with ḥ for final s.
		{"áyāni", "áyā"}, {"áyāva"}, {"áyāma"},
		{"áyasi", "áyaḥ"}, {"áyathaḥ"}, {"áyatha"},
		{"áyati", "áyat"}, {"áyataḥ"}, {"áyan"}
	},
	optaa = { -- Whitney Para 616a, but with ḥ for final s.
		{"iyā́m"}, {"iyā́va"}, {"iyā́ma"},
		{"iyā́ḥ"}, {"iyā́tam"}, {"iyā́ta"},
		{"iyā́t"}, {"iyā́tām"}, {"iyúḥ"},
	},
	impra = { -- Whitney Para 617a. 
		{"áyāni"}, {"áyāva"}, {"áyāma"},
		{"ihí", why = hi_after_vowel .. "<br/>"..notat2}, {"itám"}, {"itá"},
		{"étu", why = tat2sonly}, {"itā́m"}, {"yántu"},
	},
	pap = {"yánt", whynot = whyant},   -- Whitney Para 619.
	pmp = {"iyāná"}, -- Whitney Para 619.
	impfa = { -- Whitney Para 620a, but with ḥ for final s.
		{"ā́yam"}, {"aíva"}, {"aíma"},
		{"aíḥ"},{"aítam"}, {"aíta"},
		{"aít"}, {"aítām"}, {"ā́yan"},
	},
-- Injunctive form of the aboveː
	impfja = nil -- Whitney Para 622
}

local aste_ref = {
	presm = { -- Whitney Para 612a
		{"ā́se"}, {"ā́svahe"}, {"ā́smahe"},
		{"ā́sse"}, {"ā́sāthe"}, {"ā́ddhve"},
		{"ā́ste"}, {"ā́sāte"}, {"ā́sate"}
	},
	subjm = { -- Whitney Para 614a
		{"ā́sai"}, {"ā́sāvahai", "ā́sāvahe"}, {"ā́sāmahai", "ā́sāmehe"},
		{"ā́sase", "ā́sāsai"}, {"ā́saithe"}, {"ā́sadhve", "ā́sādhvai"},
		{"ā́sate", "ā́sātai"}, {"ā́saite"}, {"ā́sante", "ā́santa", "ā́sāntai"}
	},
	optam = { -- Whitney Para 616a, but with ḥ for final s.
		{"ā́sīya"}, {"ā́sīvahi"}, {"ā́sīmahi"},
		{"ā́sīthāḥ"}, {"ā́sīyāthām"}, {"ā́sīdhvam"},
		{"ā́sīta"}, {"ā́sīyātām"}, {"ā́sīran"},
	},
	imprm = { -- Whitney Para 617a.
		{"ā́sai"}, {"ā́sāvahai"}, {"ā́sāmahai"},
		{"ā́ssva"}, {"ā́sāthām"}, {"ā́ddhvam"},
		{"ā́stām"}, {"ā́sātām"}, {"ā́satām"},
	},
	pap = {},   -- Whitney Para 619.
	pmp = {"ā́sīna", "āsāná"}, -- Whitney Para 619c.
	pmp_reg = {"ā́sāna"},
	impfm = { -- Whitney Para 620a, but with ḥ for final s.
		{"ā́si"}, {"ā́svahi"}, {"ā́smahi"},
		{"ā́sthāḥ"}, {"ā́sāthām"}, {"ā́ddhvam"},
		{"ā́sta"}, {"ā́sātām"}, {"ā́sata"},
	},
-- Injunctive form of the aboveː
	impfjm = nil -- Whitney Para 622.
}

local dvesti_ref = {
	presa = { -- Whitney Para 612a, but with ḥ for final s.
		{"dvéṣmi"}, {"dviṣváḥ"}, {"dviṣmáḥ"},
		{"dvékṣi"}, {"dviṣṭháḥ"}, {"dviṣṭhá"},
		{"dvéṣṭi"}, {"dviṣṭáḥ"}, {"dviṣánti"}
	},
	presm = { -- Whitney Para 612a
		{"dviṣé"}, {"dviṣváhe"}, {"dviṣmáhe"},
		{"dvikṣé"}, {"dviṣā́the"}, {"dviḍḍhvé"},
		{"dviṣṭé"}, {"dviṣā́te"}, {"dviṣáte"}
	},
--	subja = { -- Whitney Para 614a, but with ḥ for final s.
--		{""}, {""}, {""},
--		{"", ""}, {""}, {""},
--		{"", ""}, {""}, {""}
--	},
--	subjm = { -- Whitney Para 614a
--		{""}, {""}, {""},
--		{"", ""}, {}, {""},
--		{"", ""}, {""}, {"", ""}
--	},
	optaa = { -- Whitney Para 616a, but with ḥ for final s.
		{"dviṣyā́m"}, {"dviṣyā́va"}, {"dviṣyā́ma"},
		{"dviṣyā́ḥ"}, {"dviṣyā́tam"}, {"dviṣyā́ta"},
		{"dviṣyā́t"}, {"dviṣyā́tām"}, {"dviṣyúḥ"},
	},
	optam = { -- Whitney Para 616a, but with ḥ for final s.
		{"dviṣīyá"}, {"dviṣīváhi"}, {"dviṣīmáhi"},
		{"dviṣīthā́ḥ"}, {"dviṣīyā́thām"}, {"dviṣīdhvám"},
		{"dviṣītá"}, {"dviṣīyā́tām"}, {"dviṣīrán"},
	},
	impra = { -- Whitney Para 617b.
		{"dvéṣāṇi", why = "''r'' and ''ṣ'' act alike on ''n''."},
					{"dvéṣāva"}, {"dvéṣāma"},
		{"dviḍḍhí", why = notat2}, {"dviṣṭám"}, {"dviṣṭá"},
		{"dvéṣṭu", why = tat2sonly}, {"dviṣṭā́m"}, {"dviṣántu"},
	},
	imprm = { -- Whitney Para 617b.
		{"dvéṣai"}, {"dvéṣāvahai"}, {"dvéṣāmahai"},
		{"dvikṣvá"}, {"dviṣā́thām"}, {"dviḍḍhvám"},
		{"dviṣṭā́m"}, {"dviṣā́tām"}, {"dviṣátām"},
	},
	pap = {"dviṣánt", whynot = whyant},   -- Whitney Para 619.
	pmp = {"dviṣāṇá"}, -- Whitney Para 619.
	impfa = { -- Whitney Para 620a, but with ḥ for final s.
		{"ádveṣam"}, {"ádviṣva"}, {"ádviṣma"},
		{"ádveṭ"},{"ádviṣṭam"}, {"ádviṣṭa"},
		{"ádveṭ"}, {"ádviṣṭām"}, {"ádviṣan"},
	},
	impfm = { -- Whitney Para 620a, but with ḥ for final s.
		{"ádviṣi"}, {"ádviṣvahi"}, {"ádviṣmahi"},
		{"ádviṣṭhāḥ"}, {"ádviṣāthām"}, {"ádviḍḍhvam"},
		{"ádviṣṭa"}, {"ádviṣātām"}, {"ádviṣata"},
	},
-- Injunctive form of the aboveː
	impfja = nil, -- Whitney Para 622.
	impfjm = nil, -- Whitney Para 622.
}

local dogdhi_ref = {
	presa = { -- Whitney Para 612c, but with ḥ for final s.
		{"dóhmi"}, {"duhváḥ"}, {"duhmáḥ"},
		{"dhókṣi"}, {"dugdháḥ"}, {"dugdhá"},
		{"dógdhi"}, {"dugdháḥ"}, {"duhánti"}
	},
	presm = { -- Whitney Para 612c
		{"duhé"}, {"duhváhe"}, {"duhmáhe"},
		{"dhukṣé"}, {"duhā́the"}, {"dhugdhvé"},
		{"dugdhé"}, {"duhā́te"}, {"duháte"}
	},
--	subja = { -- Whitney Para 614a, but with ḥ for final s.
--		{""}, {""}, {""},
--		{"", ""}, {""}, {""},
--		{"", ""}, {""}, {""}
--	},
--	subjm = { -- Whitney Para 614a
--		{""}, {""}, {""},
--		{"", ""}, {}, {""},
--		{"", ""}, {""}, {"", ""}
--	},
	optaa = { -- Whitney Para 616a, but with ḥ for final s.
		{"duhyā́m"}, {"duhyā́va"}, {"duhyā́ma"},
		{"duhyā́ḥ"}, {"duhyā́tam"}, {"duhyā́ta"},
		{"duhyā́t"}, {"duhyā́tām"}, {"duhyúḥ"},
	},
	optam = { -- Whitney Para 616a, but with ḥ for final s.
		{"duhīyá"}, {"duhīváhi"}, {"duhīmáhi"},
		{"duhīthā́ḥ"}, {"duhīyā́thām"}, {"duhīdhvám"},
		{"duhītá"}, {"duhīyā́tām"}, {"duhīrán"},
	},
	impra = { -- Whitney Para 617b. 
		{"dóhāni"}, {"dóhāva"}, {"dóhāma"},
		{"dugdhí", why = notat2}, {"dugdhám"}, {"dugdhá"},
		{"dógdhu", why = tat2sonly}, {"dugdhā́m"}, {"duhántu"},
	},
	imprm = { -- Whitney Para 617b.
		{"dóhai"}, {"dóhāvahai"}, {"dóhāmahai"},
		{"dhukṣvá"}, {"duhā́thām"}, {"dhugdhvám"},
		{"dugdhā́m"}, {"duhā́tām"}, {"duhátām"},
	},
	pap = {"duhánt", whynot = whyant},   -- Whitney Para 619a.
	pmp = {"duhāná", "dúhāna", "dúghāna"}, -- Whitney Para 619.
	pmp_reg = {"duhāná"},
	impfa = { -- Whitney Para 620b.
		{"ádoham"}, {"áduhva"}, {"áduhma"},
		{"ádhok"}, {"ádugdham"}, {"ádugdha"},
		{"ádhok"}, {"ádugdhām"}, {"áduhan"},
	},
	impfm = { -- Whitney Para 620b, but with ḥ for final s.
		{"áduhi"}, {"áduhvahi"}, {"áduhmahi"},
		{"ádugdhāḥ"}, {"áduhāthām"}, {"ádhugdhvam"},
		{"ádugdha"}, {"áduhātām"}, {"áduhata"},
	},
-- Injunctive form of the aboveː
	impfja = nil, -- Whitney Para 622.
	impfjm = nil, -- Whitney Para 622.
}

local ledhi_ref = {
	presa = { -- Whitney Para 612d, but with ḥ for final s.
		{"léhmi"}, {"lihváḥ"}, {"lihmáḥ"},
		{"lékṣi"}, {"līḍháḥ"}, {"līḍhá"},
		{"léḍhi"}, {"līḍháḥ"}, {"lihánti"}
	},
	presm = { -- Whitney Para 612d
		{"lihé"}, {"lihváhe"}, {"lihmáhe"},
		{"likṣé"}, {"lihā́the"}, {"līḍhvé"},
		{"līḍhé"}, {"lihā́te"}, {"liháte"}
	},
--	subja = { -- Whitney Para 614a, but with ḥ for final s.
--		{""}, {""}, {""},
--		{"", ""}, {""}, {""},
--		{"", ""}, {""}, {""}
--	},
--	subjm = { -- Whitney Para 614a
--		{""}, {""}, {""},
--		{"", ""}, {}, {""},
--		{"", ""}, {""}, {"", ""}
--	},
	optaa = { -- Whitney Para 616a, but with ḥ for final s.
		{"lihyā́m"}, {"lihyā́va"}, {"lihyā́ma"},
		{"lihyā́ḥ"}, {"lihyā́tam"}, {"lihyā́ta"},
		{"lihyā́t"}, {"lihyā́tām"}, {"lihyúḥ"},
	},
	optam = { -- Whitney Para 616a, but with ḥ for final s.
		{"lihīyá"}, {"lihīváhi"}, {"lihīmáhi"},
		{"lihīthā́ḥ"}, {"lihīyā́thām"}, {"lihīdhvám"},
		{"lihītá"}, {"lihīyā́tām"}, {"lihīrán"},
	},
	impra = { -- Whitney Para 617b. 
		{"léhāni"}, {"léhāva"}, {"léhāma"},
		{"līḍhí", why = notat2}, {"līḍhám"}, {"līḍhá"},
		{"léḍhu", why = tat2sonly}, {"līḍhā́m"}, {"lihántu"},
	},
	imprm = { -- Whitney Para 617b.
		{"léhai"}, {"léhāvahai"}, {"léhāmahai"},
		{"likṣvá"}, {"lihā́thām"}, {"līḍhvám"},
		{"līḍhā́m"}, {"lihā́tām"}, {"lihátām"}, 
	},
	pap = {"lihánt", whynot = whyant},   -- Whitney Para 619a.
	pmp = {"lihāná"}, -- Whitney Para 619b.
	impfa = { -- Whitney Para 620b.
		{"áleham"}, {"álihva"}, {"álihma"},
		{"áleṭ"},{"álīḍham"}, {"álīḍha"},
		{"áleṭ"}, {"álīḍhām"}, {"álihan"},
	},
	impfm = { -- Whitney Para 620b, but with ḥ for final s.
		{"álihi"}, {"álihvahi"}, {"álihmahi"},
		{"álīḍhāḥ"}, {"álihāthām"}, {"álīḍhvam"},
		{"álīḍha"}, {"álihātām"}, {"álihata"},
	},
-- Injunctive form of the aboveː
	impfja = nil, -- Whitney Para 622.
	impfjm = nil, -- Whitney Para 622.
}

local asti_ref = {
	presa = { -- Whitney Para 636a + 636c + 636d, but with ḥ for final s.
		{"ásmi"}, {"sváḥ", "sva"}, {"smáḥ", "sma"},
		{"ási"}, {"stháḥ"}, {"sthá", "sthána"},
		{"ásti"}, {"stáḥ"}, {"sánti"}
	},
	presm = { -- Whitney Para 636d
		{}, {}, {"smahe"}, {}, {}, {}, {}, {}, {}
	},
--	subja = { -- Whitney Para 614a, but with ḥ for final s.
--		{""}, {""}, {""},
--		{"", ""}, {""}, {""},
--		{"", ""}, {""}, {""}
--	},
	optaa = { -- Whitney Para 636a + 636d, but with ḥ for final s.
		{"syā́m"}, {"syā́va", "syāvaḥ"}, {"syā́ma", "syāmaḥ"},
		{"syā́ḥ"}, {"syā́tam"}, {"syā́ta"},
		{"syā́t"}, {"syā́tām"}, {"syúḥ"},
	},
	optam = { -- Whitney Para 636d
		{}, {}, {"syāmahe"}, {}, {}, {}, {}, {}, {}
	},
	impra = { -- Whitney Para 636a. 
		{"ásāni"}, {"ásāva"}, {"ásāma"},
		{"edhí"}, {"stám"}, {"stá"},
		{"ástu", why = tat2sonly}, {"stā́m"}, {"sántu"},
		why = "Whitney Para 740 mentions ony 2s, not 3s, in -tāt.",
	},
	pap = {"sánt", whynot = whyant},   -- Whitney Para 636a.
	pmp = nil, -- Whitney Para 636a.
	impfa = { -- Whitney Para 636a and 636c but with ḥ for final s.
		{"ā́sam"}, {"ā́sva"}, {"ā́sma"},
		{"ā́sīḥ", "ā́ḥ"}, {"ā́stam"}, {"ā́sta"},
		{"ā́sīt", "ā́ḥ"}, {"ā́stām"}, {"ā́san"},
	},
-- Injunctive form of the aboveː
--	impfja = { -- Whitney Para 620 + 622, but with ḥ for final s.
--		{}, {""}, {""},
--		{""},{""}, {""},
--		{""}, {""}, {""},
--	},
--	impfjm = { -- Whitney Para 620 + 622, but with ḥ for final s.
--		{""}, {""}, {""},
--		{""}, {""}, {""},
--		{""}, {""}, {""},
--	},
}

local hanti_ref = { -- Converted by RichardW57 from ledhi_ref in accordance with Whitney
                    -- Para 637 unless otherwise stated, and so deduced discrepancies must
                    -- be treated with extreme caution.
	presa = { -- Whitney Para 637, but with ḥ for final s.
		{"hánmi"}, {"hanváḥ"}, {"hanmáḥ"},
		{"háṃsi"}, {"hatháḥ"}, {"hathá"}, -- Note that Whitney's ṅ is an anusvara, so changed to ṃ.
		{"hánti"}, {"hatáḥ"}, {"ghnánti"}
	},
	presm = {
		{"ghné"}, {"hanváhe"}, {"hanmáhe"},
		{"hasé"}, {"ghnā́the"}, {"hadhvé"},
		{"haté"}, {"ghnā́te"}, {"ghnáte"}
	},
--	subja = {
--		{""}, {""}, {""},
--		{"", ""}, {""}, {""},
--		{"", ""}, {""}, {""}
--	},
--	subjm = {
--		{""}, {""}, {""},
--		{"", ""}, {}, {""},
--		{"", ""}, {""}, {"", ""}
--	},
	optaa = {
		{"hanyā́m"}, {"hanyā́va"}, {"hanyā́ma"},
		{"hanyā́ḥ"}, {"hanyā́tam"}, {"hanyā́ta"},
		{"hanyā́t"}, {"hanyā́tām"}, {"hanyúḥ"},
	},
	optam = { -- 2nd form of 3s from Whitney Para 637b.
		{"ghnīyá"}, {"ghnīváhi"}, {"ghnīmáhi"},
		{"ghnīthā́ḥ"}, {"ghnīyā́thām"}, {"ghnīdhvám"},
		{"ghnītá", "hanītá"}, {"ghnīyā́tām"}, {"ghnīrán"},
	},
	impra = { -- Imperative 2s by Whitney 637a and 618.
		{"hánāni"}, {"hánāva"}, {"hánāma"},
		{"jahí", "hatāt"}, {"hatám"}, {"hatá"},
		{"hántu", why = tat2sonly}, {"hatā́m"}, {"ghnántu"},
	},
	imprm = {
		{"hánai"}, {"hánāvahai"}, {"hánāmahai"},
		{"hasvá"}, {"ghnā́thām"}, {"hadhvám"},
		{"hatā́m"}, {"ghnā́tām"}, {"ghnátām"},
	},
	pap = {"ghnánt", whynot = whyant},   -- Whitney Para 637.
	pmp = {"ghnāná"}, -- Whitney Para 619b.
	impfa = { -- Whitney Para 620b.
		{"áhanam"}, {"áhanva"}, {"áhanma"},
		{"áhan"},{"áhatam"}, {"áhata"},
		{"áhan"}, {"áhatām"}, {"ághnan"},
	},
	impfm = { -- 2nd form of 3p from Whitney Para 637b
		{"ághni"}, {"áhanvahi"}, {"áhanmahi"},
		{"áhathāḥ"}, {"ághnāthām"}, {"áhadhvam"},
		{"áhata"}, {"ághnātām"}, {"ághnata", "áhata"},
	},
-- Injunctive form of the aboveː
	impfja = nil, -- Whitney Para 622.
	impfjm = nil, -- Whitney Para 622.
}

juhoti_ref = {
	presa = { -- Whitney Para 647a with final s replaced by ḥ.
		{"juhómi"}, {"juhuváḥ"}, {"juhumáḥ"},
		{"juhóṣi"}, {"juhutháḥ"}, {"juhuthá"},
		{"juhóti"}, {"juhutáḥ"}, {"júhvati"},
	},
	presm = { -- Whitney Para 647a
		{"júhve"}, {"juhuváhe"}, {"juhumáhe"},
		{"juhuṣé"}, {"júhvāthe"}, {"juhudhvé"},
		{"juhuté"}, {"júhvāte"}, {"júhvate"},
	},
	optaa = { -- Whitney Para 651 for 1st person.  By analogy for others.
		{"juhuyā́m"}, {"juhuyā́va"}, {"juhuyā́ma"	},
		{"juhuyā́ḥ"}, {"juhuyā́tam"}, {"juhuyā́ta"},
		{"juhuyā́t"}, {"juhuyā́tām"}, {"juhuyúḥ"},
	},
	optam = { -- Whitney Para 651 for 1st person.  By analogy for others.
		{"júhvīya"}, {"júhvīvahi"}, {"júhvīmahi"},
		{"júhvīthāḥ"}, {"júhvīyāthām"}, {"júhvīdhvam"},
		{"júhvīta"}, {"júhvīyātām"}, {"júhvīran"},
		},
	impra = { -- Whitney Para 653a
		{"juhávāni"}, {"juhávāva"}, {"juhávāma"},
		{"juhudhí", why = notat3}, {"juhutám"}, {"juhutá"}, -- 2s irregular!
		{"juhótu", why = tat2sonly}, {"juhutā́m"}, {"júhvatu"},
	},
	imprm = { -- Whitney Para 653b
		{"juhávai"}, {"juhávāvahai"}, {"juhávāmahai"},
		{"juhuṣvá"}, {"júhvāthām"}, {"juhudhvám"},
		{"juhutā́m"}, {"júhvātām"}, {"júhvatām"},
	},
	optaa = { -- Whitney Para 651 for 1st person.  By analogy for others.
		{"juhuyā́m"}, {"juhuyā́va"}, {"juhuyā́ma"	},
		{"juhuyā́ḥ"}, {"juhuyā́tam"}, {"juhuyā́ta"},
		{"juhuyā́t"}, {"juhuyā́tām"}, {"juhuyúḥ"},
	},
	optam = { -- Whitney Para 651 for 1st person.  By analogy for others.
		{"júhvīya"}, {"júhvīvahi"}, {"júhvīmahi"},
		{"júhvīthāḥ"}, {"júhvīyāthām"}, {"júhvīdhvam"},
		{"júhvīta"}, {"júhvīyātām"}, {"júhvīran"},
		},
	pap = {"júhvat"},
	pmp = {"júhvāna"},
	impfa = { -- Whitney Para 657
		{"ájuhavam"}, {"ájuhuva"}, {"ájuhuma"},
		{"ájuhoḥ"}, {"ájuhutam"}, {"ájuhuta"},
		{"ájuhot"}, {"ájuhutām"}, {"ájuhavuḥ"},
	},
	impfm = { -- Whitney Para 657 with final s replaced by ḥ.
		{"ájuhvi"}, {"ájuhuvahi"}, {"ájuhumahi"},
		{"ájuhuthāḥ"}, {"ájuhvāthām"}, {"ájuhudhvam"},
		{"ájuhuta"}, {"ájuhvātām"}, {"ájuhvata"},
	},
}
bibharti_ref = {
	presa = { -- Whitney Para 647b with final s replaced by ḥ.
		{"bíbharmi"}, {"bibhṛváḥ"}, {"bibhṛmáḥ"},
		{"bíbharṣi"}, {"bibhṛtháḥ"}, {"bibhṛthá"},
		{"bíbharti"}, {"bibhṛtáḥ"}, {"bíbhrati"},
	},
	presm = { -- Whitney Para 647b 
		{"bíbhre"}, {"bibhṛváhe"}, {"bibhṛmáhe"},
		{"bibhṛṣé"}, {"bíbhrāthe"}, {"bibhṛdhvé"},
		{"bibhṛté"}, {"bíbhrāte"}, {"bíbhrate"},
	},
	optaa = { -- Whitney Para 651 says these are obvious, so composed by RichardW57m.
		{"bibhṛyā́m"}, {"bibhṛyā́va"}, {"bibhṛyā́ma"	},
		{"bibhṛyā́ḥ"}, {"bibhṛyā́tam"}, {"bibhṛyā́ta"},
		{"bibhṛyā́t"}, {"bibhṛyā́tām"}, {"bibhṛyúḥ"},
	},
	optam = { -- Whitney Para 651  says these are obvious, so composed by RichardW57m.
		{"bíbhrīya"}, {"bíbhrīvahi"}, {"bíbhrīmahi"},
		{"bíbhrīthāḥ"}, {"bíbhrīyāthām"}, {"bíbhrīdhvam"},
		{"bíbhrīta"}, {"bíbhrīyātām"}, {"bíbhrīran"},
	},
	impra = { -- Whitney Para 653a as modified by Para 654b
		{"bíbharāṇi"}, {"bíbharāva"}, {"bíbharāma"},
		{"bibhṛhí", why = hi_after_vowel..'<br/>'..notat3},
					{"bibhṛtám"}, {"bibhṛtá"},
		{"bíbhartu", why = tat2sonly}, {"bibhṛtā́m"}, {"bíbhratu"},
	},
	imprm = { -- Whitney Para 653b as modified by Para 654b
		{"bíbharai"}, {"bíbharāvahai"}, {"bíbharāmahai"},
		{"bibhṛṣvá"}, {"bíbhrāthām"}, {"bibhṛdhvám"},
		{"bibhṛtā́m"}, {"bíbhrātām"}, {"bíbhratām"},
	},
	pap = {"bíbhrat"},
	pmp = {"bíbhrāṇa"},
	impfa = { -- Based on Whitney Para 657 with final r and s replaced by ḥ.
		{"ábibharam"}, {"ábibhṛva"}, {"ábibhṛma"},
		{"ábibhaḥ"}, {"ábibhṛtam"}, {"ábibhṛta"},
		{"ábibhaḥ"}, {"ábibhṛtām"}, {"ábibharuḥ"},
	},
	impfm = { -- Based on Whitney Para 657
		{"ábibhri"}, {"ábibhṛvahi"}, {"ábibhṛmahi"},
		{"ábibhṛthāḥ"}, {"ábibhrāthām"}, {"ábibhṛdhvam"},
		{"ábibhṛta"}, {"ábibhrātām"}, {"ábibhrata"},
	},
}

local dadhati_ref = {
	presa = { -- Whitney Para 668, but with ḥ for final s.
		{"dádhāmi"}, {"dadhváḥ"}, {"dadhmáḥ"},
		{"dádhāsi"}, {"dhattháḥ"}, {"dhatthá"},
		{"dádhāti"}, {"dhattáḥ"}, {"dádhati"}
	},
	presm = { -- Whitney Para 668
		{"dadhé"}, {"dádhvahe"}, {"dádhmahe"},
		{"dhatsé"}, {"dadhāthe"}, {"dhaddhve"},
		{"dhatté"}, {"dadhā́te"}, {"dádhate"}
	},
--	subja = { -- Whitney Para 614a, but with ḥ for final s.
--		{""}, {""}, {""},
--		{"", ""}, {""}, {""},
--		{"", ""}, {""}, {""}
--	},
--	subjm = { -- Whitney Para 614a
--		{""}, {""}, {""},
--		{"", ""}, {}, {""},
--		{"", ""}, {""}, {"", ""}
--	},
	optaa = { -- Whitney Para 668, but with ḥ for final s.
		{"dadhyā́m"}, {"dadhyā́va"}, {"dadhyā́ma"},
		{"dadhyā́ḥ"}, {"dadhyā́tam"}, {"dadhyā́ta"},
		{"dadhyā́t"}, {"dadhyā́tām"}, {"dadhyúḥ"},
	},
	optam = { -- Whitney Para 668, but with ḥ for final s.
		{"dádhīya"}, {"dádhīvahi"}, {"dádhīmahi"},
		{"dádhīthāḥ"}, {"dádhīyāthām"}, {"dádhīdhvam"},
		{"dádhīta"}, {"dádhīyātām"}, {"dádhīran"},
	},
	impra = { -- Whitney Para 668 and 669(4).
		{"dádhāni"}, {"dádhāva"}, {"dádhāma"},
--		{"dhehí", "daddhí", "dhattā́t"}, -- Preferred ordering
		{"daddhí", "dhattā́t", "dhehí", }, -- Better for matching.
				{"dhattám"},
				{"dhattá", "dhattána", "dádhāta", "dádhātana"}, -- Para 669(1),  Not dattana
		{"dádhātu", why = "Whitney Para 654 mentions ony 2s, not 3s, in -tāt."},
						{"dhattā́m"}, {"dádhatu"},
	},
	imprm = { -- Whitney Para 668.
		{"dádhai"}, {"dádhāvahai"}, {"dádhāmahai"},
		{"dhatsva"}, {"dadhāthām"}, {"dhaddhvam"},
		{"dhattām"}, {"dadhātām"}, {"dadhatām"},
	},
	pap = {"dádhat"},  -- Whitney Para 668.
	pmp = {"dádhāna"}, -- Whitney Para 668.
	impfa = { -- Whitney Para 668, but with ḥ for final s.
		{"ádadhām"}, {"ádadhva"}, {"ádadhma"},
		{"ádadhāḥ"}, {"ádhattam"}, {"ádhatta"},
		{"ádadhāt"}, {"ádhattām"}, {"ádadhuḥ"},
	},
	impfm = { -- Whitney Para 668, but with ḥ for final s.
		{"ádadhi"}, {"ádadhvahi"}, {"ádadhmahi"}, 
		{"ádhatthāḥ"}, {"ádadhāthām"}, {"ádhaddhvam"},
		{"ádhatta"}, {"ádadhātām"}, {"ádadhata"},
	},
-- Injunctive form of the aboveː
--	impfja = { -- Whitney Para 620 + 622, but with ḥ for final s.
--		{}, {""}, {""},
--		{""},{""}, {""},
--		{""}, {""}, {""},
--	},
--	impfjm = { -- Whitney Para 620 + 622, but with ḥ for final s.
--		{""}, {""}, {""},
--		{""}, {""}, {""},
--		{""}, {""}, {""},
--	},
}

local dadati_ref = { -- Adapted from dadati_ref - checked against https://sanskrit.inria.fr
	presa = {
		{"dádāmi"}, {"dadváḥ"}, {"dadmáḥ"},
		{"dádāsi"}, {"dattháḥ"}, {"datthá"},
		{"dádāti"}, {"dattáḥ"}, {"dádati"}
	},
	presm = {
		{"dadé"}, {"dádvahe"}, {"dádmahe"},
		{"datsé"}, {"dadāthe"}, {"daddhve"},
		{"datté"}, {"dadā́te"}, {"dádate"}
	},
--	subja = { -- Whitney Para 614a, but with ḥ for final s.
--		{""}, {""}, {""},
--		{"", ""}, {""}, {""},
--		{"", ""}, {""}, {""}
--	},
--	subjm = { -- Whitney Para 614a
--		{""}, {""}, {""},
--		{"", ""}, {}, {""},
--		{"", ""}, {""}, {"", ""}
--	},
	optaa = {
		{"dadyā́m"}, {"dadyā́va"}, {"dadyā́ma"},
		{"dadyā́ḥ"}, {"dadyā́tam"}, {"dadyā́ta"},
		{"dadyā́t"}, {"dadyā́tām"}, {"dadyúḥ"},
	},
	optam = {
		{"dádīya"}, {"dádīvahi"}, {"dádīmahi"},
		{"dádīthāḥ"}, {"dádīyāthām"}, {"dádīdhvam"},
		{"dádīta"}, {"dádīyātām"}, {"dádīran"},
	},
	impra = {
		{"dádāni"}, {"dádāva"}, {"dádāma"},
-- Using analogy of dhattā́t.
--		{"dehí", "daddhí", "dattā́t"}, -- Preferred ordering
		{"daddhí", "dattā́t", "dehí", }, -- Better for matching.
				{"dattám"},
				{"dattá", "dádāta", "dádātana"}, -- Not dattana
		{"dádātu", why = "Whitney Para 654 mentions ony 2s, not 3s, in -tāt."},
						{"dattā́m"}, {"dádatu"},
	},
	imprm = {
		{"dádai"}, {"dádāvahai"}, {"dádāmahai"},
		{"datsvá"}, {"dádāthām"}, {"daddhvám"},
		{"dattā́m"}, {"dádātām"}, {"dádatām"},
	},
	pap = {"dádat"},
	pmp = {"dádāna"},
	impfa = {
		{"ádadām"}, {"ádadva"}, {"ádadma"},
		{"ádadāḥ"}, {"ádattam"}, {"ádatta"},
		{"ádadāt"}, {"ádattām"}, {"ádaduḥ"},
	},
	impfm = {
		{"ádadi"}, {"ádadvahi"}, {"ádadmahi"}, 
		{"ádatthāḥ"}, {"ádadāthām"}, {"ádaddhvam"},
		{"ádatta"}, {"ádadātām"}, {"ádadata"},
	},
-- Injunctive form of the aboveː
--	impfja = { -- Whitney Para 620 + 622, but with ḥ for final s.
--		{}, {""}, {""},
--		{""},{""}, {""},
--		{""}, {""}, {""},
--	},
--	impfjm = { -- Whitney Para 620 + 622, but with ḥ for final s.
--		{""}, {""}, {""},
--		{""}, {""}, {""},
--		{""}, {""}, {""},
--	},
}

local nahyati_ref = {
	presa = { -- Whitney Para 760, but with ḥ for final s.
		{"náhyāmi"}, {"náhyāvaḥ"}, {"náhyāmaḥ"},
		{"náhyasi"}, {"náhyathaḥ"}, {"náhyatha"},
		{"náhyati"}, {"náhyataḥ"}, {"náhyanti"}
	},
	presm = { -- Whitney Para 760
		{"náhye"}, {"náhyāvahe"}, {"náhyāmahe"},
		{"náhyase"}, {"náhyethe"}, {"náhyadhve"},
		{"náhyate"}, {"náhyete"}, {"náhyante"}
	},
	subja = { -- Whitney Para 760, but with ḥ for final s and without the gaps.
		{"náhyāni"}, {"náhyāva"}, {"náhyāma"},
		{"náhyāsi", "náhyāḥ"}, {"náhyāthaḥ"}, {"náhyātha"},
		{"náhyāti", "náhyāt"}, {"náhyātaḥ"}, {"náhyān"}
	},
	subjm = { -- Whitney Para 760, but without the blanks/
		{"náhyai"}, {"náhyāvahai"}, {"náhyāmahai"},
		{"náhyāse", "náhyāsai"}, {}, {"náhyādhvai"},
		{"náhyāte", "náhyātai"}, {"náhyaite"}, {"náhyanta", "náhyāntai"}
	},
	optaa = { -- Whitney Para 760, but with ḥ for final s,and without the blanks.
		{"náhyeyam"}, {"náhyeva"}, {"náhyema"},
		{"náhyeḥ"}, {"náhyetam"}, {"náhyeta"},
		{"náhyet"}, {"náhyetām"}, {"náhyeyuḥ"},
	},
	optam = { -- Whitney Para 760, but with ḥ for final s.
		{"náhyeya"}, {"náhyevahi"}, {"náhyemahi"},
		{"náhyethāḥ"}, {"náhyeyāthām"}, {"náhyedhvam"},
		{"náhyeta"}, {"náhyeyātām"}, {"náhyeran"},
	},
	impra = { -- Whitney Para 760. 
		{"náhyāni"}, {"náhyāva"}, {"náhyāma"},
		{"náhya", why = notat4}, {"náhyatam"}, {"náhyata"},
		{"náhyatu", why = "Whitney Para 760 mentions ony 2s, not 3s, in -tāt."},
					{"náhyatām"}, {"náhyantu"},
	},
	imprm = { -- Whitney Para 760.
		{"náhyai"}, {"náhyāvahai"}, {"náhyāmahai"},
		{"náhyasva"}, {"náhyethām"}, {"náhyadhvam"},
		{"náhyatām"}, {"náhyetām"}, {"náhyantām"},
	},
	pap = {"náhyant", whynot = whyant},   -- Whitney Para 760.
	pmp = {"náhyamāna"}, -- Whitney Para 760.
	impfa = { -- Whitney Para 760, but with ḥ for final s.
		{"ánahyam"}, {"ánahyāva"}, {"ánahyāma"},
		{"ánahyaḥ"},{"ánahyatam"}, {"ánahyata"},
		{"ánahyat"}, {"ánahyatām"}, {"ánahyan"},
	},
	impfm = { -- Whitney Para 760, but with ḥ for final s.
		{"ánahye"}, {"ánahyāvahi"}, {"ánahyāmahi"},
		{"ánahyathāḥ"}, {"ánahyethām"}, {"ánahyadhvam"},
		{"ánahyata"}, {"ánahyetām"}, {"ánahyanta"},
	},
-- Injunctive form of the aboveː
	impfja = { -- Whitney Para 760d, but with ḥ for final s.
		{"náhyam"}, {"náhyāva"}, {"náhyāma"},
		{"náhyaḥ"},{"náhyatam"}, {"náhyata"},
		{"náhyat"}, {"náhyatām"}, {"náhyan"},
	},
	impfjm = { -- Whitney Para 760d, but with ḥ for final s.
		{"náhye"}, {"náhyāvahi"}, {"náhyāmahi"},
		{"náhyathāḥ"}, {"náhyethām"}, {"náhyadhvam"},
		{"náhyata"}, {"náhyetām"}, {"náhyanta"},
	},
}

local kriyate_ref = {
	presm = { -- Whitney Para 771a
		{"kriyé"}, {"kriyā́vahe"}, {"kriyā́mahe"},
		{"kriyáse"}, {"kriyéthe"}, {"kriyádhve"},
		{"kriyáte"}, {"kriyéte"}, {"kriyánte"}
	},
	subjm = { -- Whitney Para 771b, but without the blanks/
		{"kriyaí"}, {"kriyā́vahai"}, {"kriyā́mahai"},
		{"kriyā́se", "kriyā́sai"}, {}, {"kriyā́dhvai"},
		{"kriyā́te", "kriyā́tai"}, {"kriyaíte"}, {"kriyánta", "kriyā́ntai"}
	},
	optam = { -- Whitney Para 771c, but with ḥ for final s.
		{"kriyéya"}, {"kriyévahi"}, {"kriyémahi"},
		{"kriyéthāḥ"}, {"kriyéyāthām"}, {"kriyédhvam"},
		{"kriyéta"}, {"kriyéyātām"}, {"kriyéran"},
	},
	imprm = { -- Whitney Para 771d.
		{"kriyaí"}, {"kriyā́vahai"}, {"kriyā́mahai"},
		{"kriyásva"}, {"kriyéthām"}, {"kriyádhvam"},
		{"kriyátām"}, {"kriyétām"}, {"kriyántām"},
	},
	pmp = {"kriyámāṇa"}, -- Whitney Para 771e.
	impfm = { -- Whitney Para 760, but with ḥ for final s.
		{"ákriye"}, {"ákriyāvahi"}, {"ákriyāmahi"},
		{"ákriyathāḥ"}, {"ákriyethām"}, {"ákriyadhvam"},
		{"ákriyata"}, {"ákriyetām"}, {"ákriyanta"},
	},
-- Injunctive form of the aboveː
	impfjm = {
		{"kriyé"}, {"kriyā́vahi"}, {"kriyā́mahi"},
		{"kriyáthāḥ"}, {"kriyéthām"}, {"kriyádhvam"},
		{"kriyáta"}, {"kriyétām"}, {"kriyánta"},
	},
}

local sunoti_ref = {
	presa = { -- Whitney Para 698A + 698a, but with ḥ for final s.
		{"sunómi"}, {"sunváḥ", "sunuváḥ"}, {"sunmáḥ", "sunumáḥ"}, 
		{"sunóṣi"}, {"sunutháḥ"}, {"sunuthá"}, 
		{"sunóti"}, {"sunutáḥ"}, {"sunvánti"}, 
	},
	presm = { -- Whitney Para 698A + 698a + 699b
		{"sunvé"}, {"sunváhe", "sunuváhe"}, {"sunmáhe", "sunumáhe"}, 
		{"sunuṣé"}, {"sunvā́the"}, {"sunudhvé"}, 
		{"sunuté"}, {"sunvā́te"}, {"sunváte", "sunviré"}, -- This verb irr!
	},
	presm_reg = { -- Whitney Para 698A + 698a + 699b
		{"sunvé"}, {"sunváhe", "sunuváhe"}, {"sunmáhe", "sunumáhe"}, 
		{"sunuṣé"}, {"sunvā́the"}, {"sunudhvé"}, 
		{"sunuté"}, {"sunvā́te"}, {"sunváte"}, 
	},
	subja = { -- Whitney Para 700, but with ḥ for final s.
		{"sunávāni"}, {"sunávāva"}, {"sunávāma"}, 
		{"sunávas"},  {},           {"sunávatha"},
		{"sunávat"},  {},           {"sunávan"},
	},
	subjm = { -- Whitney Para 700
		{"sunávāi"},  	{"sunávāvahāi"}, {"sunávāmahāi"}, 
		{"sunávase"},  	{"sunávāithe"},  {},
		{"sunávate", "sunávātāi"}, {}, 	 {"sunávanta"}, 
	},
	optaa = { -- Whitney Para 702
		{"sunuyā́m"}, {"sunuyā́va"},  {"sunuyā́ma"}, 
		{"sunuyā́ḥ"}, {"sunuyā́tam"}, {"sunuyā́ta"},
		{"sunuyā́t"}, {"sunuyā́tām"}, {"sunuyúḥ"},
	},
	optam = { -- Whitney Para 702
		{"sunvīyá"},   {"sunvīváhi"},   {"sunvīmáhi"}, 
		{"sunvīthā́ḥ"}, {"sunvīyā́thām"}, {"sunvīdhvám"},
		{"sunvītá"},   {"sunvīyā́tām"},  {"sunvīrán"},
	},
	impra = { -- Whitney Para 703 + 704
		{"sunávāni"}, {"sunávāva"}, {"sunávāma"}, 
		{"sunú", "sunuhí", why = hi_after_vowel..'<br/>'..notat5},
			{"sunutám"},
			{"sunutá", "sunóta", "sunótana"}, -- All but first 2p are irregular. 
		{"sunótu", why = tat2sonly}, {"sunutā́m"}, {"sunvántu"}, 
	},
	impra_reg = { -- Whitney Para 703 + 704
		{"sunávāni"}, {"sunávāva"}, {"sunávāma"}, 
		{"sunú", "sunuhí", why = hi_after_vowel..'<br/>'..notat5},
			{"sunutám"}, {"sunutá"},
		{"sunótu", why = tat2sonly}, {"sunutā́m"}, {"sunvántu"}, 
	},
	imprm = { -- Whitney Para 703
		{"sunávai"}, {"sunávāvahai"}, {"sunávāmahai"}, 
		{"sunuṣvá"},
				{"sunvā́thām"}, {"sunudhvám"}, 
		{"sunutā́m"}, {"sunvā́tām"}, {"sunvátām"}, 
	},
	pap = {"sunvánt", whynot = whyant}, -- Whitney Para 705
	pmp = {"sunvāná"}, -- Whitney Para 705
	impfa = { -- Whitney Para 706, but with ḥ for final s.
		{"ásunavam"}, {"ásunva", "ásunuva"}, {"ásunma","ásunuma"}, 
		{"ásunoḥ"}, {"ásunutam"}, {"ásunuta"}, 
		{"ásunot"}, {"ásunutām"}, {"ásunvan"}, 
	},
	impfm = { -- Whitney Para 706, but with ḥ for final s.
		{"ásunvi"}, {"ásunvahi", "ásunuvahi"}, {"ásunmahi", "ásunumahi"}, 
		{"ásunuthāḥ"}, {"ásunvāthām"}, {"ásunudhvam"}, 
		{"ásunuta"}, {"ásunvātām"}, {"ásunvata"}, 
	},
}

local srnoti_ref = { -- Based on sunoti_ref plus Whitney notes on this word
	presa = { -- 
		{"śṛṇómi"}, {"śṛṇváḥ", "śṛṇuváḥ"}, {"śṛṇmáḥ", "śṛṇumáḥ"}, 
		{"śṛṇóṣi"}, {"śṛṇutháḥ"}, {"śṛṇuthá"}, 
		{"śṛṇóti"}, {"śṛṇutáḥ"}, {"śṛṇvánti"}, 
	},
	presm = {
		{"śṛṇvé"}, {"śṛṇváhe", "śṛṇuváhe"}, {"śṛṇmáhe", "śṛṇumáhe"}, 
		{"śṛṇuṣé"}, {"śṛṇvā́the"}, {"śṛṇudhvé"}, 
		{"śṛṇuté"}, {"śṛṇvā́te"}, {"śṛṇváte", "śṛṇviré"}, -- This verb irr!
	},
	presm_reg = {
		{"śṛṇvé"}, {"śṛṇváhe", "śṛṇuváhe"}, {"śṛṇmáhe", "śṛṇumáhe"}, 
		{"śṛṇuṣé"}, {"śṛṇvā́the"}, {"śṛṇudhvé"}, 
		{"śṛṇuté"}, {"śṛṇvā́te"}, {"śṛṇváte"}, 
	},
	subja = {
		{"śṛṇávāni"}, {"śṛṇávāva"}, {"śṛṇávāma"}, 
		{"śṛṇávas"},  {},           {"śṛṇávatha"},
		{"śṛṇávat"},  {},           {"śṛṇávan"},
	},
	subjm = {
		{"śṛṇávāi"},  	{"śṛṇávāvahāi"}, {"śṛṇávāmahāi"}, 
		{"śṛṇávase"},  	{"śṛṇávāithe"},  {},
		{"śṛṇávate", "śṛṇávātāi"}, {}, 	 {"śṛṇávanta"}, 
	},
	optaa = {
		{"śṛṇuyā́m"}, {"śṛṇuyā́va"},  {"śṛṇuyā́ma"}, 
		{"śṛṇuyā́ḥ"}, {"śṛṇuyā́tam"}, {"śṛṇuyā́ta"},
		{"śṛṇuyā́t"}, {"śṛṇuyā́tām"}, {"śṛṇuyúḥ"},
	},
	optam = {
		{"śṛṇvīyá"},   {"śṛṇvīváhi"},   {"śṛṇvīmáhi"}, 
		{"śṛṇvīthā́ḥ"}, {"śṛṇvīyā́thām"}, {"śṛṇvīdhvám"},
		{"śṛṇvītá"},   {"śṛṇvīyā́tām"},  {"śṛṇvīrán"},
	},
	impra = {
		{"śṛṇávāni"}, {"śṛṇávāva"}, {"śṛṇávāma"}, 
		{"śṛṇú", "śṛṇuhí", why = hi_after_vowel..'<br/>'..notat5},
			{"śṛṇutám"},
			{"śṛṇutá", "śṛṇóta", "śṛṇótana"}, -- All but first 2p are irregular.  Accent not attested for 3rd. 
		{"śṛṇótu", why = tat2sonly}, {"śṛṇutā́m"}, {"śṛṇvántu"}, 
	},
	impra_reg = {
		{"śṛṇávāni"}, {"śṛṇávāva"}, {"śṛṇávāma"}, 
		{"śṛṇú", "śṛṇuhí", why = hi_after_vowel..'<br/>'..notat5},
			{"śṛṇutám"}, {"śṛṇutá"},
		{"śṛṇótu", why = tat2sonly}, {"śṛṇutā́m"}, {"śṛṇvántu"}, 
	},
	imprm = {
		{"śṛṇávai"}, {"śṛṇávāvahai"}, {"śṛṇávāmahai"}, 
		{"śṛṇuṣvá"}, {"śṛṇvā́thām"}, {"śṛṇudhvám"}, 
		{"śṛṇutā́m"}, {"śṛṇvā́tām"}, {"śṛṇvátām"}, 
	},
	pap = {"śṛṇvánt", whynot = whyant},
	pmp = {"śṛṇvāná"},
	impfa = {
		{"áśṛṇavam"}, {"áśṛṇva", "áśṛṇuva"}, {"áśṛṇma","áśṛṇuma"}, 
		{"áśṛṇoḥ"}, {"áśṛṇutam"}, {"áśṛṇuta"}, 
		{"áśṛṇot"}, {"áśṛṇutām"}, {"áśṛṇvan"}, 
	},
	impfm = {
		{"áśṛṇvi"}, {"áśṛṇvahi", "áśṛṇuvahi"}, {"áśṛṇmahi", "áśṛṇumahi"}, 
		{"áśṛṇuthāḥ"}, {"áśṛṇvāthām"}, {"áśṛṇudhvam"}, 
		{"áśṛṇuta"}, {"áśṛṇvātām"}, {"áśṛṇvata"}, 
	},
}

local apnoti_ref = {
	presa = { -- Whitney Para 698A + 697a, but with ḥ for final s.
		{"āpnómi"}, {"āpnuváḥ"}, {"āpnumáḥ"}, 
		{"āpnóṣi"}, {"āpnutháḥ"}, {"āpnuthá"}, 
		{"āpnóti"}, {"āpnutáḥ"}, {"āpnuvánti"}, 
	},
	presm = { -- Whitney Para 698A + 697a
		{"āpnuvé"}, {"āpnuváhe"}, {"āpnumáhe"}, 
		{"āpnuṣé"}, {"āpnuvā́the"}, {"āpnudhvé"}, 
		{"āpnuté"}, {"āpnuvā́te"}, {"āpnuváte"}, 
	},
	optaa = { -- Whitney Para 702
		{"āpnuyā́m"}, {"āpnuyā́va"},  {"āpnuyā́ma"}, 
		{"āpnuyā́ḥ"}, {"āpnuyā́tam"}, {"āpnuyā́ta"},
		{"āpnuyā́t"}, {"āpnuyā́tām"}, {"āpnuyúḥ"},
	},
	optam = { -- Whitney Para 702 + 702a
		{"āpnuvīyá"},   {"āpnuvīváhi"},   {"āpnuvīmáhi"}, 
		{"āpnuvīthā́ḥ"}, {"āpnuvīyā́thām"}, {"āpnuvīdhvám"},
		{"āpnuvītá"},   {"āpnuvīyā́tām"},  {"āpnuvīrán"},
	},
	impra = { -- Whitney Para 703 + 703a
		{"āpnávāni"}, {"āpnávāva"}, {"āpnávāma"}, 
		{"āpnuhí", why = hi_after_vowel..'<br/>'..notat5},
					{"āpnutám"}, {"āpnutá"}, 
		{"āpnótu", why = tat2sonly}, {"āpnutā́m"}, {"āpnuvántu"}, 
	},
	imprm = { -- Whitney Para 703 + 703a
		{"āpnávai"}, {"āpnávāvahai"}, {"āpnávāmahai"}, 
		{"āpnuṣvá"}, {"āpnuvā́thām"}, {"āpnudhvám"}, 
		{"āpnutā́m"}, {"āpnuvā́tām"}, {"āpnuvátām"}, 
	},
	pap = {"āpnuvánt", whynot = whyant}, -- Whitney Para 705
	pmp = {"āpnuvāná"}, -- Whitney Para 705
	impfa = { -- Whitney Para 706, but with ḥ for final s, interpreted by RichardW57.
		{"ā́pnavam"}, {"ā́pnuva"}, {"ā́pnuma"}, 
		{"ā́pnoḥ"}, {"ā́pnutam"}, {"ā́pnuta"}, 
		{"ā́pnot"}, {"ā́pnutām"}, {"ā́pnuvan"}, 
	},
	impfm = { -- Whitney Para 706, but with ḥ for final s, interpreted by RichardW57.
		{"ā́pnuvi"}, {"ā́pnuvahi"}, {"ā́pnumahi"}, 
		{"ā́pnuthāḥ"}, {"ā́pnuvāthām"}, {"ā́pnudhvam"}, 
		{"ā́pnuta"}, {"ā́pnuvātām"}, {"ā́pnuvata"}, 
	},
}

local tanoti_ref = {
	presa = { -- Whitney Para 698A + 698a + 698b, but with ḥ for final s.
		{"tanómi"}, {"tanváḥ", "tanuváḥ"}, {"tanmáḥ", "tanumáḥ"}, 
		{"tanóṣi"}, {"tanutháḥ"}, {"tanuthá"}, 
		{"tanóti"}, {"tanutáḥ"}, {"tanvánti"}, 
	},
	presm = { -- Whitney Para 698A + 698a + 698b + 699a.
		{"tanvé"}, {"tanváhe", "tanuváhe"}, {"tanmáhe", "tanumáhe"}, 
		{"tanuṣé"}, {"tanvā́the"}, {"tanudhvé"}, 
		{"tanuté"}, {"tanvā́te"}, {"tanváte", "tanvaté"}, -- This verb has irr .3p!
	},
	optaa = { -- Whitney Para 702
		{"tanuyā́m"}, {"tanuyā́va"},  {"tanuyā́ma"}, 
		{"tanuyā́ḥ"}, {"tanuyā́tam"}, {"tanuyā́ta"},
		{"tanuyā́t"}, {"tanuyā́tām"}, {"tanuyúḥ"},
	},
	optam = { -- Whitney Para 702
		{"tanvīyá"},   {"tanvīváhi"},   {"tanvīmáhi"}, 
		{"tanvīthā́ḥ"}, {"tanvīyā́thām"}, {"tanvīdhvám"},
		{"tanvītá"},   {"tanvīyā́tām"},  {"tanvīrán"},
	},
	impra = { -- Whitney Para 703 + 704
		{"tanávāni"}, {"tanávāva"}, {"tanávāma"}, 
		{"tanú", "tanuhí", why = hi_after_vowel..'<br/>'..notat5},
					{"tanutám"}, {"tanutá", "tanóta"}, 
		{"tanótu", why = tat2sonly}, {"tanutā́m"}, {"tanvántu"}, 
	},
	imprm = { -- Whitney Para 703
		{"tanávai"}, {"tanávāvahai"}, {"tanávāmahai"}, 
		{"tanuṣvá"}, {"tanvā́thām"}, {"tanudhvám"}, 
		{"tanutā́m"}, {"tanvā́tām"}, {"tanvátām"}, 
	},
	pap = {"tanvánt", whynot = whyant}, -- Whitney Para 705
	pmp = {"tanvāná"}, -- Whitney Para 705
	impfa = { -- Whitney Para 706, but with ḥ for final s.
		{"átanavam"}, {"átanva", "átanuva"}, {"átanma", "átanuma"}, 
		{"átanoḥ"}, {"átanutam"}, {"átanuta"}, 
		{"átanot"}, {"átanutām"}, {"átanvan"}, 
	},
	impfm = { -- Whitney Para 706, but with ḥ for final s.
		{"átanvi"}, {"átanvahi", "átanuvahi"}, {"átanmahi", "átanumahi"}, 
		{"átanuthāḥ"}, {"átanvāthām"}, {"átanudhvam"}, 
		{"átanuta"}, {"átanvātām"}, {"átanvata"}, 
	},
}

karoti_ref = {
	presa = { -- Whitley Para 714, but with ḥ for final s.
		{"karómi"}, {"kurváḥ"}, {"kurmáḥ"}, -- Para 715 - add kurmi!
		{"karóṣi"}, {"kurutháḥ"}, {"kuruthá"}, 
		{"karóti"}, {"kurutáḥ"}, {"kurvánti"}, 
	},
	presm = { -- Whitley Para 714
		{"kurvé"}, {"kurváhe"}, {"kurmáhe"}, 
		{"kuruṣé"}, {"kurvā́the"}, {"kurudhvé"},
		{"kuruté"}, {"kurvā́te"}, {"kurváte"}, 
	},
	optaa = { -- Whitley Para 714
		{"kuryā́m"}, {"kuryā́va"}, {"kuryā́ma"}, 
		{"kuryā́ḥ"}, {"kuryā́tam"}, {"kuryā́ta"},
		{"kuryā́t"}, {"kuryā́tām"}, {"kuryúḥ"},
	},
	optam = { -- Whitley Para 714
		{"kurvīyá"}, {"kurvīváhi"}, {"kurvīmáhi"}, 
		{"kurvīthā́ḥ"}, {"kurvīyā́thām"}, {"kurvīdhvám"},
		{"kurvītá"},   {"kurvīyā́tām"},  {"kurvīrán"},
	},
	impra = { -- Whitley Para 714
		{"karávāṇi"}, {"karávāva"}, {"karávāma"}, 
		{"kurú", why = notat5}, {"kurutám"}, {"kurutá"}, 
		{"karótu", why = tat2sonly}, {"kurutā́m"}, {"kurvántu"}, 
	},
	imprm = { -- Whitley Para 714
		{"karávai"}, {"karávāvahai"}, {"karávāmahai"}, 
		{"kuruṣvá"}, {"kurvā́thām"}, {"kurudhvám"}, 
		{"kurutā́m"}, {"kurvā́tām"}, {"kurvátām"}, 
	},
	pap = {"kurvánt", whynot = whyant}, -- Whitley Para 714
	pmp = {"kurvāṇá"}, -- Whitley Para 714
	impfa = { -- Whitley Para 714, but with ḥ for final s.
		{"ákaravam"}, {"ákurva"}, {"ákurma"}, 
		{"ákaroḥ"}, {"ákurutam"}, {"ákuruta"}, 
		{"ákarot"}, {"ákurutām"}, {"ákurvan"}, 
	},
	impfm = { -- Whitley Para 714, but with ḥ for final s.
		{"ákurvi"}, {"ákurvahi"}, {"ákurmahi"}, 
		{"ákuruthāḥ"}, {"ákurvāthām"}, {"ákurudhvam"}, 
		{"ákuruta"}, {"ákurvātām"}, {"ákurvata"}, 
	},
}

local vishati_ref = {
	presa = { -- Whitney Para 752, but with ḥ for final s.
		{"viśā́mi"}, {"viśā́vaḥ"}, {"viśā́maḥ"},
		{"viśási"}, {"viśáthaḥ"}, {"viśátha"},
		{"viśáti"}, {"viśátaḥ"}, {"viśánti"}
	},
	presm = { -- Whitney Para 752
		{"viśé"}, {"viśā́vahe"}, {"viśā́mahe"},
		{"viśáse"}, {"viśéthe"}, {"viśádhve"},
		{"viśáte"}, {"viśéte"}, {"viśánte"}
	},
	subja = { -- Whitney Para 752, but with ḥ for final s and without the gaps.
		{"viśā́ni"}, {"viśā́va"}, {"viśā́ma"},
		{"viśā́si", "viśā́ḥ"}, {"viśā́thaḥ"}, {"viśā́tha"},
		{"viśā́ti", "viśā́t"}, {"viśā́taḥ"}, {"viśā́n"}
	},
	subjm = { -- Whitney Para 752, but without the blanks.
		{"viśaí"}, {"viśā́vahai"}, {"viśā́mahai"},
		{"viśā́se", "viśā́sai"}, {}, {"viśā́dhvai"},
		{"viśā́te", "viśā́tai"}, {"viśaíte"}, {"viśánta", "viśā́ntai"}
	},
	optaa = { -- Whitney Para 752, but with ḥ for final s,and without the blanks.
		{"viśéyam"}, {"viśéva"}, {"viśéma"},
		{"viśéḥ"}, {"viśétam"}, {"viśéta"},
		{"viśét"}, {"viśétām"}, {"viśéyuḥ"},
	},
	optam = { -- Whitney Para 752, but with ḥ for final s.
		{"viśéya"}, {"viśévahi"}, {"viśémahi"},
		{"viśéthāḥ"}, {"viśéyāthām"}, {"viśédhvam"},
		{"viśéta"}, {"viśéyātām"}, {"viśéran"},
	},
	impra = { -- Whitney Para 752. 
		{"viśā́ni"}, {"viśā́va"}, {"viśā́ma"},
		{"viśá", "viśátāt"}, {"viśátam"}, {"viśáta"},
		{"viśátu", why = "Whitney Para 760 mentions ony 2s, not 3s, in -tāt."},
					{"viśátām"}, {"viśántu"},
	},
	imprm = { -- Whitney Para 752.
		{"viśaí"}, {"viśā́vahai"}, {"viśā́mahai"},
		{"viśásva"}, {"viśéthām"}, {"viśádhvam"},
		{"viśátām"}, {"viśétām"}, {"viśántām"},
	},
	pap = {"viśánt", whynot = whyant},   -- Whitney Para 752.
	pmp = {"viśámāna"}, -- Whitney Para 752.
	impfa = { -- Whitney Para 752, but with ḥ for final s.
		{"áviśam"}, {"áviśāva"}, {"áviśāma"},
		{"áviśaḥ"},{"áviśatam"}, {"áviśata"},
		{"áviśat"}, {"áviśatām"}, {"áviśan"},
	},
	impfm = { -- Whitney Para 752, but with ḥ for final s.
		{"áviśe"}, {"áviśāvahi"}, {"áviśāmahi"},
		{"áviśathāḥ"}, {"áviśethām"}, {"áviśadhvam"},
		{"áviśata"}, {"áviśetām"}, {"áviśanta"},
	},
-- Injunctive form of the aboveː
	impfja = { -- Whitney Para 752, but with ḥ for final s.
		{"viśám"}, {"viśā́va"}, {"viśā́ma"},
		{"viśáḥ"},{"viśátam"}, {"viśáta"},
		{"viśát"}, {"viśátām"}, {"viśán"},
	},
	impfjm = { -- Whitney Para 752, but with ḥ for final s.
		{"viśé"}, {"viśā́vahi"}, {"viśā́mahi"},
		{"viśáthāḥ"}, {"viśéthām"}, {"viśádhvam"},
		{"viśáta"}, {"viśétām"}, {"viśánta"},
	},
}

yunakti_ref = {
	presa = { -- Whitney Para 684, with n̄ replaced by ṅ and final s replaced by ḥ
		{"yunájmi"}, {"yuñjváḥ"}, {"yuñjmáḥ"}, 
		{"yunákṣi"}, {"yuṅtháḥ", "yuṅktháḥ"}, {"yuṅthá", "yuṅkthá"}, 
		{"yunákti"}, {"yuṅtáḥ", "yuṅktáḥ"}, {"yuñjánti"}, 
	},
	presm = { -- Whitney Para 684, with n̄ replaced by ṅ
		{"yuñjé"}, {"yuñjváhe"}, {"yuñjmáhe"}, 
		{"yuṅkṣé"}, {"yuñjā́the"}, {"yuṅdhvé", "yuṅgdhvé"},
		{"yuṅté", "yuṅkté"}, {"yuñjā́te"}, {"yuñjáte"}, 
	},
-- Subjunctive to be done.
	optaa = { -- Whitney Para 688
		{"yuñjyā́m"}, {"yuñjyā́va"}, {"yuñjyā́ma"},
		{"yuñjyā́ḥ"}, {"yuñjyā́tam"}, {"yuñjyā́ta"},
		{"yuñjyā́t"}, {"yuñjyā́tām"}, {"yuñjyúḥ"},
	},
	optam = { -- Whitney Para 688
		{"yuñjīyá"}, {"yuñjīváhi"}, {"yuñjīmáhi"}, 
		{"yuñjīthā́ḥ"}, {"yuñjīyā́thām"}, {"yuñjīdhvám"},
		{"yuñjītá"},   {"yuñjīyā́tām"},  {"yuñjīrán"},
	},
	impra = { -- Whitney Para 689
		{"yunájāni"}, {"yunájāva"}, {"yunájāma"}, 
		{"yuṅdhí", "yuṅgdhí", why = notat7}, {"yuṅtám", "yuṅktám"}, {"yuṅtá", "yuṅktá"}, 
		{"yunáktu", why=notat7}, {"yuṅtā́m", "yuṅktā́m"}, {"yuñjántu"}, 
	},
	imprm = { -- Whitney Para 689
		{"yunájai"}, {"yunájāvahai"}, {"yunájāmahai"}, 
		{"yuṅkṣvá"}, {"yuñjā́thām"}, {"yuṅdhvám", "yuṅgdhvám"}, 
		{"yuṅtā́m", "yuṅktā́m"}, {"yuñjā́tām"}, {"yuñjátām"}, 
	},
	pap = {"yuñjánt", why = why_ant}, -- Whitney Para 691
	pmp = {"yuñjāná"}, -- Whitney Para 691
	impfa = { -- Whitney Para 692
		{"áyunajam"}, {"áyuñjva"}, {"áyuñjma"}, 
		{"áyunak"}, {"áyuṅtam", "áyuṅktam"}, {"áyuṅta", "áyuṅkta"}, 
		{"áyunak"}, {"áyuṅtām", "áyuṅktām"}, {"áyuñjan"}, 
	},
	impfm = { -- Whitney Para 692 with final s replaced by ḥ
		{"áyuñji"}, {"áyuñjvahi"}, {"áyuñjmahi"}, 
		{"áyuṅthāḥ", "áyuṅkthāḥ"}, {"áyuñjāthām"}, 	{"áyuṅdhvam", "áyuṅgdhvam"}, 
		{"áyuṅta", "áyuṅkta"}, {"áyuñjātām"}, {"áyuñjata"}, 
	},
	impfja = { -- Whitney Para 692 + 693
		{"yunájam"}, {"yuñjvá"}, {"yuñjmá"}, 
		{"yunák"}, {"yuṅtám", "yuṅktám"}, {"yuṅtá", "yuṅktá"}, 
		{"yunák"}, {"yuṅtā́m", "yuṅktā́m"}, {"yuñján"}, 
	},
	impfjm = { -- Whitney Para 692 + 693with final s replaced by ḥ
		{"yuñjí"}, {"yuñjváhi"}, {"yuñjmáhi"}, 
		{"yuṅthā́ḥ", "yuṅkthā́ḥ"}, {"yuñjā́thām"}, {"yuṅdhvám", "yuṅgdhvám"}, 
		{"yuṅtá", "yuṅktá"}, {"yuñjā́tām"}, {"yuñjáta"}, 
	},
}

runaddhi_ref = {
	presa = { -- Whitney Para 684, with final s replaced by ḥ
		{"ruṇádhmi"}, {"rundhváḥ"}, {"rundhmáḥ"}, 
		{"ruṇátsi"}, {"rundháḥ", "runddháḥ"}, {"rundhá", "runddhá"}, 
		{"ruṇáddhi"}, {"rundháḥ", "runddháḥ"}, {"rundhánti"}, 
	},
	presm = { -- Whitney Para 684
		{"rundhé"}, {"rundhváhe"}, {"rundhmáhe"}, 
		{"runtsé"}, {"rundhā́the"}, {"rundhvé", "runddhvé"}, 
		{"rundhé", "runddhé"}, {"rundhā́te"}, {"rundháte"}, 
	},
}

krinati_ref = {
	presa = { -- Whitney Para 718, with final s replaced by ḥ
		{"krīṇā́mi"}, {"krīṇīváḥ"}, {"krīṇīmáḥ"}, 
		{"krīṇā́si"}, {"krīṇītháḥ"}, {"krīṇīthá"}, 
		{"krīṇā́ti"}, {"krīṇītáḥ"}, {"krīṇánti"}, 
	},
	presm = { -- Whitney Para 718
		{"krīṇé"}, {"krīṇīváhe"}, {"krīṇīmáhe"}, 
		{"krīṇīṣé"}, {"krīṇā́the"}, {"krīṇīdhvé"}, 
		{"krīṇīté"}, {"krīṇā́te"}, {"krīṇáte"}, 
	},
	subja = { -- Whitney Para 720, with final s replaced by ḥ
		{"krīṇāni"}, {},            {"krīṇā́ma"},
		{"krīṇā́ḥ"}, {},             {"krīṇātha"},
		{"krīṇā́t"},	 {},            {"krīṇā́n"},
	},
	subjm = { -- Whitney Para 720
		{"krīṇaí"}, {"krīṇāvahai"}, {"krīṇāmahai"},
		{"krīṇāsai"}, {},            {}, 
		{"krīṇātai"}, {},           {"krīṇāntai"},
	},
	optaa = { -- Whitney Para 721
		{"krīṇīyā́m"}, {"krīṇīyā́va"}, {"krīṇīyā́ma"}, 
		{"krīṇīyā́ḥ"}, {"krīṇīyā́tam"}, {"krīṇīyā́ta"},
		{"krīṇīyā́t"}, {"krīṇīyā́tām"}, {"krīṇīyúḥ"},
	},
	optam = { -- Whitney Para 721
		{"krīṇīyá"}, {"krīṇīváhi"}, {"krīṇīmáhi"}, 
		{"krīṇīthā́ḥ"}, {"krīṇīyā́thām"}, {"krīṇīdhvám"},
		{"krīṇītá"},   {"krīṇīyā́tām"},  {"krīṇīrán"},
	},
	impra = { -- Whitney Para 722
		{"krīṇā́ni"}, {"krīṇā́va"}, {"krīṇā́ma"}, 
		{"krīṇīhí", why = notat9}, {"krīṇītám"}, {"krīṇītá"}, 
		{"krīṇā́tu", why = tat2sonly}, {"krīṇītā́m"}, {"krīṇántu"}, 
	},
	imprm = { -- Whitney Para 722
		{"krīṇaí"}, {"krīṇā́vahai"}, {"krīṇā́mahai"}, 
		{"krīṇīṣvá"}, {"krīṇā́thām"}, {"krīṇīdhvám"}, 
		{"krīṇītā́m"}, {"krīṇā́tām"}, {"krīṇátām"}, 
	},
	pap = {"krīṇánt", why = whyant}, -- Whitney Para 724
	pmp = {"krīṇāná"}, -- Whitney Para 724
	impfa = { -- Whitney Para 725, with final s replaced by ḥ
		{"ákrīṇām"}, {"ákrīṇīva"}, {"ákrīṇīma"}, 
		{"ákrīṇāḥ"}, {"ákrīṇītam"}, {"ákrīṇīta"}, 
		{"ákrīṇāt"}, {"ákrīṇītām"}, {"ákrīṇan"}, 
	},
	impfm = { -- Whitney Para 725, with final s replaced by ḥ
		{"ákrīṇi"}, {"ákrīṇīvahi"}, {"ákrīṇīmahi"}, 
		{"ákrīṇīthāḥ"}, {"ákrīṇāthām"}, {"ákrīṇīdhvam"}, 
		{"ákrīṇīta"}, {"ákrīṇātām"}, {"ákrīṇata"}, 
	},
	impfja = { -- Whitney Para 725 and 726, with final s replaced by ḥ
		{"krīṇā́m"}, {"krīṇīvá"}, {"krīṇīmá"}, 
		{"krīṇā́ḥ"}, {"krīṇītám"}, {"krīṇītá"}, 
		{"krīṇā́t"}, {"krīṇītā́m"}, {"krīṇán"}, 
	},
	impfjm = { -- Whitney Para 725 and 726, with final s replaced by ḥ
		{"krīṇí"}, {"krīṇīváhi"}, {"krīṇīmáhi"}, 
		{"krīṇīthā́ḥ"}, {"krīṇā́thām"}, {"krīṇīdhvám"}, 
		{"krīṇītá"}, {"krīṇā́tām"}, {"krīṇáta"}, 
	},
}

grhnati_ref = {
	presa = { -- Based on Whitney Para 718, with final s replaced by ḥ
		{"gṛhṇā́mi"}, {"gṛhṇīváḥ"}, {"gṛhṇīmáḥ"}, 
		{"gṛhṇā́si"}, {"gṛhṇītháḥ"}, {"gṛhṇīthá"}, 
		{"gṛhṇā́ti"}, {"gṛhṇītáḥ"}, {"gṛhṇánti"}, 
	},
	presm = { -- Based on Whitney Para 718
		{"gṛhṇé"}, {"gṛhṇīváhe"}, {"gṛhṇīmáhe"}, 
		{"gṛhṇīṣé"}, {"gṛhṇā́the"}, {"gṛhṇīdhvé"}, 
		{"gṛhṇīté"}, {"gṛhṇā́te"}, {"gṛhṇáte"}, 
	},
	impra = { -- Based on Whitney Para 722 and directly from 723.
		{"gṛhṇā́ni"}, {"gṛhṇā́va"}, {"gṛhṇā́ma"}, 
		{"gṛhāṇá", "gṛhṇītāt", "gṛhṇāhí"}, {"gṛhṇītám"}, {"gṛhṇītá"}, 
		{"gṛhṇā́tu", why = tat2sonly}, {"gṛhṇītā́m"}, {"gṛhṇántu"}, 
	},
	imprm = { -- Based on Whitney Para 722
		{"gṛhṇaí"}, {"gṛhṇā́vahai"}, {"gṛhṇā́mahai"}, 
		{"gṛhṇīṣvá"}, {"gṛhṇā́thām"}, {"gṛhṇīdhvám"}, 
		{"gṛhṇītā́m"}, {"gṛhṇā́tām"}, {"gṛhṇátām"}, 
	},
}

local visarjayati_ref = {
	presa = {
		{"visarjayāmi"}, {"visarjayāvaḥ"}, {"visarjayāmaḥ"},
		{"visarjayasi"}, {"visarjayathaḥ"}, {"visarjayatha"},
		{"visarjayati"}, {"visarjayataḥ"}, {"visarjayanti"}
	},
}

local visrjati_ref = {
	presa = {
		{"visṛjāmi"}, {"visṛjāvaḥ"}, {"visṛjāmaḥ"},
		{"visṛjasi"}, {"visṛjathaḥ"}, {"visṛjatha"},
		{"visṛjati"}, {"visṛjataḥ"}, {"visṛjanti"}
	},
}

local pesati_ref = {
	presa = {
		{"pesāmi"}, {"pesāvaḥ"}, {"pesāmaḥ"},
		{"pesasi"}, {"pesathaḥ"}, {"pesatha"},
		{"pesati"}, {"pesataḥ"}, {"pesanti"}
	},
}

local cintayati_ref = { -- Adapted from bhavati_ref in accordance with
	                    -- Whitney Para 775.
	presa = {
		{"cintáyāmi"}, {"cintáyāvaḥ"}, {"cintáyāmaḥ"},
		{"cintáyasi"}, {"cintáyathaḥ"}, {"cintáyatha"},
		{"cintáyati"}, {"cintáyataḥ"}, {"cintáyanti"}
	},
	presm = {
		{"cintáye"}, {"cintáyāvahe"}, {"cintáyāmahe"},
		{"cintáyase"}, {"cintáyethe"}, {"cintáyadhve"},
		{"cintáyate"}, {"cintáyete"}, {"cintáyante"}
	},
	subja = {
		{"cintáyāni"}, {"cintáyāva"}, {"cintáyāma"},
		{"cintáyāsi", "cintáyāḥ"}, {"cintáyāthaḥ"}, {"cintáyātha"},
		{"cintáyāti", "cintáyāt"}, {"cintáyātaḥ"}, {"cintáyān"}
	},
	subjm = {
		{"cintáyai"}, {"cintáyāvahai"}, {"cintáyāmahai"},
		{"cintáyāse", "cintáyāsai"}, {}, {"cintáyādhvai"},
		{"cintáyāte", "cintáyātai"}, {"cintáyaite"}, {"cintáyanta", "cintáyāntai"}
	},
	optaa = {
		{"cintáyeyam"}, {"cintáyeva"}, {"cintáyema"},
		{"cintáyeḥ"}, {"cintáyetam"}, {"cintáyeta"},
		{"cintáyet"}, {"cintáyetām"}, {"cintáyeyuḥ"},
	},
	optam = {
		{"cintáyeya"}, {"cintáyevahi"}, {"cintáyemahi"},
		{"cintáyethāḥ"}, {"cintáyeyāthām"}, {"cintáyedhvam"},
		{"cintáyeta"}, {"cintáyeyātām"}, {"cintáyeran"},
	},
	impra = {
		{"cintáyāni"}, {"cintáyāva"}, {"cintáyāma"},
		{"cintáya"}, {"cintáyatam"}, {"cintáyata"},
		{"cintáyatu", why = tat2sonly}, {"cintáyatām"}, {"cintáyantu"},
	},
	imprm = {
		{"cintáyai"}, {"cintáyāvahai"}, {"cintáyāmahai"},
		{"cintáyasva"}, {"cintáyethām"}, {"cintáyadhvam"},
		{"cintáyatām"}, {"cintáyetām"}, {"cintáyantām"},
	},
	pap = {"cintáyant", whynot = whyant},
	pmp = {"cintáyamāna", "cintayāna"}, -- Whitney Para 741 & 755c TODO: Review accent!
	impfa = { -- Whitney Para 742, but with ḥ for final s.
		{"ácintayam"}, {"ácintayāva"}, {"ácintayāma"},
		{"ácintayaḥ"},{"ácintayatam"}, {"ácintayata"},
		{"ácintayat"}, {"ácintayatām"}, {"ácintayan"},
	},
	impfm = { -- Whitney Para 742, but with ḥ for final s.
		{"ácintaye"}, {"ácintayāvahi"}, {"ácintayāmahi"},
		{"ácintayathāḥ"}, {"ácintayethām"}, {"ácintayadhvam"},
		{"ácintayata"}, {"ácintayetām"}, {"ácintayanta"},
	},
-- Injunctive form of the aboveː
	impfja = { -- Whitney Para 742 + 743, but with ḥ for final s.
		{"cintáyam"}, {"cintáyāva"}, {"cintáyāma"},
		{"cintáyaḥ"},{"cintáyatam"}, {"cintáyata"},
		{"cintáyat"}, {"cintáyatām"}, {"cintáyan"},
	},
	impfjm = { -- Whitney Para 742 + 743, but with ḥ for final s.
		{"cintáye"}, {"cintáyāvahi"}, {"cintáyāmahi"},
		{"cintáyathāḥ"}, {"cintáyethām"}, {"cintáyadhvam"},
		{"cintáyata"}, {"cintáyetām"}, {"cintáyanta"},
	},
}
local blank_ref = {
	presa = { -- Whitney Para 612a, but with ḥ for final s.
		{""}, {""}, {""},
		{""}, {""}, {""},
		{""}, {""}, {""}
	},
	presm = { -- Whitney Para 612a
		{""}, {""}, {""},
		{""}, {""}, {""},
		{""}, {""}, {""}
	},
	subja = { -- Whitney Para 614a, but with ḥ for final s.
		{""}, {""}, {""},
		{"", ""}, {""}, {""},
		{"", ""}, {""}, {""}
	},
	subjm = { -- Whitney Para 614a
		{""}, {""}, {""},
		{"", ""}, {}, {""},
		{"", ""}, {""}, {"", ""}
	},
	optaa = { -- Whitney Para 616a, but with ḥ for final s.
		{""}, {""}, {""},
		{""}, {""}, {""},
		{""}, {""}, {""},
	},
	optam = { -- Whitney Para 616a, but with ḥ for final s.
		{""}, {""}, {""},
		{""}, {""}, {""},
		{""}, {""}, {""},
	},
	impra = { -- Whitney Para 617a. 
		{""}, {""}, {""},
		{"", ""}, {""}, {""},
		{"", why = tat2sonly}, {""}, {""},
	},
	imprm = { -- Whitney Para 617a.
		{""}, {""}, {""},
		{""}, {""}, {""},
		{""}, {""}, {""},
	},
	pap = {"", whynot = whyant},   -- Whitney Para 619.
	pmp = {""}, -- Whitney Para 619.
	impfa = { -- Whitney Para 620a, but with ḥ for final s.
		{""}, {""}, {""},
		{""},{""}, {""},
		{""}, {""}, {""},
	},
	impfm = { -- Whitney Para 620a, but with ḥ for final s.
		{""}, {""}, {""},
		{""}, {""}, {""},
		{""}, {""}, {""},
	},
-- Injunctive form of the aboveː
	impfja = { -- Whitney Para 620 + 622, but with ḥ for final s.
		{}, {""}, {""},
		{""},{""}, {""},
		{""}, {""}, {""},
	},
	impfjm = { -- Whitney Para 620 + 622, but with ḥ for final s.
		{""}, {""}, {""},
		{""}, {""}, {""},
		{""}, {""}, {""},
	},
}

local dasyati_ref = {
	futua = { -- Whitney Para 933, but with ḥ for final s.
		{"dāsyā́mi"}, {"dāsyā́vaḥ"}, {"dāsyā́maḥ"}, 
		{"dāsyási"}, {"dāsyáthaḥ"}, {"dāsyátha"}, 
		{"dāsyáti"}, {"dāsyátaḥ"}, {"dāsyánti"}, 
	},
	futum = { -- Whitney Para 933
		{"dāsyé"}, {"dāsyā́vahe"}, {"dāsyā́mahe"}, 
		{"dāsyáse"}, {"dāsyéthe"}, {"dāsyádhve"}, 
		{"dāsyáte"}, {"dāsyéte"}, {"dāsyánte"}, 
	},
	fap = {"dāsyánt", why = whyant}, -- Whitney Para 939
    fmp = {"dāsyámāna"}, -- Whitney Para 939
	conda = { -- Whitney Para 940, but with ḥ for final s.
		{"ádāsyam"}, {"ádāsyāva"}, {"ádāsyāma"}, 
		{"ádāsyaḥ"}, {"ádāsyatam"}, {"ádāsyata"}, 
		{"ádāsyat"}, {"ádāsyatām"}, {"ádāsyan"}, 
	},
	condm = { -- Whitney Para 940, but with ḥ for final s.
		{"ádāsye"}, {"ádāsyāvahi"}, {"ádāsyāmahi"}, 
		{"ádāsyathāḥ"}, {"ádāsyethām"}, {"ádāsyadhvam"}, 
		{"ádāsyata"}, {"ádāsyetām"}, {"ádāsyanta"}, 
	},
}

local karisyati_ref = {
	futua = { -- Whitney Para 933, but with ḥ for final s, for 1st person,
              -- with 2nd and 3rd fleshed out by RichardW57 accordingly 
		{"kariṣyā́mi"}, {"kariṣyā́vaḥ"}, {"kariṣyā́maḥ"}, 
		{"kariṣyási"}, {"kariṣyáthaḥ"}, {"kariṣyátha"}, 
		{"kariṣyáti"}, {"kariṣyátaḥ"}, {"kariṣyánti"}, 
	},
	futum = { -- Whitney Para 933 for 1st person, with 2nd and 3rd fleshed out by RichardW57 accordingly 
		{"kariṣyé"}, {"kariṣyā́vahe"}, {"kariṣyā́mahe"}, 
		{"kariṣyáse"}, {"kariṣyéthe"}, {"kariṣyádhve"}, 
		{"kariṣyáte"}, {"kariṣyéte"}, {"kariṣyánte"}, 
	},
	fap = {"kariṣyánt", why = whyant}, -- Whitney Para 939
	fmp = {"kariṣyámāṇa"}, -- Whitney Para 939
	conda = { -- Whitney Para 940, and 2nd and 3rd fleshed out by RicharW57.
		{"ákariṣyam"}, {"ákariṣyāva"}, {"ákariṣyāma"}, 
		{"ákariṣyaḥ"}, {"ákariṣyatam"}, {"ákariṣyata"}, 
		{"ákariṣyat"}, {"ákariṣyatām"}, {"ákariṣyan"}, 
	},
	condm = { -- Whitney Para 940, and 2nd and 3rd fleshed out by RicharW57.
		{"ákariṣye"}, {"ákariṣyāvahi"}, {"ákariṣyāmahi"}, 
		{"ákariṣyathāḥ"}, {"ákariṣyethām"}, {"ákariṣyadhvam"}, 
		{"ákariṣyata"}, {"ákariṣyetām"}, {"ákariṣyanta"}, 
	},
}

local data_ref = {
	pfuta = { -- Whitney Para 944, but with ḥ for final s (+ Vedic dual)
		{"dātā́smi"}, {"dātā́svaḥ"}, {"dātā́smaḥ"}, 
		{"dātā́si"}, {"dātā́sthaḥ"}, {"dātā́stha"}, 
		{"dātā́"}, {"dātā́rau", "dātā́rā"}, {"dātā́raḥ"}, 
	},
	pfutm = { -- Whitney Para 947, but with ḥ for final s
		{"dātā́he"}, {"dātā́svahe"}, {"dātā́smahe"}, 
		{"dātā́se"}, {"dātā́sāthe"}, {"dātā́dhve"}, 
		{"dātā́"}, {"dātā́rau"}, {"dātā́raḥ"}, 
	},
}

local adat_ref = {
	aoria = { -- Whitney Para 829, but with ḥ for final s
		{"ádām"}, {"ádāva"}, {"ádāma"}, 
		{"ádāḥ"}, {"ádātam"}, {"ádāta"}, 
		{"ádāt"}, {"ádātām"}, {"áduḥ"}, 
	},
}

local abhut_ref = {
	aoria = { -- Whitney Para 829, but with ḥ for final s
		{"ábhūvam"}, {"ábhūva"}, {"ábhūma"}, 
		{"ábhūḥ"}, {"ábhūtam"}, {"ábhūta"}, 
		{"ábhūt"}, {"ábhūtām"}, {"ábhūvan"}, 
	},
	preca = { -- Whitney Para 924, but with ḥ for final s
		{"bhūyā́sam"}, {"bhūyā́sva"}, {"bhūyā́sma"}, 
		{"bhūyā́ḥ"}, {"bhūyā́stam"}, {"bhūyā́sta"}, 
		{"bhūyā́t"}, {"bhūyā́stām"}, {"bhūyā́suḥ"}, 
	},
	precm = { -- Whitney Para 924, but with ḥ for final s
		{"bhaviṣīyá"}, {"bhaviṣīváhi"}, {"bhaviṣīmáhi"}, 
		{"bhaviṣīṣṭhā́ḥ"}, {"bhaviṣīyā́sthām"},
				{"bhaviṣīḍhvám", why = dhvam_why('v')},
--		why = "See [https://en.wikisource.org/wiki/Page%3ASanskrit_Grammar_by_"
--            .."Whitney_p1.djvu/105 Whitney] 226c for the retroflexion in the 2p "..
--            "marker.  The 'v' is a semivowel."}, 
		{"bhaviṣīṣṭá"}, {"bhaviṣīyā́stām"}, {"bhaviṣīrán"}, 
	},
}

local asicat_ref = {
	aoria = { -- Whitney Para 846, but with ḥ for final s
		{"ásicam"}, {"ásicāva"}, {"ásicāma"}, 
		{"ásicaḥ"}, {"ásicatam"}, {"ásicata"}, 
		{"ásicat"}, {"ásicatām"}, {"ásican"}, 
	},
	aorim = { -- Whitney Para 846, but with ḥ for final s
		{"ásice"}, {"ásicāvahi"}, {"ásicāmahi"}, 
		{"ásicathāḥ"}, {"ásicethām"}, {"ásicadhvam"}, -- 2p accent added by RichardW57. 
		{"ásicata"}, {"ásicetām"}, {"ásicanta"}, 
	},
}

local avidat_ref = {
	aoria = { -- Whitney Para 848, but with ḥ for final s.  2d & 3d from asicat.
		{"ávidam"}, {"ávidāva"}, {"ávidāma"}, 
		{"ávidaḥ"}, {"ávidatam"}, {"ávidata"}, 
		{"ávidat"}, {"ávidatām"}, {"ávidan"}, 
	},
	aorim = { -- Whitney Para 848, but with ḥ for final s. 2d and 2p from asicat.
		{"ávide"},  {"ávidāvahi"}, {"ávidāmahi"}, 
		{"ávidathāḥ"}, {"ávidethām"}, {"ávidadhvam"}, 
		{"ávidata"}, {"ávidetām"}, {"ávidanta"}, -- RichardW57 added accent to
												--  3s and 3d; not in Whitney.
	},
	subja = { -- Whitney Para 849, but with ḥ for final s. 2d and 2p from asicat.
		{},	                 {"vidā́va"},   {"vidāma"}, 
		{"vidā́si", "vidā́ḥ"}, {"vidāthaḥ"}, {"vidātha"}, 
		{"vidā́t"},  	     {},           {"vidātai"},  		
	},
-- subjm too untrustworthy.
}

ajijanat_ref = {
	aoria = { -- Whitney Para 864, but with ḥ for final s.
		{"ájījanam"}, {"ájījanāva"}, {"ájījanāma"}, 
		{"ájījanaḥ"}, {"ájījanatam"}, {"ájījanata"}, 
		{"ájījanat"}, {"ájījanatām"}, {"ájījanan"}, 
	},
	aorim = { -- Whitney Para 864, but with ḥ for final s.
		{"ájījane"}, {"ájījanāvahi"}, {"ájījanāmahi"}, 
		{"ájījanathāḥ"}, {"ájījanethām"}, {"ájījanadhvam"}, 
		{"ájījanata"}, {"ájījanetām"}, {"ájījananta"}, 
	},
	aorija = { -- Whitney Para 869c
		{"jī́janam"}, {"jī́janāva"}, {"jī́janāma"}, 
		{"jī́janaḥ"}, {"jī́janatam"}, {"jī́janata"}, 
		{"jī́janat"}, {"jī́janatām"}, {"jī́janan"}, 
	},
	aorijm = { -- Whitney Para 869c
		{"jī́jane"}, {"jī́janāvahi"}, {"jī́janāmahi"}, 
		{"jī́janathāḥ"}, {"jī́janethām"}, {"jī́janadhvam"}, 
		{"jī́janata"}, {"jī́janetām"}, {"jī́jananta"}, 
	},
}

anaisit_ref = {
 	aoria = { -- Whitney Para 882, but with ḥ for final s.
		{"ánaiṣam"}, {"ánaiṣva"}, {"ánaiṣma"},
		{"ánaiṣīḥ", "ánaiḥ"}, {"ánaiṣṭam"}, {"ánaiṣṭa"},
		{"ánaiṣīt", "ánaiḥ", "ánait"}, {"ánaiṣṭām"}, {"ánaiṣuḥ"},
	},
 	aorim = { -- Whitney Para 882, but with ḥ for final s.
		{"áneṣi"}, {"áneṣvahi"}, {"áneṣmahi"},
		{"áneṣṭhāḥ"}, {"áneṣāthām"},
				{"áneḍhvam", why = dhvam_why("is s")},
		{"áneṣṭa"}, {"áneṣātām"}, {"áneṣata"},
	},
 	aorija = { -- Whitney Para 892
		{"naíṣam"}, {"naíṣva"}, {"naíṣma"},
		{"naíṣīḥ", "naíḥ"}, {"naíṣṭam"}, {"naíṣṭa"},
		{"naíṣīt", "naíḥ", "naít"}, {"naíṣṭām"}, {"naíṣuḥ"},
	},
 	aorijm = { -- Whitney Para 892
		{"néṣi"}, {"néṣvahi"}, {"néṣmahi"},
		{"néṣṭhāḥ"}, {"néṣāthām"},
				{"néḍhvam", why = dhvam_why("is s")},
		{"néṣṭa"}, {"néṣātām"}, {"néṣata"},
	},
}

acchaitsit_ref = {
 	aoria = { -- Whitney Para 882, but with ḥ for final s.
		{"ácchaitsam"}, {"ácchaitsva"}, {"ácchaitsma"},
		{"ácchaitsīḥ", "ácchait"}, {"ácchaittam"}, {"ácchaitta"},
		{"ácchaitsīt", "ácchait"}, {"ácchaittām"}, {"ácchaitsuḥ"},
	},
 	aorim = { -- Whitney Para 882, but with ḥ for final s.
		{"ácchitsi"}, {"ácchitsvahi"}, {"ácchitsmahi"},
		{"ácchitthāḥ"}, {"ácchitsāthām"}, {"ácchiddhvam"},
		{"ácchitta"}, {"ácchitsātām"}, {"ácchitsata"},
	},
}

apavit_ref = {
	aoria = { -- Whitney Para 902, but with ḥ for final s.
		{"ápāviṣam"}, {"ápāviṣva"}, {"ápāviṣma"}, 
		{"ápāvīḥ"}, {"ápāviṣṭam"}, {"ápāviṣṭa"}, 
		{"ápāvīt"}, {"ápāviṣṭām"}, {"ápāviṣuḥ"}, 
	},
	aorim = { -- Whitney Para 902, but with ḥ for final s.
		{"ápaviṣi"}, {"ápaviṣvahi"}, {"ápaviṣmahi"}, 
		{"ápaviṣṭhāḥ"}, {"ápaviṣāthām"}, {"ápaviḍhvam"}, 
		{"ápaviṣṭa"}, {"ápaviṣātām"}, {"ápaviṣata"}, 
	},
}

abodhit_ref = {
	aoria = { -- Whitney Para 902, but with ḥ for final s.  2nd & 3rd added by analogy.
		{"ábodhiṣam"}, {"ábodhiṣva"}, {"ábodhiṣma"}, 
		{"ábodhīḥ"}, {"ábodhiṣṭam"}, {"ábodhiṣṭa"}, 
		{"ábodhīt"}, {"ábodhiṣṭām"}, {"ábodhiṣuḥ"}, 
	},
	aorim = { -- Whitney Para 902, but with ḥ for final s.  2nd & 3rd added by analogy.
		{"ábodhiṣi"}, {"ábodhiṣvahi"}, {"ábodhiṣmahi"}, 
		{"ábodhiṣṭhāḥ"}, {"ábodhiṣāthām"}, {"ábodhiḍhvam"}, 
		{"ábodhiṣṭa"}, {"ábodhiṣātām"}, {"ábodhiṣata"}, 
	},
	aorija = { -- Whitney Para 905.
		{"bódhiṣam"}, {"bódhiṣva"}, {"bódhiṣma"}, 
		{"bódhīḥ"}, {"bódhiṣṭam"}, {"bódhiṣṭa"}, 
		{"bódhīt"}, {"bódhiṣṭām"}, {"bódhiṣuḥ"}, 
	},
	aorijm = { -- Whitney Para 905.
		{"bódhiṣi"}, {"bódhiṣvahi"}, {"bódhiṣmahi"}, 
		{"bódhiṣṭhāḥ"}, {"bódhiṣāthām"}, {"bódhiḍhvam"}, 
		{"bódhiṣṭa"}, {"bódhiṣātām"}, {"bódhiṣata"}, 
	},
}

ayasit_ref = {
	aoria = { -- Whitney Para 911, 2nd and 3rd persons by analogy
		{"áyāsiṣam"}, {"áyāsiṣva"}, {"áyāsiṣma"},
		{"áyāsīḥ"}, {"áyāsiṣṭam"}, {"áyāsiṣṭa"}, 
		{"áyāsīt"}, {"áyāsiṣṭām"}, {"áyāsiṣuḥ"}, 
	},
	aorija = { -- Whitney Para 913a
		{"yā́siṣam"}, {"yā́siṣva"}, {"yā́siṣma"},
		{"yā́sīḥ"}, {"yā́siṣṭam"}, {"yā́siṣṭa"}, 
		{"yā́sīt"}, {"yā́siṣṭām"}, {"yā́siṣuḥ"}, 
	},
}

anamsit_ref = { 
	aoria = { -- Whitney Para 911, 2nd and 3rd persons by analogy
		{"ánaṁsiṣam"}, {"ánaṁsiṣva"}, {"ánaṁsiṣma"}, 
		{"ánaṁsīḥ"}, {"ánaṁsiṣṭam"}, {"ánaṁsiṣṭa"}, 
		{"ánaṁsīt"}, {"ánaṁsiṣṭām"}, {"ánaṁsiṣuḥ"}, 
	},
}

adiksat_ref = {
	aoria = { -- Whitney Para 918, but with ḥ for final s.
		{"ádikṣam"}, {"ádikṣāva"}, {"ádikṣāma"}, 
		{"ádikṣaḥ"}, {"ádikṣatam"}, {"ádikṣata"}, 
		{"ádikṣat"}, {"ádikṣatām"}, {"ádikṣan"}, 
	},
	aorim = { -- Whitney Para 918, but with ḥ for final s.
		{"ádikṣi"}, {"ádikṣāvahi"}, {"ádikṣāmahi"}, 
		{"ádikṣathāḥ"}, {"ádikṣāthām"}, {"ádikṣadhvam"}, 
		{"ádikṣata"}, {"ádikṣātām"}, {"ádikṣanta"}, 
	},
	aorija = { -- Whitney Para 920b and 920e
		{"dikṣám"}, {"dikṣā́va"}, {"dikṣā́ma"}, 
		{"dikṣáḥ"}, {"dikṣátam"}, {"dikṣáta"}, 
		{"dikṣát"}, {"dikṣátām"}, {"dikṣán"},
	},
	aorijm = { -- Whitney Para 920b and 920e
		{"dikṣí"}, {"dikṣā́vahi"}, {"dikṣā́mahi"}, 
		{"dikṣáthāḥ"}, {"dikṣā́thām"}, {"dikṣádhvam"}, 
		{"dikṣáta"}, {"dikṣā́tām"}, {"dikṣánta"}, 
	},
}

bubodha_ref = {
	perfa = { -- Whitney 800a, but with ḥ for final s.
		{"bubódha"}, {"bubudhivá", "bubudhvá"}, {"bubudhimá", "bubudhmá"},  -- the second form of each pair is Vedic (following Whitney §798a)
		{"bubódhitha"}, {"bubudháthuḥ"}, {"bubudhá"}, 
		{"bubódha"}, {"bubudhátuḥ"}, {"bubudhúḥ"}, 
	},
	perfm = { -- Whitney 800a
		{"bubudhé"}, {"bubudhiváhe", "bubudhváhe"}, {"bubudhimáhe", "bubudhmáhe"}, 
		{"bubudhiṣé", "bubutsé"}, {"bubudhā́the"}, {"bubudhidhvé", "bubuddhvé"}, 
		{"bubudhé"}, {"bubudhā́te"}, {"bubudhiré", "bubudhré"}, 
	},
	pfap = {"bubudhvā́ṃs"}, -- Whitney 802
	pfmp = {"bubudhāná"}, -- Whitney 806
}

ninaya_ref = {
	perfa = { -- Whitney 800c, but with ḥ for final s.
		{"nináya", "ninā́ya"}, {"ninyivá"}, {"ninyimá"}, 
		{"ninétha", "nináyitha"}, {"ninyáthuḥ"}, {"ninyá"}, 
		{"ninā́ya"}, {"ninyátuḥ"}, {"ninyúḥ"}, 
	},
	perfm = { -- Whitney 800c
		{"ninyé"}, {"ninyiváhe"}, {"ninyimáhe"}, 
		{"ninyiṣé"}, {"ninyā́the"}, {"ninyidhvé"}, 
		{"ninyé"}, {"ninyā́te"}, {"ninyiré"}, 
	},
	pfap = {"ninīvā́ṃs"}, -- Whitney 802
	pfmp = {"ninyāná"}, -- Whitney 806
}

babhuva_ref = {
	perfa = { -- Whitney 800d, but with ḥ for final s.
		{"babhū́va"}, {"babhūvivá"}, {"babhūvimá"}, 
		{"babhū́tha", "babhū́vitha"}, {"babhūváthuḥ"}, {"babhūvá"}, 
		{"babhū́va"}, {"babhūvátuḥ"}, {"babhūvúḥ"}, 
	},
}

dadau_ref = {
	perfa = { -- Whitney 800e, but with ḥ for final s.
		{"dadaú"}, {"dadivá"}, {"dadimá"}, 
		{"dadā́tha", "dadithá"}, {"dadáthuḥ"}, {"dadá"}, 
		{"dadaú"}, {"dadátuḥ"}, {"dadúḥ"}, 
	},
	perfm = { -- Whitney 800e
		{"dadé"}, {"dadiváhe"}, {"dadimáhe"}, 
		{"dadiṣé"}, {"dadā́the"}, {"dadidhvé"}, 
		{"dadé"}, {"dadā́te"}, {"dadiré"}, 
	},
	pfap = {"dadivā́ṃs"}, -- Whitney 803
	pfmp = {"dadāná"}, -- Whitney 806
}

tatana_ref = {
	perfa = { -- Whitney 800g, but with ḥ for final s.
		{"tatána", "tatā́na"}, {"tenivá"}, {"tenimá"}, 
		{"tatántha", "tenithá"}, {"tenáthuḥ"}, {"tená"}, 
		{"tatā́na"}, {"tenátuḥ"}, {"tenúḥ"}, 
	},
	perfm = { -- Whitney 800g
		{"tené"}, {"teniváhe"}, {"tenimáhe"}, 
		{"teniṣé"}, {"tenā́the"}, {"tenidhvé"}, 
		{"tené"}, {"tenā́te"}, {"teniré"}, 
	},
	pfap = {"tenivā́ṃs"}, -- Whitney 803
	pfmp = {"tenāná"}, -- Whitney 806
}

jajana_ref = {
	perfa = { -- Whitney 800h, but with ḥ for final s.
		{"jajána", "jajā́na"}, {"jajñivá"}, {"jajñimá"}, 
		{"jajántha", "jajñithá"}, {"jajñáthuḥ"}, {"jajñá"}, 
		{"jajā́na"}, {"jajñátuḥ"}, {"jajñúḥ"}, 
	},
	perfm = { -- Whitney 800h
		{"jajñé"}, {"jajñiváhe"}, {"jajñimáhe"}, 
		{"jajñiṣé"}, {"jajñā́the"}, {"jajñidhvé"}, 
		{"jajñé"}, {"jajñā́te"}, {"jajñiré"}, 
	},
	pfap = {"jajñivā́ṃs"}, -- Whitney 803
	pfmp = {"jajñāná"}, -- Whitney 806
}

uvaca_ref = {
	perfa = { -- Whitney 800i, but with ḥ for final s.
		{"uváca", "uvā́ca"}, {"ūcivá"}, {"ūcimá"}, 
		{"uváktha", "uvácitha"}, {"ūcáthuḥ"}, {"ūcá"}, 
		{"uvā́ca"}, {"ūcátuḥ"}, {"ūcúḥ"}, 
	},
	perfm = { -- Whitney 800i
		{"ūcé"}, {"ūciváhe"}, {"ūcimáhe"}, 
		{"ūciṣé"}, {"ūcā́the"}, {"ūcidhvé"}, 
		{"ūcé"}, {"ūcā́te"}, {"ūciré"}, 
	},
	pfap = {"ūcivā́ṃs"}, -- Whitney 803
	pfmp = {"ūcāná"}, -- Whitney 806
}

iyaja_ref = {
	perfa = { -- Whitney 800j, but with ḥ for final s.
		{"iyája", "iyā́ja"}, {"ījivá"}, {"ījimá"}, 
		{"iyáṣṭha", "iyájitha"}, {"ījáthuḥ"}, {"ījá"}, 
		{"iyā́ja"}, {"ījátuḥ"}, {"ījúḥ"}, 
	},
	perfm = { -- Whitney 800i
		{"ījé"}, {"ījiváhe"}, {"ījimáhe"}, 
		{"ījiṣé"}, {"ījā́the"}, {"ījidhvé"}, 
		{"ījé"}, {"ījā́te"}, {"ījiré"}, 
	},
}

uvoca_ref = {
	perfa = { -- Whitney 800j, but with ḥ for final s.
		{"uvóca"}, {"ūcivá"}, {"ūcimá"}, 
		{"uvócitha"}, {"ūcáthuḥ"}, {"ūcá"}, 
		{"uvóca"}, {"ūcátuḥ"}, {"ūcúḥ"}, 
	},
	perfm = { -- Whitney 800i
		{"ūcé"}, {"ūciváhe"}, {"ūcimáhe"}, 
		{"ūciṣé"}, {"ūcā́the"}, {"ūcidhvé"}, 
		{"ūcé"}, {"ūcā́te"}, {"ūciré"}, 
	},
	pfap = {"ūcivā́ṃs"}, -- Whitney 803
	pfmp = {"ūcāná"}, -- Whitney 806
}

cakara_ref = {
	perfa = { -- Whitney 800k, but with ḥ for final s.
		{"cakára", "cakā́ra"}, {"cakṛvá"}, {"cakṛmá"}, 
		{"cakártha"}, {"cakráthuḥ"}, {"cakrá"}, 
		{"cakā́ra"}, {"cakrátuḥ"}, {"cakrúḥ"}, 
	},
	perfm = { -- Whitney 800k
		{"cakré"}, {"cakṛváhe"}, {"cakṛmáhe"}, 
		{"cakṛṣé"}, {"cakrā́the"}, {"cakṛdhvé"}, 
		{"cakré"}, {"cakrā́te"}, {"cakriré"}, 
	},
	pfap = {"cakṛvā́ṃs"}, -- Whitney 802
}

dadhara_ref = {
	perfa = { -- Whitney 800l; 2 & 3 as at https://sanskrit.inria.fr
		{"dadhára", "dadhā́ra"},
			{"dadhrivá", whynot = "https://sanskrit.inria.fr allows dadhṛvá."},
			{"dadhrimá", whynot = "https://sanskrit.inria.fr allows dadhṛmá."}, 
		{"dadhártha", "dadháritha"}, {"dadhráthuḥ"}, {"dadhrá"}, 
		{"dadhā́ra"}, {"dadhrátuḥ"}, {"dadhrúḥ"}, 
	},
	perfm = { -- Whitney 800l
		{"dadhré"}, {"dadhriváhe", "dadhṛváhe"}, {"dadhrimáhe", "dadhṛmáhe"}, 
		{"dadhriṣé", "dadhṛṣé"}, {"dadhrā́the"}, {"dadhridhvé", "dadhṛdhvé"}, 
		{"dadhré"}, {"dadhrā́te"}, {"dadhriré"}, 
	},
}

asa_ref = {
	perfa = { -- Whitney 800m, but with ḥ for final s.
		{"ā́sa"}, {"āsivá"}, {"āsimá"}, 
		{"ā́sitha"}, {"āsáthuḥ"}, {"āsá"}, 
		{"ā́sa"}, {"āsátuḥ"}, {"āsúḥ"}, 
	},
}

ada_ref = { -- Stems from Whitney 783a; details of perfect verified against https://sanskrit.inria.fr
	perfa = { -- Whitney 800m, but with ḥ for final s.
		{"ā́da"}, {"ādivá"}, {"ādimá"}, 
		{"ā́ditha"}, {"ādáthuḥ"}, {"ādá"}, 
		{"ā́da"}, {"ādátuḥ"}, {"ādúḥ"}, 
	},
	pfap = {"ādivā́ṃs"}, -- Whitney 803
}

jagama_ref = {
	perfa = { -- Whitney 794e for weak stem, details verified against https://sanskrit.inria.fr
		{"jagáma", "jagā́ma"}, {"jagmivá"}, {"jagmimá"}, 
		{"jagántha", "jagámitha"}, {"jagmáthuḥ"}, {"jagmá"}, 
		{"jagā́ma"}, {"jagmátuḥ"}, {"jagmúḥ"}, 
	},
	perfm = { -- Whitney 794e for weak stem, details verified against https://sanskrit.inria.fr
		{"jagmé"}, {"jagmiváhe"}, {"jagmimáhe"}, 
		{"jagmiṣé"}, {"jagmā́the"}, {"jagmidhvé"}, 
		{"jagmé"}, {"jagmā́te"}, {"jagmiré"}, 
	},
	pfap = {"jaganvā́ṃs", "jagmivā́ṃs"}, -- Whitney 805
}

jaghana_ref = {
	perfa = { -- Whitney 787 for strong stem and 794e for weak stem, details verified against https://sanskrit.inria.fr
		{"jaghána", "jaghā́na"}, {"jaghnivá"}, {"jaghnimá"}, 
		{"jaghántha", "jaghánitha"}, {"jaghnáthuḥ"}, {"jaghná"}, 
		{"jaghā́na"}, {"jaghnátuḥ"}, {"jaghnúḥ"}, 
	},
	perfm = { -- Whitney 794e for weak stem, details verified against https://sanskrit.inria.fr
		{"jaghné"}, {"jaghniváhe"}, {"jaghnimáhe"}, 
		{"jaghniṣé"}, {"jaghnā́the"}, {"jaghnidhvé"}, 
		{"jaghné"}, {"jaghnā́te"}, {"jaghniré"}, 
	},
	pfap = {"jaghanvā́ṃs", "jaghnivā́ṃs"}, -- Whitney 805
}

vevetti_ref = {
	presa = { -- Whitney 1006a, but with ḥ for final s.
		{"vévedmi", "vévidīmi"}, {"vevidváḥ"}, {"vevidmáḥ"}, 
		{"vévetsi", "vévidīṣi"}, {"vevittháḥ"}, {"vevitthá"}, 
		{"vévetti", "vévidīti"}, {"vevittáḥ"}, {"vévidati"}, 
	},
	opta = { -- Whitney 1009, but with ḥ for final s.
		{"vevidyā́m"}, {"vevidyā́va"}, {"vevidyā́ma"}, 
		{"vevidyā́ḥ"}, {"vevidyā́tam"}, {"vevidyā́ta"},
		{"vevidyā́t"}, {"vevidyā́tām"}, {"vevidyúḥ"},
	},
	impra = { -- Whitney 1010, but with ḥ for final s.
		{"vévidāni"}, {"vévidāva"}, {"vévidāma"}, 
		{"veviddhí"}, {"vevittám"}, {"vevittá"}, 
		{"vévettu", "vévidītu"}, {"vevittā́m"}, {"vévidatu"}, 
	},
	pap = {"vévidat"}, -- Based on Whitney 1012
	pmp = {"vévidāna"}, -- Based on Whitney 1012
	impfa = { -- Whitney 1014, but with ḥ for final s.
		{"ávevidam"}, {"ávevidva"}, {"ávevidma"}, 
		{"ávevet", "ávevidīḥ"}, {"ávevittam"}, {"ávevitta"}, 
		{"ávevet", "ávevidīt"}, {"ávevittām"}, {"áveviduḥ"}, 
	},
}

johoti_ref = {
	presa = { -- Whitney 1006b, but with ḥ for final s, for forms in --.  MW for johoti.  https://sanskrit.inria.fr for jahvati.
		{"jóhomi", "jóhavīmi"}, {}, {}, 
		{"jóhoṣi", "jóhavīṣi"}, {}, {}, 
		{"jóhoti", "jóhavīti"}, {}, {"jóhavati"}
	},
}

ipsati_ref = {
	presa = { -- Whitney 1032, but with ḥ for final s
		{"ī́psāmi"}, {"ī́psāvaḥ"}, {"ī́psāmaḥ"}, 
		{"ī́psasi"}, {"ī́psathaḥ"}, {"ī́psatha"},
		{"ī́psati"}, {"ī́psataḥ"}, {"ī́psanti"}
	},
	subja = { -- Whitney 1032, but with ḥ for final s
		{"ī́psāni"}, {"ī́psāva"}, {"ī́psāma"}, 
		{"ī́psāsi", "ī́psāḥ"}, {"ī́psāthaḥ"}, {"ī́psātha"},
		{"ī́psāti", "ī́psāt"}, {"ī́psātaḥ"}, {"ī́psān"}
	},
	optaa = { -- Whitney 1032, but with ḥ for final s
		{"ī́pseyam"}, {"ī́pseva"}, {"ī́psema"}, 
		{"ī́pseḥ"}, {"ī́psetam"}, {"ī́pseta"},
		{"ī́pset"}, {"ī́psetām"}, {"ī́pseyuḥ"},
	},
	impra = { -- Whitney 1032, but with ḥ for final s
		{"ī́psāni"}, {"ī́psāva"}, {"ī́psāma"},
		{"ī́psa", "ī́psatāt"}, {"ī́psatam"}, {"ī́psata"},
		{"ī́psatu", why = tat2sonly}, {"ī́psatām"}, {"ī́psantu"},
	},
	impra_reg = {
		{"ī́psāni"}, {"ī́psāva"}, {"ī́psāma"},
		{"ī́psa"}, {"ī́psatam"}, {"ī́psata"},
		{"ī́psatu"}, {"ī́psatām"}, {"ī́psantu"},
	},
	pap = {"ī́psant", whynot = whyant}, -- Whitney 1032.
	impfa = { -- Whitney 1032, but with ḥ for final s
		{"aípsam"}, {"aípsāva"}, {"aípsāma"}, 
		{"aípsaḥ"},{"aípsatam"}, {"aípsata"},
		{"aípsat"}, {"aípsatām"}, {"aípsan"},
	},
-- Injunctive form of the aboveː
	impfja = { -- Whitney Para 742 + 743, but with ḥ for final s.
		{"ī́psam"}, {"ī́psāva"}, {"ī́psāma"},
		{"ī́psaḥ"},{"ī́psatam"}, {"ī́psata"},
		{"ī́psat"}, {"ī́psatām"}, {"ī́psan"},
	},
}

titiksate_ref = {
	presm = { -- Whitney 1032, but with ḥ for final s
		{"títikṣe"}, {"títikṣāvahe"}, {"títikṣāmahe"}, 
		{"títikṣase"}, {"títikṣethe"}, {"títikṣadhve"},
		{"títikṣate"}, {"títikṣete"}, {"títikṣante"}
	},
	subjm = { -- Whitney 1032, but with ḥ for final s
		{"títikṣāi"}, {"títikṣāvahāi"}, {"títikṣāmahāi"}, 
		{"títikṣāse", "títikṣāsai"}, {}, {"títikṣādhvai"},
		{"títikṣāte", "títikṣātai"}, {"títikṣaite"}, {"títikṣanta", "títikṣāntai"}
	},
	optam = { -- Whitney 1032, but with ḥ for final s
		{"títikṣeya"}, {"títikṣevahi"}, {"títikṣemahi"}, 
		{"títikṣethāḥ"}, {"títikṣeyāthām"}, {"títikṣedhvam"},
		{"títikṣeta"}, {"títikṣeyātām"}, {"títikṣeran"},
	},
	imprm = { -- Whitney 1032, but with ḥ for final s
		{"títikṣai"}, {"títikṣāvahai"}, {"títikṣāmahai"},
		{"títikṣasva"}, {"títikṣethām"}, {"títikṣadhvam"},
		{"títikṣatām"}, {"títikṣetām"}, {"títikṣantām"},
	},
	pam = {"títikṣamāṇa"}, -- Whitney 11032
	impfm = { -- Whitney 1032, but with ḥ for final s
		{"átitikṣe"}, {"átitikṣāvahi"}, {"átitikṣāmahi"}, 
		{"átitikṣathāḥ"}, {"átitikṣethām"}, {"átitikṣadhvam"},
		{"átitikṣata"}, {"átitikṣetām"}, {"átitikṣanta"},
	},
-- Injunctive form of the aboveː
	impfjm = { -- Whitney Para 742 + 743, but with ḥ for final s.
		{"títikṣe"}, {"títikṣāvahi"}, {"títikṣāmahi"},
		{"títikṣathāḥ"}, {"títikṣethām"}, {"títikṣadhvam"},
		{"títikṣata"}, {"títikṣetām"}, {"títikṣanta"},
	},
}

local function by_person(tagged, prefix)
	local persons = {
		"_1_s", "_1_d", "_1_p",
		"_2_s", "_2_d", "_2_p",
		"_3_s", "_3_d", "_3_p"
	}
	local retval = {}
	retval[9] = "fred"
	for i, mark in ipairs(persons) do
		local form = tagged[prefix..mark]
		local nature = type(form)
		if "nil" == nature then
			retval[i] = {} -- nil
		elseif "table" == nature then
			retval[i] = form
		elseif "string" == nature then -- Apparently not needed.
--			mw.addWarning("Element "..tostring(i).." is "..form)
			retval[i] = {form}
		else
			error('List of forms expressed as "'..nature..'".')
		end
	end
	return retval
end

local function strip_accent(str)
-- Lazy coding.
	local si = str
	str = gasub(str, 'ś', 'C')
	str = mw.ustring.toNFD(str)
	str = gasub(str, u(0x301), '') -- Strip udatta
	str = gasub(str, u(0x300), '') -- Strip svarita, if any
	str = gasub(str, 'C', 'ś')
	local so = mw.ustring.toNFC(str)
--	mw.addWarning(si.." strips to "..so)
	return so
end

-- deaccent() strips the accents from a conjugation table.
local function deaccent(conj)
	local retval = {}
	for i1, v1 in pairs(conj) do
		local elt1 = type(v1)
		if elt1 == 'table' then
			retval[i1] = {}
			for i2, v2 in pairs(v1) do
				local elt2 = type(v2)
				if elt2 == 'table' then
					retval[i1][i2] = {}
					for i3, v3 in pairs(v2) do
						local elt3 = type(v3)
						if elt3 ~= 'string' then
							retval[i1][i2][i3] = v3
						elseif i3 == 'why' or i3 == 'whynot' then
							retval[i1][i2][i3] = v3
						else
							retval[i1][i2][i3] = strip_accent(v3)
						end
					end
				elseif elt2 == 'string' then
					if i2 == 'why' or i2 == 'whynot' then
						retval[i1][i2] = v2
					else
						retval[i1][i2] = strip_accent(v2)
					end
				else
					retval[i1][i2] = v2
				end
			end
		else
			retval[i1] = conj[i1]
		end
	end
	return retval
end

local function regularise(conj) -- Select the regular alternatives in _reg
	retval = {}
	for i, v in pairs(conj) do
		retval[i] = v
		if type(i) == "string" then
			regname = i .. "_reg"
			if conj[regname] then
				retval[i] = conj[regname]
			end
		end
	end
	return retval
end

-- Delete oral stops immediately between nasals and oral stops.
local function degemnstr(full)
	local stop = '[kKgGcCjJwWqQtTdDpPbB]'
	local regex =  "([NYRnm])"..stop.."("..stop..")"
	local retval = gasub(full, regex, "%1%2")
	return retval
end

-- Added forms with degemination after nasal (Whitney Para 231) to test results.
local function adddegem(oldgot)
	def = {}
	for i1, v1 in pairs(oldgot) do
		def[i1] = v1 -- Participles don't need processing.
		if type(v1) == "table" then
			def[i1] = {}
			for i2, v2 in pairs(v1) do
				if type(v2) == "table" then
					def[i1][i2] = {}
					local contents = {}
					for _, v3 in ipairs(v2) do
						local red = degemnstr(v3)
						local cands = {red, v3}
						for _, cand in ipairs(cands) do
							if not contents[cand] then
								contents[cand] = true
								ti(def[i1][i2], cand)
							end
						end
					end
				else
					def[i1][i2] = v2 -- Participles don't need degemination
				end
			end
		else
			def[i1] = v1
		end	
	end
	return def
end	
	
-- check_present() also handles the future systems. 
-- label tags  the test result
-- req is the required conjugation,as in bhavati_def above.
-- got is a table in which to store the generated values in data.  All results
--     are stored, not just those specified by voice.
-- voice is voices to check - act / mid / both / none
-- optional part_voice allows a different set of voices to be checked for the 
--                     participles.
local function check_present(label, req, got, data, voice, part_voice, detAt, degem)
-- First load the generated forms from DATA into GOT.
	got.presa = by_person(data.forms, "indic_av")
	got.presm = by_person(data.forms, "indic_mv")
	got.optaa = by_person(data.forms, "optat_av")
	got.optam = by_person(data.forms, "optat_mv")
	got.impra = by_person(data.forms, "imper_av")
	got.imprm = by_person(data.forms, "imper_mv")
	if degem then got = adddegem(got) end
	got.pap = data.forms.part_av
	got.pmp = data.forms.part_mv
-- Now perform required comparisons.
	if voice == "act" then
		if req.presa then compare(req, got, label.." pres ", "presa") end
		if req.optaa then compare(req, got, label.." opt ",  "optaa") end
		if req.impra then compare(req, got, label.." impr ", "impra", nil, detAt) end
		if got.impfa then compare(req, got, label.." impf ", "impfa") end
		if got.impfja then compare(req, got, label.." inj ", "impfja") end
		if got.futua then compare(req, got, label.." fut ",  "futua") end
		if got.conda then compare(req, got, label.." cond ", "conda") end
		if got.pfuta then compare(req, got, label.." pfut ", "pfuta") end
	elseif voice == "mid" then
		if req.presm then compare(req, got, label.." pres ", "presm") end
		if req.optam then compare(req, got, label.." opt ", "optam") end
		if req.imprm then compare(req, got, label.." impr ", "imprm") end
		if got.impfm then compare(req, got, label.." impf ", "impfm") end
		if got.impfjm then compare(req, got, label.." inj ", "impfjm") end
		if got.futum then compare(req, got, label.." fut ",  "futum") end
		if got.condm then compare(req, got, label.." cond ", "condm") end
		if got.pfutm then compare(req, got, label.." pfut ", "pfutm") end
	elseif voice == "both" then
		if req.presa or req.presm then
			compare(req, got, label.." pres ", "presa", "presm")
		end
		if req.optaa or req.optam then
			compare(req, got, label.." opt ", "optaa", "optam")
		end
		if req.impra or req.imprm then
			compare(req, got, label.." impr ", "impra", "imprm", detAt)
		end
		if got.impfa or got.impfm then
			compare(req, got, label.." impf ", "impfa", "impfm")
		end
		if got.impfja or got.impfjm then
			compare(req, got, label.." inj ", "impfja", "impfjm")
		end
		if got.futua or got.futum then
			compare(req, got, label.." fut ", "futua", "futum")
		end
		if got.conda or got.condm then
			compare(req, got, label.." cond ", "conda", "condm")
		end
		if got.pfuta or got.pfutm then
			compare(req, got, label.." pfut ", "pfuta", "pfutm")
		end
	elseif voice == "none" then
		-- Perform no tests.
	else
		error("VOICE has unrecognised value "..voice)
	end
	part_voice = part_voice or voice
	if req.pap or req.pmp then
		if part_voice == "act" then
			comp_lists(req, got, label.." part ", "pap")
		elseif part_voice == "mid" then
			comp_lists(req, got, label.." part ", "pmp")
		elseif part_voice == "both" then
			comp_lists(req, got, label.." act part ", "pap")
			comp_lists(req, got, label.." mid part ", "pmp")
		elseif part_voice == "none" then
			-- Perform no tests.
		else
			error("PART_VOICE has unrecognised value "..voice)
		end
	end
	if req.fap or req.fmp then
		if part_voice == "act" then
			comp_lists(req, got, label.." fut part ", "fap")
		elseif part_voice == "mid" then
			comp_lists(req, got, label.." fut part ", "fmp")
		elseif part_voice == "both" then
			comp_lists(req, got, label.." fut act part ", "fap")
			comp_lists(req, got, label.." fut mid part ", "fmp")
		elseif part_voice == "none" then
			-- Perform no tests.
		else
			error("PART_VOICE has unrecognised value "..voice)
		end
	end
end

local function sa_verb_data_table()
	return {
		forms = {},
        categories = {},
        decl_type = nil,
        form_notes = {},
        form_notes_out = {},
        general_notes = {}
    }
end

local function report_args(args, list)
	local started = false
	for _, flag in pairs({"set", "j_to_z", "h_to_g", "diaspirate", "no_retroflex_root_s"}) do
		if args[flag] then
			ti(list, flag)
			started = true
		end
	end
	if args.aor then
		ti(list, "aor="..args.aor)
		started = true
	end
	if args.class then
		ti(list, "class="..args.class)
		started = true
	end
	return started
end

local function assistance(label, args, spres, wpres, spast, wpast, sinj, winj, fp_pres, fp_past, pfroot, detAt, degem)
	local started = false
	local list = {}
	list[1] = label.." uses"
	started = report_args(args, list) or started
	if spres then 
		ti(list, "spres="..spres)
		started = true
	end
	if wpres then 
		ti(list, "wpres="..wpres)
		started = true
	end
	if spast then 
		ti(list, "spast="..spast)
		started = true
	end
	if wpast then 
		ti(list, "wpast="..wpast)
		started = true
	end
	if sinj then 
		ti(list, "sinj="..sinj)
		started = true
	end
	if winj then 
		ti(list, "winj="..winj)
		started = true
	end
	if fp_pres then
		ti(list, "fp_pres="..fp_pres) -- "extra_1p_stem"
		started = true
	end
	if fp_past then
		ti(list, "fp_past="..fp_past)
		started = true
	end
	if pfroot then 
		ti(list, "pfroot="..pfroot)
		started = true
	end
	if detAt then
		ti(list, "detAt")
		started = true
	end
	if degem then
		ti(list, "adddegem")
		started = true
	end
	if started then
		local htext = table.concat(list, ' ')
		htext = gasub(htext, "=<", "=&lt;") -- Prevent inadvertent HTML tags.
		tests:header(htext)
	end
end

local function aorist_assistance(label, args, aaor, maor, aprec, mprec, ainj, minj)
	local started = false
	local list = {}
	list[1] = label.." uses"
	started = report_args(args, list) or started
	if aaor then
		ti(list, "aaor="..aaor)
		started = true
	end
	if maor then
		ti(list, "maor="..maor)
		started = true
	end
	if aprec then
		ti(list, "aprec="..aprec)
		started = true
	end
	if mprec then
		ti(list, "mprec="..mprec)
		started = true
	end
	if ainj then
		ti(list, "ainj="..ainj)
		started = true
	end
	if minj then
		ti(list, "minj="..minj)
		started = true
	end
	if started then
		local htext = table.concat(list, ' ')
		htext = gasub(htext, "=<", "=&lt;") -- Prevent inadvertent HTML tags.
		tests:header(htext)
	end
end

local function perfect_assistance(label, args, sperf, wperf)
	local started = false
	local list = {}
	list[1] = label.." uses"
	started = report_args(args, list) or started
	if sperf then
		ti(list, "sperf="..sperf)
		started = true
	end
	if wperf then
		ti(list, "wperf="..wperf)
		started = true
	end
	if started then
		local htext = table.concat(list, ' ')
		htext = gasub(htext, "=<", "=&lt;") -- Prevent inadvertent HTML tags.
		tests:header(htext)
	end
end

-- check_present2() also handles the future systems. 
local function check_present2(arglist)
	local label = arglist.label or arglist[1]
	local req = arglist.req or arglist[2]
	local args = arglist.args or arglist[3]
	local thematic = arglist.thematic or arglist[4]
	local accented = arglist.accented or arglist[5]
 	local voice = arglist.voice or arglist[6]
	local spres = arglist.spres -- explicit roots in angle brackets, best passed by name
	local wpres = arglist.wpres
	local spast = arglist.spast
	local wpast = arglist.wpast
	local sinj  = arglist.sinj
	local winj  = arglist.winj
	local fp_pres = arglist.fp_pres  -- argument "extra_1p_stem" for present, not in brackets
	local fp_past = arglist.fp_past  -- same for imperfect
	local pfroot = arglist.pfroot
	local part_voice = arglist.part_voice
	local detAt = arglist.detAt
	local degem = arglist.degem

	local data
	local pres, impf, impfj
	if voice == "both" or voice == "act" then
		pres  = "presa"
		impf  = "impfa"
		impfj = "impfja"
		futu  = "futua"
		cond  = "conda"
		pfut  = "pfuta"
	elseif voice == "mid" then
		pres  = "presm"
		impf  = "impfm"
		impfj = "impfjm"
		futu  = "futum"
		cond  = "condm"
		pfut  = "pfutm"
	elseif type(voice) == "string" then
		error("VOICE has bad value "..voice)
	else
		error("VOICE has bad value of type "..type(voice))
	end
	local filters
	if accented == "both" then
		filters = {pass_through, strip_accent}
	elseif accented == "yes" then
		filters = {pass_through}
	elseif accented == "no" then
		filters = {strip_accent}
	elseif type(accented) == "nil" then
		error("Parameter accented is not defined.")
	elseif type(accented) == "string" then
		error("ACCENTED misspecified as "..accented)
	else
		error("ACCENTED has bad value.")
	end
	for _, filter in pairs(filters) do
		local got = {}
		if type(req[impf]) == "table" and req[impf][7] then
			data = sa_verb_data_table()
			args.strong_lemma =
				to_SLP1(filter(req[impf][7][1]..(spast or "")))
			if thematic then
				args.weak_lemma = nil
			else
				args.weak_lemma =
					to_SLP1(filter(req[impf][9][1]..(wpast or "")))
			end
			if fp_past then
				args.extra_1p_stem = to_SLP1(filter(fp_past or ""))
			end
			sa_verb_data["impf"](args, data)
			got.impfa = by_person(data.forms, "indic_av")
			got.impfm = by_person(data.forms, "indic_mv")
		end
		if type(req[impfj]) == "table" and req[impfj][7] then
			data = sa_verb_data_table()
			args.strong_lemma =
				to_SLP1(filter(req[impfj][7][1]..(sinj or "")))
			if thematic then
				args.weak_lemma = nil
			else
				args.weak_lemma =
					to_SLP1(filter(req[impfj][9][1]..(winj or "")))
			end
			sa_verb_data["impf"](args, data)
			got.impfja = by_person(data.forms, "indic_av")
			got.impfjm = by_person(data.forms, "indic_mv")
		end
		if type(req[cond]) == "table" and req[cond][7] then
			data = sa_verb_data_table()
			args.strong_lemma = to_SLP1(filter(req[cond][7][1]))
			args.weak_lemma = nil
			sa_verb_data["cond"](args, data)
			got.conda = by_person(data.forms, "indic_av")
			got.condm = by_person(data.forms, "indic_mv")
		end
		if type(req[futu]) == "table" and req[futu][7] then
			data = sa_verb_data_table()
			args.strong_lemma = to_SLP1(filter(req[futu][7][1]))
			args.weak_lemma = nil
			sa_verb_data["fut"](args, data)
			got.futua = by_person(data.forms, "indic_av")
			got.futum = by_person(data.forms, "indic_mv")
			got.fap = data.forms.part_av
			got.fmp = data.forms.part_mv
		end
		if type(req[pfut]) == "table" and req[pfut][7] then
			data = sa_verb_data_table()
			args.strong_lemma = to_SLP1(filter(req[pfut][7][1]..(pfroot or "")))
			args.weak_lemma = nil
			sa_verb_data["pfut"](args, data)
			got.pfuta = by_person(data.forms, "indic_av")
			got.pfutm = by_person(data.forms, "indic_mv")
		end
		if type(req[pres]) == "table" then
			data = sa_verb_data_table()
			args.strong_lemma = to_SLP1(filter(req[pres][7][1]..(spres or "")))
			if thematic then
				args.weak_lemma = nil
			else
				args.weak_lemma = to_SLP1(filter(req[pres][9][1]..(wpres or "")))
			end
			if fp_pres then
				args.extra_1p_stem = to_SLP1(filter(fp_pres or ""))
			end
			sa_verb_data["pres"](args, data)
		end
		if filter == strip_accent then
			local newlab = strip_accent(label)
			local sa = strip_accent
			assistance(newlab, args,
				spres and sa(spres), wpres and sa(wpres),
				spast and sa(spast), wpast and sa(wpast),
				sinj and sa(sinj),   winj and sa(winj),
				fp_pres and sa(fp_pres), fp_past and sa(fp_past),
				fproot and sa(fproot), detAt, degem)
        	check_present(newlab, deaccent(req), got, data,
        					voice, part_voice, detAt, degem)
        else
			assistance(label, args,
				spres, wpres, spast, wpast, sinj, winj, fp_pres, fp_past, fproot, detAt, degem)
        	check_present(label, req, got, data, voice, part_voice, detAt, degem)
		end
 	end
end

-- check_aorist handles aorist and precative.
local function check_aorist(arglist)
	local label = arglist.label or arglist[1]
	local req = arglist.req or arglist[2]
	local args = arglist.args or arglist[3]
	local same = arglist.same or arglist[4]
	local accented = arglist.accented or arglist[5]
 	local voice = arglist.voice or arglist[6]
	local aaor  = arglist.aaor -- explicit roots in angle brackets
	local maor  = arglist.maor
	local aprec = arglist.aprec
	local mprec = arglist.mprec
	local ainj  = arglist.ainj
	local minj  = arglist.minj
	local part_voice = arglist.part_voice

	local data
	local aori, prec, aorij
	local eaor, eprec, einf
	if voice == "both" or voice == "act" then
		aori  = "aoria"
		eaor  =  aaor
		prec  = "preca"
		eprec =  aprec
		aorij = "aorija"
		einj  =  ainj
	elseif voice == "mid" then
		aori  = "aorim"
		eaor  =  maor
		prec  = "precm"
		eprec =  mprec
		aorij = "aorijm"
		einj  =  minj
	elseif type(voice) == "string" then
		error("VOICE has bad value "..voice)
	else
		error("VOICE has bad value of type "..type(voice))
	end
	local filters
	if accented == "both" then
		filters = {pass_through, strip_accent}
	elseif accented == "yes" then
		filters = {pass_through}
	elseif accented == "no" then
		filters = {strip_accent}
	elseif type(accented) == "nil" then
		error("Parameter accented is not defined.")
	elseif type(accented) == "string" then
		error("ACCENTED misspecified as "..accented)
	else
		error("ACCENTED has bad value.")
	end
	for _, filter in pairs(filters) do
		local got = {}
		if type(req[aori]) == "table" and req[aori][7] then
			data = sa_verb_data_table()
			args.strong_lemma =
				to_SLP1(filter(req[aori][7][1]..(eaor or "")))
			if req.aorim and not same then
				args.weak_lemma =
					to_SLP1(filter(req.aorim[7][1]..(maor or "")))
			else
				args.weak_lemma = nil
			end
			sa_verb_data["aor"](args, data)
			got.aoria = by_person(data.forms, "indic_av")
			got.aorim = by_person(data.forms, "indic_mv")
			got.aap = data.forms.part_av
			got.amp = data.forms.part_mv
		end
		if type(req[prec]) == "table" and req[prec][7] then
			data = sa_verb_data_table()
			args.strong_lemma =
				to_SLP1(filter(req[prec][7][1]..(eprec or "")))
			if req.precm and not same then
				args.weak_lemma =
					to_SLP1(filter(req.precm[7][1]..(mprec or "")))
			else
				args.weak_lemma = nil
			end
			sa_verb_data["bene"](args, data)
			if false then -- Occasionally enable to check data format!
				mw.addWarning("Precative data.forms has fields:")
				for n, v in pairs(data.forms) do
					mw.addWarning("Field "..tostring(n))
				end
			end
			got.preca = by_person(data.forms, "optat_av")
			got.precm = by_person(data.forms, "optat_mv")
		end
		if type(req[aorij]) == "table" and req[aorij][7] then
			data = sa_verb_data_table()
			args.strong_lemma =
				to_SLP1(filter(req[aorij][7][1]..(einj or "")))
			if req.aorijm and not same then
				args.weak_lemma =
					to_SLP1(filter(req.aorijm[7][1]..(mprec or "")))
			else
				args.weak_lemma = nil
			end
			sa_verb_data["aor"](args, data)
			if false then -- Occasionally enable to check data format!
				mw.addWarning("Injunctive data.forms has fields:")
				for n, v in pairs(data.forms) do
					mw.addWarning("Field "..tostring(n))
				end
			end
			got.aorija = by_person(data.forms, "indic_av")
			got.aorijm = by_person(data.forms, "indic_mv")
		end
		local newlab, curreq
		if filter == strip_accent then
			newlab = strip_accent(label)
			local sa = strip_accent
			aorist_assistance(newlab, args,
				aaor and sa(aaor), maor and sa(maor),
				aprec and sa(aprec), mprec and sa(mprec),
				ainj and sa(ainj),   minj and sa(minj))
        	curreq = deaccent(req)
        else
			aorist_assistance(label, args, spres, wpres, spast, wpast, sinj, winj)
			newlab = label
			curreq = req
		end
-- Now perform required comparisons.
-- Note that req and curreq have corresponding tables, which keeps lines shorter.
		if voice == "act" then
			if req.aoria  then compare(curreq, got, newlab.." aor ", "aoria") end
			if req.preca  then compare(curreq, got, newlab.." prec ", "preca") end
			if req.aorija then compare(curreq, got, newlab.." inj ", "aorija") end
		elseif voice == "mid" then
			if req.aorim  then compare(curreq, got, newlab.." aor ", "aorim") end
			if req.precm  then compare(curreq, got, newlab.." prec ", "precm") end
			if req.aorijm then compare(curreq, got, newlab.." inj ", "aorijm") end
		elseif voice == "both" then
			if req.aoria or req.aorim then
				compare(curreq, got, newlab.." aor ", "aoria", "aorim")
			end
			if req.preca or req.precm then
				compare(curreq, got, newlab.." prec ",  "preca", "precm")
			end
			if req.aorija or req.aorijm then
				if false then
					mw.addWarning("Types of curreq.aorija and aorijm are "..
							type(curreq.aorija).." and "..type(curreq.aorijm))
					mw.addWarning("Types of got.aorija and aorijm are "..
							type(got.aorija).." and "..type(got.aorijm))
				end
				compare(curreq, got, newlab.." inj ",  "aorija", "aorijm")
			end
		elseif voice == "none" then
			-- Perform no tests.
		else
			error("VOICE has unrecognised value "..voice)
		end
		part_voice = part_voice or voice
		if req.aap or req.amp then
			if part_voice == "act" then
				comp_lists(curreq, got, newlab.." part ", "aap")
			elseif part_voice == "mid" then
				comp_lists(curreq, got, newlab.." part ", "amp")
			elseif part_voice == "both" then
				comp_lists(curreq, got, newlab.." act part ", "aap")
				comp_lists(curreq, got, newlab.." mid part ", "amp")
			elseif part_voice == "none" then
				-- Perform no tests.
			else
				error("PART_VOICE has unrecognised value "..voice)
			end
		end
	end
end

-- check_perfect handles perfect.
local function check_perfect(arglist)
	local label = arglist.label or arglist[1]
	local req = arglist.req or arglist[2]
	local args = arglist.args or arglist[3]
	local same = arglist.same or arglist[4]
	local accented = arglist.accented or arglist[5]
 	local voice = arglist.voice or arglist[6]
	local sperf  = arglist.sperf -- explicit roots in angle brackets
	local wperf  = arglist.wperf
	local part_voice = arglist.part_voice

	local data
	local perf
	local eaor, eprec, einf
	if voice == "both" or voice == "act" then
		perf  = "perfa"
	elseif voice == "mid" then
		perf  = "perfm"
	elseif type(voice) == "string" then
		error("VOICE has bad value "..voice)
	else
		error("VOICE has bad value of type "..type(voice))
	end
	local filters
	if accented == "both" then
		filters = {pass_through, strip_accent}
	elseif accented == "yes" then
		filters = {pass_through}
	elseif accented == "no" then
		filters = {strip_accent}
	elseif type(accented) == "nil" then
		error("Parameter accented is not defined.")
	elseif type(accented) == "string" then
		error("ACCENTED misspecified as "..accented)
	else
		error("ACCENTED has bad value.")
	end
	for _, filter in pairs(filters) do
		local got = {}
		if type(req[perf]) == "table" and req[perf][7] then
			data = sa_verb_data_table()
			args.strong_lemma =
				to_SLP1(filter(req[perf][7][1]..(sperf or "")))
			if not same then
				args.weak_lemma =
					to_SLP1(filter(req[perf][9][1]..(wperf or "")))
			else
				args.weak_lemma = nil
			end
			sa_verb_data["perf"](args, data)
			got.perfa = by_person(data.forms, "indic_av")
			got.perfm = by_person(data.forms, "indic_mv")
			got.pfap = data.forms.part_av
			got.pfmp = data.forms.part_mv
		end
		local newlab, curreq
		if filter == strip_accent then
			newlab = strip_accent(label)
			local sa = strip_accent
			perfect_assistance(newlab, args,
				sperf and sa(sperf), wperf and sa(wpert))
        	curreq = deaccent(req)
        else
			perfect_assistance(label, args, sperf, wperf)
			newlab = label
			curreq = req
		end
-- Now perform required comparisons.
-- Note that req and curreq have corresponding tables, which keeps lines shorter.
		if voice == "act" then
			if req.perfa  then compare(curreq, got, newlab.." perf ", "perfa") end
		elseif voice == "mid" then
			if req.perfm  then compare(curreq, got, newlab.." perf ", "perfm") end
		elseif voice == "both" then
			if req.perfa or req.perfm then
				compare(curreq, got, newlab.." perf ", "perfa", "perfm")
			end
		elseif voice == "none" then
			-- Perform no tests.
		else
			error("VOICE has unrecognised value "..voice)
		end
		part_voice = part_voice or voice
		if req.pfap or req.pfmp then
			if part_voice == "act" and req.pfap then
				comp_lists(curreq, got, newlab.." part ", "pfap")
			elseif part_voice == "mid" and req.pfam then
				comp_lists(curreq, got, newlab.." part ", "pfmp")
			elseif part_voice == "both" then
				if req.pfap then
					comp_lists(curreq, got, newlab.." act part ", "pfap")
				end
				if req.pfmp then
					comp_lists(curreq, got, newlab.." mid part ", "pfmp")
				end
			elseif part_voice == "none" then
				-- Perform no tests.
			else
				error("PART_VOICE has unrecognised value "..voice)
			end
		end
	end
end

function tests:test_class_1()
	local impl = tests.option.impl or "yes"
--	local pacati = to_script("pacati", tests.sc, tests.option)
--	local pacati_got = m_conj_verb.special_forms(pacati,
--		{augment="with_made", impf_voice="both", impl = impl})
	local data = sa_verb_data_table()
	local args = {["strong_lemma"] = to_SLP1("bhávati"), auto_sandhi = true}
	if false then -- Leave in for future debugging.
		args.colspan = 7
		args.lemma = "bhávati"
        args.n = "am"
        args[1] = "pres"
        args.tense = "pres"
        args[2] = "bhávati"
        args.set = false
        args.note = {}
        args.o = false
        args.mono = false
        args.j_to_z = false
        args.h_to_g = false
        args.diaspirate = false
        args.no_retroflex_root_s = true
--		args.ignore_s_allophones = false
	end
	local bhavati_got = {}
	sa_verb_data["pres"](args, data)
	if false then -- Occasionally enable to check data format!
		mw.addWarning("data.forms has fields:")
		for n, v in pairs(data.forms) do
			mw.addWarning("Field "..tostring(n))
		end
	end
	bhavati_got.presa = by_person(data.forms, "indic_av")
	bhavati_got.presm = by_person(data.forms, "indic_mv")
	compare(bhavati_ref, bhavati_got, "bhávati pres ", "presa", "presm")

	bhavati_got.optaa = by_person(data.forms, "optat_av")
	bhavati_got.optam = by_person(data.forms, "optat_mv")
	compare(bhavati_ref, bhavati_got, "bhávati opt ", "optaa", "optam")

	bhavati_got.impra = by_person(data.forms, "imper_av")
	bhavati_got.imprm = by_person(data.forms, "imper_mv")
-- Displayed under irregularities.

	bhavati_got.pap = data.forms.part_av
	bhavati_got.pmp = data.forms.part_mv
	comp_lists(bhavati_ref, bhavati_got, "bhávati act part ", "pap")
	comp_lists(bhavati_ref, bhavati_got, "bhávati mid part ", "pmp")

	args.strong_lemma = "ábhavat"
	data = sa_verb_data_table()
	sa_verb_data["impf"](args, data)
	bhavati_got.impfa = by_person(data.forms, "indic_av")
	bhavati_got.impfm = by_person(data.forms, "indic_mv")
	compare(bhavati_ref, bhavati_got, "bhávati impf ", "impfa", "impfm")

	args.strong_lemma = "bhávat"
	data = sa_verb_data_table()
	sa_verb_data["impf"](args, data)
	bhavati_got.impfja = by_person(data.forms, "indic_av")
	bhavati_got.impfjm = by_person(data.forms, "indic_mv")
	compare(bhavati_ref, bhavati_got, "bhávati inj ", "impfja", "impfjm")

	args = {auto_sandhi = true, detAt = true}
	check_present2{"Regularised bhávati", regularise(bhavati_ref), args, true, "yes", "both",
					detAt = true}
-- Test derivation from middle.
	data = sa_verb_data_table()
	args = {strong_lemma = to_SLP1("bhávate"), auto_sandhi = true}
	local bhavate_got = {}
	sa_verb_data["pres"](args, data)
	bhavate_got.presa = by_person(data.forms, "indic_av")
	bhavate_got.presm = by_person(data.forms, "indic_mv")
-- Bits can be interrogated as:	result["indic"]["av"]["1_s"], which yields "bhavāmi"
	compare(bhavati_ref, bhavate_got, "bhávate pres ", "presa", "presm")

	bhavate_got.optaa = by_person(data.forms, "optat_av")
	bhavate_got.optam = by_person(data.forms, "optat_mv")
	compare(bhavati_ref, bhavate_got, "bhavate opt ", "optaa", "optam")

	bhavate_got.impra = by_person(data.forms, "imper_av")
	bhavate_got.imprm = by_person(data.forms, "imper_mv")
	compare(bhavati_ref, bhavate_got, "bhávate impr ", "impra", "imprm")

	bhavate_got.pap = data.forms.part_av
	bhavate_got.pmp = data.forms.part_mv
	comp_lists(bhavati_ref, bhavate_got, "bhávate act part ", "pap")
	comp_lists(bhavati_ref, bhavate_got, "bhávate mid part ", "pmp")

	args.strong_lemma = "ábhavat"
	data = sa_verb_data_table()
	sa_verb_data["impf"](args, data)
	bhavate_got.impfa = by_person(data.forms, "indic_av")
	bhavate_got.impfm = by_person(data.forms, "indic_mv")
	compare(bhavati_ref, bhavate_got, "bhávate impf ", "impfa", "impfm")

	args.strong_lemma = "bhávata"
	data = sa_verb_data_table()
	sa_verb_data["impf"](args, data)
	bhavate_got.impfja = by_person(data.forms, "indic_av")
	bhavate_got.impfjm = by_person(data.forms, "indic_mv")
	compare(bhavati_ref, bhavate_got, "bhávate inj ", "impfja", "impfjm")

	args = { auto_sandhi = true, no_retroflex_root_s = true}
	check_present2{"pesati (not a Whitney table)",
					pesati_ref, args, true, "no", "act", part_voice ="none"
	}

	tests:header("With irregularities:")
	compare(bhavati_ref, bhavati_got, "bhavati impr ", "impra", "imprm")

end

function tests:test_class_2()
	local impl = tests.option.impl or "yes"
--	local pacati = to_script("pacati", tests.sc, tests.option)
--	local pacati_got = m_conj_verb.special_forms(pacati,
--		{augment="with_made", impf_voice="both", impl = impl})
	local data = sa_verb_data_table()
-- Implicit weak lemma does not suffice for imperfect - must give stem explicitly.
	local args = {
		strong_lemma = to_SLP1(eti_ref.impfa[7][1]),
		weak_lemma = to_SLP1(eti_ref.impfa[9][1]),
		auto_sandhi = true}
	local eti_got = {}
	sa_verb_data["impf"](args, data)
	eti_got.impfa = by_person(data.forms, "indic_av")
	compare(eti_ref, eti_got, "full extracting éti impf ", "impfa")

	args = {auto_sandhi = true}
	check_present2{"explicit weak lemma: éti", eti_ref, args, false, "yes", "act",
--					wpres="<i>",
--					wpast="<aí>",
					detAt=true}

	args = {auto_sandhi = true}
	check_present2{"Regularised ā́ste", regularise(aste_ref), args, false, "yes", "mid",
--					spres="<ā́s>"
	}

	args = {auto_sandhi = true}
	check_present2{"dvéṣṭi", dvesti_ref, args, false, "yes", "both",
--					spres = "<dvéṣ>", spast = "<ádveṣ>",
					detAt = true
	}

	args = {
		h_to_g = true,
		diaspirate = true,
		auto_sandhi = true
	}
	check_present2{"Regularised dógdhi", regularise(dogdhi_ref), args, false, "yes", "both",
--					spres = "<dóh>", spast = "<ádoh>", 
					detAt = true
	}

	args = {
		auto_sandhi = true,
	}
	check_present2{"léḍhi", ledhi_ref, args, false, "yes", "both",
--		spres = "<léh>", spast = "<áleh>", 
		detAt = true
		}
	
	args = {
		auto_sandhi = true,
	}
	check_present2{"ásti", asti_ref, args, false, "both", "act",
					detAt = true, 
--					spast = "<ā́s>"
	}
	
	args = {
		auto_sandhi = true,
	}
	check_present2{"hánti", hanti_ref, args, false, "both", "both",
		wpres = "<ha>", -- Unprompted.
--		spast = "<áhan>",
		wpast = "<áha>", -- Unprompted
		fp_pres = "han",
		fp_past = "áhan"
	}
	
	tests:header("With irregularities:")
	data = sa_verb_data_table()
	args = {
		strong_lemma = to_SLP1("ā́ste"),
		weak_lemma = to_SLP1("ā́sate"),
		auto_sandhi = true}
	local aste_got = {}
	sa_verb_data["pres"](args, data)
	aste_got.pmp = data.forms.part_mv
	comp_lists(aste_ref, aste_got, "ā́ste part ", "pmp")

	args = {
		strong_lemma = to_SLP1("dógdhi<dóh>"),
		weak_lemma = to_SLP1("duhánti"),
		h_to_g = true,
		diaspirate = true,
		auto_sandhi = true,
	}
	data = sa_verb_data_table()
	sa_verb_data["pres"](args, data)
	dogdhi_got = {}
	assistance("dógdhi", args, "<dóh>", nil, "<ádoh>")
	dogdhi_got.pmp = data.forms.part_mv
	comp_lists(dogdhi_ref, dogdhi_got, "dógdhi mid part ", "pmp")

end

function tests:test_class_3()
	local args = { auto_sandhi = true, }
	check_present2{"juhóti", juhoti_ref, args, false, "yes", "both",
		wpast = "<ájuhu>", detAt = true
	}

	args = { auto_sandhi = true, }
	check_present2{"bíbharti", bibharti_ref, args, false, "yes", "both",
--		spast = "<ábibhar>", 
--		wpast = "<ábibhṛ>",
		detAt = true
	}

	args = { auto_sandhi = true}
	check_present2{"dádāti", dadati_ref, args, false, "yes", "act",
--		wpast = "<ádad>"
	}

	args = { auto_sandhi = true}
	check_present2{"dádāti", dadati_ref, args, false, "yes", "mid",
		spres = "<dádā>", 
--		wpast = "<ádad>"
	}

	args = { auto_sandhi = true}
	check_present2{"dádāti", dadati_ref, args, false, "no", "both",
--		wpast = "<ádad>"
	}

	args = { auto_sandhi = true, diaspirate = true}
	check_present2{"dádhāti", dadhati_ref, args, false, "yes", "act",
--		wpast = "<ádadh>"
	}

	args = { auto_sandhi = true, diaspirate = true}
	check_present2{"dádhāti", dadhati_ref, args, false, "yes", "mid",
		spres = "<dádhā>", 
--		wpast = "<ádadh>"
	}

	args = { auto_sandhi = true, diaspirate = true}
	check_present2{"dádhāti", dadhati_ref, args, false, "no", "both",
--		wpres = "<dadh>", wpast = "<ádadh>"
	}

end

function tests:test_class_4()
	local args = { auto_sandhi = true}
	check_present2{"náhyati", nahyati_ref, args, true, "yes", "both",
					detAt = true
	}

	args = { auto_sandhi = true}
	check_present2{"kriyáte", kriyate_ref, args, true, "yes", "mid",
	}
	args = { auto_sandhi = true}
--	local bits = {}
--	bits.presm   = kriyate_ref.presm
--	bits.impfjm  = kriyate_ref.impfjm
--	check_present2{"kriyáte", bits, args, true, "no", "mid",}

end

function tests:test_class_5()
	local args = { auto_sandhi = true}
	check_present2{"Regularised sunóti", regularise(sunoti_ref), args, false, "yes", "both",
		detAt = true
	}

	local args = { auto_sandhi = true}
	check_present2{"Regularised śṛṇóti", regularise(srnoti_ref), args, false, "yes", "both",
		detAt = true
	}
	args = { auto_sandhi = true}
	check_present2{"āpnóti", apnoti_ref, args, false, "yes", "both",
--		wpres = "<āpnu>", -- Unprompted.  Fixes some problems.
--		wpast = "<ā́pnu>", -- Unprompted.  Fixes some problems.
		detAt = true
	}

	tests:header("With irregularities:")
	args = { auto_sandhi = true}
	local trimmed = {
		presa = sunoti_ref.presa,
		presm = sunoti_ref.presm,
		impra = sunoti_ref.impra,
		imprm = sunoti_ref.imprm,
	}
	check_present2{"sunóti", trimmed, args, false, "yes", "both",
		detAt = true
	}

	args = { auto_sandhi = true}
	trimmed = {
		presa = srnoti_ref.presa,
		presm = srnoti_ref.presm,
		impra = srnoti_ref.impra,
		imprm = srnoti_ref.imprm,
	}
	check_present2{"śṛṇóti", trimmed, args, false, "yes", "both",
		detAt = true
	}
end

function tests:test_class_6()
	local args = { auto_sandhi = true}
	check_present2{"viśáti", vishati_ref, args, true, "yes", "both",
	}
--	check_present2{"viśáti", vishati_ref, args, true, "no", "both",
--	}
	args = { auto_sandhi = true}
	check_present2{"visṛjati (not a Whitney table)",
					visrjati_ref, args, true, "no", "act", part_voice ="none",
					detAt = true
	}
end

function tests:test_class_7()
	local args = { auto_sandhi = true}
	check_present2{"yunákti", yunakti_ref, args, false, "yes", "both",
--		spres = "<yunáj>", spast = "<áyunaj>", sinj = "<yunáj>", winj = "<yuñj>",
		detAt = true, degem = true
	}

	local args = { auto_sandhi = true}
	check_present2{"ruṇáddhi", runaddhi_ref, args, false, "yes", "both", part_voice = "none",
--		spres = "<ruṇádh>", 
		detAt = true, degem = true
	}
end

function tests:test_class_8()
	local args = { auto_sandhi = true}
	check_present2{"tanóti", tanoti_ref, args, false, "yes", "both",
--		wpres = "<tanu>", -- Unprompted.  Fixes some problems.
--		wpast = "<átanu>", -- Unprompted.  Fixes some problems.
		detAt = true
	}

	args = { auto_sandhi = true,
	}
	check_present2{"karóti", karoti_ref, args, false, "yes", "both",
--		wpres = "<kuru>", -- Unprompted.  Fixes some problems.
--		wpast = "<ákuru>", -- Unprompted.  Fixes some problems.
		fp_pres = "kur",
		fp_past = "ákur",
		detAt = true
	}
end

function tests:test_class_9()
	local args = { auto_sandhi = true}
	check_present2{"krīṇā́ti", krinati_ref, args, false, "yes", "both",
--					winj = "<krīṇ>"
	}

	args = { auto_sandhi = true}
	check_present2{"gṛhṇā́ti", grhnati_ref, args, false, "yes", "both",
					part_voice = "none"
	}
end

function tests:test_class_10()
	local args = { auto_sandhi = true}
	check_present2{"cintáyati", cintayati_ref, args, true, "yes", "both",
	}

	args = { auto_sandhi = true}
	check_present2{"visarjayati (not a Whitney table)",
					visarjayati_ref, args, true, "no", "act", part_voice ="none"
	}
end

function tests:test_future()
	local args = { auto_sandhi = true}
	check_present2{"dāsyáti", dasyati_ref, args, true, "yes", "both",
	}

	args = { auto_sandhi = true}
	check_present2{"kariṣyáti", karisyati_ref, args, true, "yes", "both",
	}

	args = { auto_sandhi = true}
	check_present2{"dātā́",data_ref, args, true, "yes", "both",
	}
end

function tests:test_aorist()
	local args, data, got

	tests:header("Whitney's root aorists (various middles):")
	args = { auto_sandhi = true}
	check_aorist{"ádāt", adat_ref, args, true, "yes", "act",
	}

-- Jiggery pokery because different tenses have different voices.
	pruned = {}
	for i, v in pairs(abhut_ref) do pruned[i] = abhut_ref[i] end
	pruned.preca = nil
	pruned.precm = nil
	args = { auto_sandhi = true}
	check_aorist{"ábhūt", pruned, args, true, "both", "act",
	}
	pruned = {}
	for i, v in pairs(abhut_ref) do pruned[i] = abhut_ref[i] end
	pruned.aoria = nil
	args = { auto_sandhi = true}
	check_aorist{"ábhūt", pruned, args, false, "both", "both"}

	tests:header("Whitney's a-aorists (various middles):")
	args = { auto_sandhi = true}
	check_aorist{"ásicat", asicat_ref, args, true, "yes", "both",}
--	args = { auto_sandhi = true}
--	check_aorist{"ásicat", asicat_ref, args, false, "no", "both",}

	args = { auto_sandhi = true}
	check_aorist{"ávidat", avidat_ref, args, true, "yes", "both",}

	tests:header("Whitney's reduplicated aorists:")
	args = { auto_sandhi = true}
	check_aorist{"ájījanat", ajijanat_ref, args, true, "yes", "both",}

	tests:header("Whitney's s-aorists:")
	args = { auto_sandhi = true}
	check_aorist{"ánaiṣīt", anaisit_ref, args, false, "yes", "both",}

	args = { auto_sandhi = true}
	tests:header("For ácchaitsīt, middle 3s on -tta defaults to s-aorist")
	args.strong_lemma = to_SLP1("ácchaitsīt")
	args.weak_lemma   = to_SLP1("ácchitta") 
	data = sa_verb_data_table()
	sa_verb_data["aor"](args, data)
	got = {}
	got.aoria = by_person(data.forms, "indic_av")
	got.aorim = by_person(data.forms, "indic_mv")
	compare(acchaitsit_ref, got, "ácchaitsīt aor ", "aoria", "aorim")
	
	tests:header("Whitney's iṣ-aorists:")
	args = { auto_sandhi = true}
	check_aorist{"ápāvīt", apavit_ref, args, false, "yes", "both",}

	args = { auto_sandhi = true}
	check_aorist{"ábodhīt", abodhit_ref, args, true, "yes", "both",}

	tests:header("Whitney's siṣ-aorists:")
	args = { auto_sandhi = true, aor = "iṣ"}
	check_aorist{"áyāsīt", ayasit_ref, args, true, "yes", "act",}

	args = { auto_sandhi = true, aor = "iṣ"}
	check_aorist{"ánaṁsīt", anamsit_ref, args, true, "yes", "act",}

	tests:header("Whitney's sa-aorists:")
	args = { auto_sandhi = true}
	check_aorist{"ádikṣat", adiksat_ref, args, true, "yes", "both",}
end

function tests:test_perfect()
	local args
	args = { auto_sandhi = true}
	check_perfect{"bubódha", bubodha_ref, args, false, "yes", "both",}

	args = { auto_sandhi = true}
	check_perfect{"ninā́ya", ninaya_ref, args, false, "yes", "both",
			wperf = "<ninī>"}

	args = { auto_sandhi = true}
	check_perfect{"babhū́va", babhuva_ref, args, false, "yes", "act",}
--	args = { auto_sandhi = true}
--	check_perfect{"babhū́va", babhuva_ref, args, false, "yes", "act",
--			sperf = "<babhū́>"
--	}

	args = { auto_sandhi = true}
	check_perfect{"dadaú", dadau_ref, args, false, "yes", "act",
--			sperf = "<dadā́>"
	}

	args = { auto_sandhi = true}
	check_perfect{"tatā́na", tatana_ref, args, false, "yes", "act",
--			sperf = "<tatán>"
	}

	args = { auto_sandhi = true}
	check_perfect{"jajā́na", jajana_ref, args, false, "yes", "act",
			part_voice = "both",
--			sperf = "<jaján>"
	}

	args = { auto_sandhi = true}
	check_perfect{"uvā́ca", uvaca_ref, args, false, "yes", "both",
--			sperf = "<uvác>"
	}

	args = { auto_sandhi = true, j_to_z = true}
	check_perfect{"iyā́ja",  iyaja_ref, args, false, "yes", "both",
--			sperf = "<iyáj>"
	}

	args = { auto_sandhi = true}
	check_perfect{"uvóca", uvoca_ref, args, false, "yes", "both",
	}

	args = { auto_sandhi = true}
	check_perfect{"cakā́ra", cakara_ref, args, false, "yes", "both",
--			sperf = "<cakár>", 
--			wperf = "<cakṛ>"
	}

	args = { auto_sandhi = true, 
			 set = true}
	check_perfect{"dadhā́ra", dadhara_ref, args, false, "yes", "both",
--			sperf = "<dadhár>"
	}
	args = { auto_sandhi = true}
	check_perfect{"dadhā́ra", dadhara_ref, args, false, "yes", "both",
--			sperf = "<dadhár>", 
--			wperf = "<dadhṛ>"
	}

	args = { auto_sandhi = true}
	check_perfect{"ā́sa", asa_ref, args, false, "yes", "act",
	}

	args = { auto_sandhi = true}
	check_perfect{"ā́da", ada_ref, args, false, "yes", "act",
	}

	args = { auto_sandhi = true}
	check_perfect{"jagā́ma", jagama_ref, args, false, "yes", "both",
--			sperf = "<jagám>"
	}

	args = { auto_sandhi = true}
	check_perfect{"jaghā́na", jaghana_ref, args, false, "yes", "both",
--			sperf = "<jaghán>"
	}
end

function tests:test_derived()
	local args = { auto_sandhi = true,
--		class = "int"
	}
	check_present2{"vévetti", vevetti_ref, args, false, "yes", "act",
--					spres = "<véved>", 
--					spast = "<áveved>"
	}

	local args = { auto_sandhi = true}
	check_present2{"Regularised ī́psati", regularise(ipsati_ref), args, true, "yes", "act",
					detAt = true,
	}

	local args = { auto_sandhi = true}
	check_present2{"títikṣate", titiksate_ref, args, true, "yes", "mid",}
end

return tests
"https://si.wiktionary.org/w/index.php?title=Module:sa-verb/testcases&oldid=199790" වෙතින් සම්ප්‍රවේශනය කෙරිණි