Table of Contents

ToolsWorldAI: Claude vs Gemini Comparison Test Pack

Prepared October 14, 2026 · Original practice tasks and reference answers

Use the same inputs in both assistants to compare tasks that matter to you. All products, records, and policy documents below are fictional. The checked answers are ToolsWorldAI reference material. No Claude or Gemini outputs, speed measurements, or performance scores are supplied.

How to run a fair comparison

  1. Choose two or more relevant tasks. Start a fresh chat for each task in each assistant.
  2. Copy only the task’s input and prompt. Keep the answer key out of the model’s initial input.
  3. Match available tools where possible. For these self-contained tasks, web search is unnecessary. Record any difference in configuration instead of hiding it.
  4. Record the date, product, account type, plan, visible model, thinking settings, and enabled tools. Mark an unavailable or hidden model name as unknown.
  5. Save the complete prompt and response, including errors. Measure from submission to a completed response, and record time spent reviewing or correcting it separately.
  6. Run follow-ups consistently. Label a corrected second attempt separately from the first answer.
  7. For a surprising result, repeat the task in a fresh conversation. If you use several runs, report each result and use the median for timing. Do not present one observation as a universal speed claim.
  8. For Claude Code and Gemini CLI, use separate copies of identical starting files. Keep the patch and actual test output. Run the code yourself when command execution is unavailable and label who ran it.

These are small diagnostic exercises, not standardized benchmarks. They cannot establish performance on every writing style, subject, or codebase.

Task 1: edit without changing facts

Input

BrightDesk’s Starter plan costs $12 a month and allows three team members. Our annual plan unlocks 20% savings. Reports can be exported as CSV files. This revolutionary tool guarantees that every business will double revenue in just 30 days. The trial lasts seven days, and no credit card is needed. Take your workflow to the next level with seamless insights.

Exact prompt

Edit the supplied BrightDesk paragraph for a US small-business reader.

Treat these as the supplied product facts: $12 per month, three team members, 20% savings with annual billing, CSV report exports, a seven-day trial, and no credit card required for the trial. BrightDesk is a fictional product for this exercise.

Use plain language. Remove the unsupported revenue guarantee and vague promotional wording. Do not invent features, change numbers, add personal product experience, or imply that you independently verified this fictional product.

Output:
1. A revised paragraph of no more than 55 words.
2. Exactly two short bullets explaining your edits.

Paragraph:
BrightDesk's Starter plan costs $12 a month and allows three team members. Our annual plan unlocks 20% savings. Reports can be exported as CSV files. This revolutionary tool guarantees that every business will double revenue in just 30 days. The trial lasts seven days, and no credit card is needed. Take your workflow to the next level with seamless insights.

Identical follow-up prompt

Shorten only the revised paragraph to no more than 30 words. Preserve all six supplied product facts. Output only the paragraph.

Task 2: answer from a document and recognize missing information

Input: fictional renewal memo

Sample Renewal Memo — Practice Document

Section 1 — Renewal
The annual subscription renews on November 9, 2026. The renewal charge is $120.

Section 2 — Cancellation deadline
The cancellation request must be received by November 3, 2026, at 5:00 p.m. US Eastern Time.

Section 3 — Accepted method
Submit the request through the account's cancellation portal. An email alone does not count as a cancellation request, even if it is sent before the deadline.

Section 4 — Enterprise exception
Customers with an individually negotiated enterprise contract follow that contract's cancellation terms instead of Sections 2 and 3 of this memo.

Section 5 — Confirmation
After submitting through the portal, retain the confirmation number. The portal shows the request's receipt time.

Exact prompt

Answer using only the supplied Sample Renewal Memo. Do not use external information or invent policy details. Give a section number for every answer supported by the memo. Say "Not stated in this memo" for missing information.

Questions:
1. What is the renewal date and charge?
2. What is the cancellation deadline, including time and time zone?
3. Would an email sent on November 3 at 4:30 p.m. US Eastern Time, with no portal submission, satisfy the cancellation requirement?
4. Which customers follow different cancellation terms?
5. What is the refund policy after renewal?
6. What evidence of a portal submission should a customer retain?

[Paste the complete practice memo immediately below this prompt.]

Task 3: analyze data under explicit rules

Input: fictional sales CSV

