NaN Payloads and Signalling NaNs (.npy)
Six distinct NaN bit patterns — quiet, signalling, signed and payload-carrying — stored as float64. They are all NaN and none equals another, so any code that deduplicates, sorts or hashes them by value is doing something undefined and this array proves it.
| Index | Bits | Kind |
|---|---|---|
| 0 | 0x7ff8000000000000 | canonical quiet NaN |
| 1 | 0x7ff8000000beef01 | quiet NaN with a payload |
| 2 | 0xfff8000000000000 | negative quiet NaN |
| 3 | 0x7ff0000000000001 | signalling NaN |
| 4 | 0xfff0000000000001 | negative signalling NaN |
| 5 | 0x7ff7ffffffffffff | signalling NaN, maximal payload |
Specifications
- Dtype
- float64
- Elements
- 6
- Quiet Na Ns
- 3
- Signalling Na Ns
- 3
- All Compare Unequal To Themselves
- true
- Note
- every element is NaN, and no two are the same 64 bits
Testing contract
Expected to pass- Scenario
- Load the array, confirm every element is NaN, and compare the underlying 64-bit patterns for uniqueness.
- Expected result
- All six elements report as NaN and none compares equal to itself, yet the six bit patterns are pairwise distinct — a value-based deduplication collapses them to one.
What is a .npy file?
NPY is NumPy's native binary format for a single array. A short header records the dtype, shape, and memory order, followed by the raw array bytes, so an array round-trips exactly without any text parsing. It is the standard way to persist embeddings, tensors, and numeric matrices in the Python data stack.
How to use this file
Use an example .npy to test array loaders (numpy.load), tensor and embedding pipelines, and converters between .npy, JSON, and columnar formats like Parquet.
How to use this file for testing
“NaN Payloads and Signalling NaNs (.npy)” is a deterministic Novus Examples fixture for Scientific data, Error handling. 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: NPY · 176 bytes. 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.
Related files
- npyfloat64 Subnormal Ladder — Gradual Underflow (.npy)A ten-step ladder from the smallest representable double up across the subnormal boundary into normal range, showing precision degrading to a single significant bit. Any pipeline running with flush-to-zero enabled turns the first eight entries into plain zeros without reporting anything.

- npyfloat64 to float32 Precision Loss — Paired Array (.npy)The precision-loss cases as a two-column float64 array holding the original value beside its float32 round trip, both kept at double width so the difference itself is representable. Subtracting the columns gives the error directly without a second narrowing step.

- npyIEEE-754 float32 Boundary Values (.npy)The single-precision counterpart of the float64 boundary array, including the 2^24 integer limit where consecutive whole numbers stop being representable. Widening float32 to float64 and back must preserve every one of these bit patterns.

- jsonIEEE-754 float64 Boundary Values — JSON With No NaN Literal (.json)The same boundary values as strict RFC 8259 JSON, where non-finite numbers are null in the numeric field and text in the string field because the standard has no NaN or Infinity literal. It is the fixture for the encoder that emits bare NaN and produces JSON nothing else will parse.

- npyIEEE-754 float64 Boundary Values (.npy)The sixteen structurally distinct float64 values a numeric pipeline has to survive, in binary form: both zeros, both subnormal limits, the smallest normal, epsilon, the largest finite value, both infinities, a quiet NaN and the 2^53 integer boundary. Round-tripping this array is the minimum bar for any float64 codec.

- jsonIntegers Beyond 2^53 in JSON — Silent Identifier Corruption (.json)Six large integers written both as JSON numbers and as strings, including the 2^53 boundary where consecutive integers stop being distinguishable in a double. A parser backed by doubles turns 9007199254740993 into 9007199254740992 and reports no error at all.

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