Skip to content
Testaroo
csv1.2 KB

Juniper Corner Cafe: Till import with a duplicate item code

Till import with a duplicate item code for Juniper Corner Cafe. Intentionally invalid. 22 rows where pos-import.csv has 21. item_code MENU-02 appears on line 3 at 5.50 CAD and again on line 23 at 6.50 CAD, which is the proposed price in the shared menu_price_changes table. It is the only repeated code in the file, so an importer that keeps the last row it reads silently ships the later price.

Preview, first 24 linescsv
item_code,item_name,category,price,tax_code,modifier_group
MENU-01,Flat white,Espresso bar,4.75,GST5,MG-MENU-01
MENU-02,Oat latte,Espresso bar,5.50,GST5,MG-MENU-02
MENU-03,Avocado toast,All day kitchen,12.00,GST5,MG-MENU-03
MENU-04,Breakfast sandwich,All day kitchen,10.50,GST5,MG-MENU-04
MOD-01,Extra portion,Modifier,2.50,GST5,MG-MENU-01
MOD-02,Takeaway packaging,Modifier,0.50,GST5,MG-MENU-01
MOD-03,Extra portion,Modifier,2.50,GST5,MG-MENU-02
MOD-04,Takeaway packaging,Modifier,0.50,GST5,MG-MENU-02
MOD-05,Extra portion,Modifier,2.50,GST5,MG-MENU-03
MOD-06,Takeaway packaging,Modifier,0.50,GST5,MG-MENU-03
MOD-07,Extra portion,Modifier,2.50,GST5,MG-MENU-04
MOD-08,Takeaway packaging,Modifier,0.50,GST5,MG-MENU-04
DRK-01G,"Cold brew, 150 ml",By the glass,3.75,GST5,
DRK-02G,"Pressed apple juice, 200 ml",By the glass,2.50,GST5,
DRK-03G,"Sparkling water, 150 ml",By the glass,1.50,GST5,
DRK-04G,"Matcha glacé, 400 ml",By the glass,5.75,GST5,
DRK-01B,"Cold brew, 750 ml",By the bottle,18.00,GST5,
DRK-02B,"Pressed apple juice, 1000 ml",By the bottle,12.00,GST5,
DRK-03B,"Sparkling water, 750 ml",By the bottle,7.00,GST5,
DRK-05B,"Kombucha, 330 ml",By the bottle,6.00,GST5,
GIFT-25,Gift card 25,Stored value,25.00,EXEMPT,
MENU-02,Oat latte,Espresso bar,6.50,GST5,MG-MENU-02

Specifications

Kit
restaurant-cafe
Industry
food-service
Schema Version
1
Synthetic
true
As Of
2026-09-08
Currency
CAD
Menu Items
4
Rows
22
Columns
6
Intentionally Invalid
true
Defect
duplicate-item-code
Duplicate Item Code
MENU-02
First Line
3
Second Line
23
Delimiter
,
Encoding
UTF-8
Line Endings
LF

Testing contract

Expected to fail
Scenario
Use till import with a duplicate item code in the Juniper Corner Cafe menu, allergen and till import workflow.
Expected result
Intentionally invalid. 22 rows where pos-import.csv has 21. item_code MENU-02 appears on line 3 at 5.50 CAD and again on line 23 at 6.50 CAD, which is the proposed price in the shared menu_price_changes table. It is the only repeated code in the file, so an importer that keeps the last row it reads silently ships the later price.

What is a .csv file?

CSV (Comma-Separated Values) is a plain-text tabular format where rows are lines and fields are separated by commas, with quoting rules for values that contain delimiters, quotes, or newlines. It has no formal type system and depends on encoding and dialect conventions. It is the most portable format for tabular data exchange.

How to use this file

Use an example CSV to test parsers against quoting and embedded-delimiter edge cases, header handling, encoding detection, and import pipelines into databases or spreadsheets.

How to use this file for testing

“Juniper Corner Cafe: Till import with a duplicate item code” is a deterministic Testaroo fixture for Data import, Error handling, CSV parsing. Realistic faker-generated datasets with documented schemas for testing import and ETL flows.

Documented properties for this file: 22 rows · 6 columns · UTF-8 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such, expect parsers to fail loudly rather than silently accept them.

Data fixtures document their exact quirks (delimiters, encodings, null handling, schema, and row counts) in the spec table. Point your parser or importer at the file and assert it handles the documented edge cases; clean and deliberately-messy siblings make before/after diffs straightforward.

Code examples

import pandas as pd

df = pd.read_csv("pos-import-duplicate-code.csv")
print(df.head())
print(df.dtypes)

Generated by generation/restaurant_menus.py. Free for any use, no attribution required, license.