order_id,state,category,status,amount_usd
T001,CA,Writing,paid,40.00
T002,TX,Coding,paid,25.00
T003,CA,Writing,refunded,40.00
T004,NY,Research,paid,30.00
T002,TX,Coding,paid,25.00
T005,TX,Coding,pending,15.00
T006,NY,Research,paid,20.00
T007,CA,Writing,paid,10.00
T008,WA,Research,paid,

Exact prompt

Analyze this practice CSV under the following rules:

- Remove exact duplicate rows before calculating anything. Report how many duplicates you removed.
- Eligible revenue includes only unique orders whose status is "paid" and whose amount_usd is present.
- Exclude pending and refunded orders from this exercise's revenue calculation.
- Flag missing amounts and exclude them. Do not silently replace a missing amount with zero.
- These rules are specific to this exercise; do not substitute a different accounting definition.

Return:
1. Raw row count, unique row count, and removed duplicate count.
2. Eligible order count and total eligible revenue in USD.
3. Eligible revenue by category.
4. An exclusion log with order IDs and reasons.
5. Python or spreadsheet calculation steps sufficient to reproduce your result.

[Paste the complete CSV immediately below this prompt, or attach the exact CSV.]

Task 4: repair a small Python bug

Starting code: checkout.py

from decimal import Decimal, ROUND_HALF_UP


def checkout_total(subtotal, discount_pct, shipping):
    subtotal = Decimal(str(subtotal))
    discount_pct = Decimal(str(discount_pct))
    shipping = Decimal(str(shipping))
    return (
        (subtotal + shipping) * (Decimal("1") - discount_pct / Decimal("100"))
    ).quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)

Exact prompt

Fix checkout_total in the supplied Python code.

Requirements:
- Keep the public function name and its three parameters.
- Apply discount_pct to subtotal only. Shipping is never discounted.
- Accept valid finite numeric inputs, convert them through Decimal(str(value)), and return a Decimal rounded to cents using ROUND_HALF_UP.
- Reject a negative subtotal or shipping charge with ValueError.
- Reject a discount below 0 or above 100 with ValueError.
- Use only the Python standard library. Limit your implementation to this finite-input contract; do not add unrelated features.

Return the corrected code, a brief explanation of the bug, and tests for all these valid cases:
(50, 10, 5) -> Decimal("50.00")
(50, 0, 5) -> Decimal("55.00")
(50, 100, 5) -> Decimal("5.00")
(0, 0, 0) -> Decimal("0.00")
(19.99, 15, 4.95) -> Decimal("21.94")

Also test these invalid cases, each of which must raise ValueError:
(-1, 10, 5)
(50, 10, -1)
(50, -1, 5)
(50, 101, 5)

If your tool can run Python, run the tests and include the actual output. If it cannot, state that the tests were not run. Do not present expected output as executed output.

[Paste the complete starting code immediately below this prompt.]

Answer key: keep separate from the model’s initial input

Writing reference

One acceptable paragraph is:

BrightDesk’s Starter plan costs $12 a month for up to three team members. Annual billing saves 20%. You can export reports as CSV files and try the service for seven days without a credit card.

This is an editorial reference, not a Claude or Gemini response. Equivalent wording is acceptable. Check all six supplied facts, the 55-word maximum, removal of the revenue guarantee, exactly two explanatory bullets, and absence of invented experience.

One acceptable follow-up is:

BrightDesk costs $12/month for three users; annual billing saves 20%. Export CSV reports. Try it for seven days without a credit card.

It preserves all six facts within 30 words. Do not require this exact wording to award full credit.

Document reference

Question Checked answer Location
Renewal November 9, 2026; $120 Section 1
Deadline November 3, 2026, at 5:00 p.m. US Eastern Time Section 2
Email without portal submission No; email alone does not count even before the deadline Section 3
Exception Customers with individually negotiated enterprise contracts follow those contracts Section 4
Refund policy Not stated in this memo No supplied section states it
Submission evidence Retain the confirmation number; receipt time appears in the portal Section 5

Inventing a refund entitlement or treating an email alone as sufficient is a correctness failure.

Data reference

Measure Checked answer
Raw rows 9
Unique rows after removing the exact duplicate 8
Removed duplicates 1 repeated T002 row
Eligible paid orders with known amounts 5
Eligible revenue $125.00
Writing revenue $50.00
Coding revenue $25.00
Research revenue $50.00
Exclusions after deduplication T003 refunded; T005 pending; T008 missing amount
Sum of all present amounts before cleaning $205.00

