Skip to main content

Automated Intelligence Tests

Minimal Python package providing automated tests of associative and creative ability, for both human and artificial intelligence. Each test exposes the same two calls: instruct() builds the stimuli and prompt, evaluate() scores the responses.

Test Name instruct evaluate
cat Convergent Association Task yes proximity score (GloVe)
dat Divergent Association Task yes Olson score (GloVe)
aut Alternative Uses Task yes not implemented yet
wrt Creative Writing Task yes not implemented yet

Install

pip install git+https://github.com/dtzx00/Automated-Intelligence-Tests.git

Once published to PyPI: pip install automated-intelligence-tests.

Dependencies (glove-word-embeddings, numpy) are declared in pyproject.toml and installed automatically — no separate requirements step. Python 3.9+.

For local development:

git clone https://github.com/dtzx00/Automated-Intelligence-Tests.git
cd Automated-Intelligence-Tests
pip install -e .

Quickstart

import automated_intelligence_tests as ait

ait.list_available_tests()        # {"CAT": "Convergent Association Task", ...}

# 1. Build the stimuli and prompt
task = ait.instruct("cat", n_items=10, seed=42)
print(task["instructions"])       # give this to a person or a model
print(task["response_format"])    # the shape the answer should come back in

# 2. Fill in "word_user" for each item, then score
responses = {
    "wordset_1": {"word_1": "television", "word_2": "lake", "word_user": "reflection"},
    # ...
}
result = ait.evaluate("cat", responses)
print(result["score"], result["n_valid"])

instruct() returns a dict with test, instructions, response_format, and the test's own stimuli. evaluate() returns a dict with score (None if nothing scorable), n_valid, and per-test detail.

API

ait.list_available_tests()               # -> {short_name: long_name} for every test
ait.instruct(test, **kwargs)             # test in {"cat", "dat", "aut", "wrt"}
ait.call_test_instruction("DAT", **kwargs)   # same as instruct(), case-insensitive name
ait.evaluate(test, responses, **kwargs)

Sub-packages can also be used directly: from automated_intelligence_tests.cat import instruct, evaluate.

Test instruct arguments evaluate arguments
cat single_item=False, n_items=10, seed=None responses, model_key="glove-840b-300d"
dat n_words=10 responses, model_key=..., minimum=7
aut object=None, seed=None raises NotImplementedError
wrt cues=None, seed=None raises NotImplementedError

CAT samples word pairs from a fixed list of 8,069 English word pairs at cosine distance 0.85–0.95, the instrument's difficulty control. No word repeats within an assessment. single_item=True returns one pair with the pair embedded in the instruction text, for one-call-per-item delivery.

DAT takes either a list of words or a {"word_1": ..., ...} dict.

AUT samples a common object (brick, paperclip, …) unless one is given.

WRT samples three cue words unless they are given.

Scoring

  • CAT — mean cosine similarity between the participant's word and each of the two cue words, averaged over items. Higher = stronger convergent association. Invalid or unembeddable words are marked valid: False and excluded rather than penalised.
  • DAT — Olson's procedure exactly: mean pairwise cosine distance of the first 7 unique valid words, ×100. Returns score: None if fewer than 7 valid words are given.

Both use glove-word-embeddings, default model glove-840b-300d. The first evaluate() call downloads the embedding file and caches it under ~/.cache/glove-word-embeddings; later calls are offline. Other keys (glove-6b-300d, wiki-news-300d-1m, the flair-olson-* set, …) can be passed via model_key.

Layout

automated_intelligence_tests/
    __init__.py          dispatcher: list_available_tests() / instruct() / evaluate()
    cat/  dat/           per test: instruct.py, evaluate.py, metadata.json,
    aut/  wrt/                     readme.md, example.ipynb
    cat/data/cat_word_pairs_en.txt CAT word-pair list

Each test folder carries a metadata.json holding its short name, long name and description. That file is what list_available_tests() reads, so dropping in a new test folder with one makes it discoverable automatically. Each also has its own readme.md and a runnable example.ipynb.

License

MIT

Metadata

Release files for automated-intelligence-tests 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for automated-intelligence-tests 0.1.2
File Size Uploaded
automated_intelligence_tests-0.1.2.tar.gz 87.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for automated-intelligence-tests 0.1.2
File Interpreter ABI Platform
automated_intelligence_tests-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 176.6 kB

Release files / automated_intelligence_tests-0.1.2.tar.gz

Download URL automated_intelligence_tests-0.1.2.tar.gz
Size 87.2 kB
Tags Source
SHA-256 checksum
How to use checksums
24fdc1f9a614297ab4cf85f82e63711343313fb635bf80bc427213a58e944f3e
BLAKE2b-256 checksum
How to use checksums
3215fa881a4cdec350cdcd6a246374a8b52893cf0875b7ff987961e0692b8def
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.16

Release files / automated_intelligence_tests-0.1.2-py3-none-any.whl

Download URL automated_intelligence_tests-0.1.2-py3-none-any.whl
Size 89.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
468f869c532feea3886f08a5e28a09e7bcb9b0a459b1e009235a1c3eef9a98b4
BLAKE2b-256 checksum
How to use checksums
1719a83d8b39d14d024a62b821dde2e6dbfd3fdddc0b71d18a6d4ad36c433a0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.16

Release history Release notifications | RSS feed

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.3

2 release files

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page