Skip to main content
Version: 3.0.0

STD: Notts Quant Multiply Rule (NOTTSQM)

Version: v1.0.0 Status: Draft SRS Source: docusaurus/docs/srs/rules/rule-notts-quant-multiply.md Rule Name: NOTES_QUANT_MULTIPLY Domain: RULES-NOTTSQM


Overview

This document specifies tests for the Notts Quant Multiply rule using decision tables and test vectors. The rule populates a well's quantity_multiplier property from its concentration_factor value during run analysis, defaulting to 1 when the concentration factor is null.

Rule Characteristics:

  • Pure business logic (no UI)
  • Simple conditional assignment (null check)
  • Single input/output relationship
  • Nottingham-specific custom rule

Test Method: TM-API (per Test Plan S3.3 - Rules use automated API tests)

Verification Approach: Rule verification is performed using data-driven test vectors. Each row in a decision table represents a complete verification scenario with defined inputs and expected outputs. This format enables exhaustive condition coverage while remaining concise and auditable.


Coverage Summary

REQ IDTitleConditionsTest VectorsCoverageAutomation StatusGaps
REQ-RULES-NOTTSQM-001Set Quantity Multiplier from Concentration Factor28100%AutomatedNone

Totals: 1 REQ, 2 Conditions, 8 Test Vectors, 100% Coverage


REQ-RULES-NOTTSQM-001: Set Quantity Multiplier from Concentration Factor

Input Variables

VariableTypeValid ValuesDescription
well.concentration_factorfloat/nullnull, 0, positive, negative, decimalConcentration factor value to be used as multiplier source

Output Variables

VariableTypeDescription
well.quantity_multiplierfloatMultiplier applied to downstream quantity calculations

Decision Table: Concentration Factor to Quantity Multiplier Assignment

TVconcentration_factorexpected_quantity_multiplierCovers
TV-001-001null1AC: Null defaults to 1
TV-001-002250250AC: Numeric value copied directly
TV-001-00311AC: Value of 1 preserved (same as default)
TV-001-00400AC: Zero handled as valid numeric
TV-001-0050.50.5AC: Decimal value copied directly
TV-001-00610000001000000AC: Large value copied directly
TV-001-0070.0010.001AC: Small decimal value copied directly
TV-001-008-1-1AC: Negative value copied directly (no transformation)

Decision Table: Property Access Verification

TVInput PropertyOutput PropertyActionCovers
TV-001-009well.concentration_factorwell.quantity_multiplierRead source, write targetAC: Correct property access

Decision Table: Execution Context

TVExecution TriggerScopeCovers
TV-001-010Run analysis workflowWell-levelAC: Rule operates at well-level during analysis

Traceability to Existing Tests

RequirementJira TestsStatus
REQ-RULES-NOTTSQM-001BT-3952 (Manual), BT-5359 (Automated)Existing

Gap Analysis

Identified Gaps

GapRequirementDescriptionPriorityOwner
--No gaps identified--

Coverage Notes

All acceptance criteria from REQ-RULES-NOTTSQM-001 are covered by the test vectors:

  1. Value Assignment (AC 1-3): TV-001-001 through TV-001-008 cover null handling, direct copy, and no-transformation requirements
  2. Property Handling (AC 4-6): TV-001-009 verifies correct property read/write
  3. Scope and Execution (AC 7-8): TV-001-010 verifies well-level scope during run analysis

The existing Jira tests BT-3952 (manual) and BT-5359 (automated Behat) provide verification coverage. Test vectors TV-001-001, TV-001-003, TV-001-009, and TV-001-010 are tagged to BT-5359. Test vectors TV-001-001 and TV-001-002 directly correspond to the Gherkin test scenarios documented in the SRS.