SMILES Library: Ten Structures Including Aromatics and Salts (.smi)
Ten tab-delimited SMILES covering the notation features that trip parsers: lowercase aromatic atoms, ring-closure digits, branch parentheses, explicit charges in brackets and a dot-disconnected salt. Every structure is small enough to verify by hand.
C methane
O water
CCO ethanol
c1ccccc1 benzene
CC(=O)O acetic acid
C1CCCCC1 cyclohexane
N ammonia
C(=O)=O carbon dioxide
CC(C)O propan-2-ol
[Na+].[Cl-] sodium chloride
Specifications
- Records
- 10
- Delimiter
- tab
- Aromatic Notation
- lowercase c1ccccc1
- Ring Closures
- true
- Charged Species
- [Na+].[Cl-]
- Disconnected Components
- 1
- Branches
- true
Testing contract
Expected to pass- Scenario
- Parse each SMILES record and report its heavy-atom count and the number of disconnected components.
- Expected result
- All ten parse, benzene resolves to six aromatic carbons in a ring, and [Na+].[Cl-] reports two disconnected components rather than one two-atom molecule.
What is a .smi file?
A .smi file holds SMILES strings, a line notation that encodes a molecular graph as text. Atoms are written as element symbols, aromatic atoms in lower case, bonds as `-`, `=`, `#`, branches in parentheses, and rings as matching digit labels, with stereochemistry expressed by `/`, `\\`, and `@` markers. Files typically carry one SMILES per line with an optional whitespace-separated identifier, and a canonical SMILES is a unique string for a given structure.
How to use this file
Use an example .smi file to test SMILES parsers, canonicalisers, and structure-search tooling, verifying ring-closure and aromaticity handling, stereochemistry round-tripping, and that an invalid string is rejected rather than partially parsed.
How to use this file for testing
“SMILES Library: Ten Structures Including Aromatics and Salts (.smi)” is a deterministic Testaroo fixture for Scientific data, Editor testing, Data import. Citation catalogs (BibTeX, RIS), chemistry structures (MDL Molfile, PDB), and gridded binary data (NetCDF, FITS), for testing reference managers, molecule viewers, and scientific-data loaders.
Documented properties for this file: 10 records. 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.
Scientific fixtures are small, valid, and fully synthetic, no real organism, patient, sample, or observation. Point your parser or loader at the file and check it reads the documented records, variables, or headers; binary formats ship a readable twin or metadata listing for comparison.
Generated by generation/scientific.py. Free for any use, no attribution required, license.
Related files
- tsvGravimetric Mass: TSV With Bracketed Units and Spaces in Headers (.tsv)Ten weighings as tab-separated values with headers that contain spaces, brackets and parentheses, 'u(mass) [g]', the way balance software actually writes them. Column names like these break naive slug-based header handling long before the numbers become a problem.

- csvUnits on a Second Header Row: Not Data (.csv)The same instrument export with units on a second header row instead of inside the column names, which is how a great many laboratory instruments write CSV. An importer that treats row two as data types every measurement column as text and then quietly refuses to plot anything.

- cifCIF Parser Edge Cases: Quotes, Text Fields and Wrapped Loops (.cif)A CIF built entirely out of the constructs that break naive parsers: quoted values containing apostrophes and hashes, a semicolon-delimited multi-line text field, the distinct '?' and '.' markers, a standard uncertainty written as 1.2345(7), and a loop whose rows wrap across lines. Every one of them is legal CIF.

- xyzEthanol Rotation: Multi-Frame XYZ Trajectory (.xyz)Five concatenated XYZ frames of the same ethanol molecule rotated rigidly about z in 15-degree steps, which keeps every interatomic distance constant. Frames are separated only by the next atom-count line, so a reader that expects a blank-line delimiter stops after frame one.

- molEthanol: MDL Molfile V2000 (.mol)Ethanol as a V2000 molfile with fixed-column 3D coordinates, a nine-atom counts line and an eight-bond block. The column widths are part of the format rather than a convention, so it is a genuine test of fixed-width parsing rather than of whitespace splitting.

- sdfEthanol: SDfile With Data Fields (.sdf)An SDfile wrapping the identical ethanol molfile plus five tagged data fields and the mandatory $$$$ terminator. The property block syntax (a header line, a value and a blank line) is where SDfile parsers usually diverge from molfile parsers.