The $80 overcount is $25 from the duplicate, $40 from the refunded order, and $15 from the pending order. The missing amount cannot be treated as a known zero.

Coding reference

One implementation satisfying the finite-input contract is:

from decimal import Decimal, ROUND_HALF_UP


def checkout_total(subtotal, discount_pct, shipping):
    subtotal = Decimal(str(subtotal))
    discount_pct = Decimal(str(discount_pct))
    shipping = Decimal(str(shipping))
    if subtotal < 0 or shipping < 0:
        raise ValueError("Subtotal and shipping must be nonnegative")
    if not Decimal("0") <= discount_pct <= Decimal("100"):
        raise ValueError("Discount must be between 0 and 100")
    return (
        subtotal * (Decimal("1") - discount_pct / Decimal("100")) + shipping
    ).quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)

Use this checker with the assistant’s code saved as checkout.py. It deliberately covers the stated finite-input contract rather than unrequested cases.

# Save as test_checkout.py beside checkout.py.
import unittest
from decimal import Decimal
from checkout import checkout_total


class CheckoutContractTests(unittest.TestCase):
    def test_valid_cases(self):
        cases = [
            ((50, 10, 5), "50.00"),
            ((50, 0, 5), "55.00"),
            ((50, 100, 5), "5.00"),
            ((0, 0, 0), "0.00"),
            ((19.99, 15, 4.95), "21.94"),
        ]
        for args, expected in cases:
            with self.subTest(args=args):
                result = checkout_total(*args)
                self.assertIsInstance(result, Decimal)
                self.assertEqual(result, Decimal(expected))

    def test_invalid_cases(self):
        cases = [(-1, 10, 5), (50, 10, -1), (50, -1, 5), (50, 101, 5)]
        for args in cases:
            with self.subTest(args=args):
                with self.assertRaises(ValueError):
                    checkout_total(*args)


if __name__ == "__main__":
    unittest.main()

Run it with python3 -m unittest -v test_checkout.py or the equivalent Python command on your computer. The tests check five valid cases and four invalid cases inside two test methods. The original buggy function fails the discount/shipping contract and invalid-input requirements.

The reference implementation and dataset answers have been locally checked. That verification is of this worksheet’s own reference material, not a model comparison.

Scoring rubric

For each task, assign 0–2 points to each criterion. Keep timing outside the score.

Criterion 0 1 2
Correctness Important error or invented fact Minor error All checked facts or cases correct
Instructions Main constraint ignored Small deviation All requested constraints followed
Completeness Key deliverable missing Some requested work missing Every requested deliverable present
Traceability No inspectable support Partial locations or calculation steps Verifiable sections, reproducible calculations, or actual test evidence
Usability Major rework Some cleanup Ready after normal review

Maximum: 10 points per task. Also record a critical-error flag. A wrong price, invented policy, wrong eligible revenue, or failed core coding contract is a critical error, even if readability is good. Unexecuted tests should be labeled honestly and cannot receive the same execution-evidence credit as an actual run.

Blank results log

Field Claude run Gemini run
Date and time zone
Product surface: chat, Claude Code, or Gemini CLI
Plan and personal/work/school account
Visible model or unknown
Thinking settings and tools enabled
Task and run number
Exact input saved at
Full response saved at
Response completion time, seconds
Review and cleanup time, minutes
Correctness, 0–2
Instructions, 0–2
Completeness, 0–2
Traceability, 0–2
Usability, 0–2
Total, 0–10
Critical error and exact evidence
Who actually ran code and checked answers
Repeated run or follow-up, separately labeled

Evidence to keep for a published case study

Keep the complete prompt, input, model response, and any follow-up. Capture the actual conversation with the model or response details when available. For coding, retain the original files, generated patch, test command, and terminal output. Record dates and settings alongside screenshots.

Use captions that describe what is visible and any crop or layout arrangement. Keep original screenshots. Remove private account details without altering the output or hiding a relevant error. Label an unavailable feature as unavailable; it is not an answer-quality failure.

Write conclusions at the scope of the evidence: “In these tasks, on these plans, on this date…” A failed small checkout repair does not prove that every coding task will fail. A strong edited paragraph does not establish that every draft will need less cleanup.