 //DEBUG_SERIAL_PRINTLN();
           AssertIsTrue((offset < 0) ? (valvePCOpen > 0) : (0 == valvePCOpen));
           // Where adjusted reference temperature is (well) above target, valve should be driven off.
-          ModelledRadValveState rs3b;
+          OTRadValve::ModelledRadValveState rs3b;
           valvePCOpen = 100;
           rs3b.tick(valvePCOpen, is3);
           AssertIsTrue((offset < 0) ? (100 == valvePCOpen) : (valvePCOpen < 100));

  //   * Check that linger was long enough (if linger threshold is higher enough to allow it).
  // Also check for some correct initialisation and 'velocity'/smoothing behaviour.
//  DEBUG_SERIAL_PRINTLN_FLASHSTRING("close...");
  ModelledRadValveInputState is1(100<<4);
  is1.targetTempC = OTV0P2BASE::randRNG8NextBoolean() ? FROST : WARM;
  ModelledRadValveState rs1;
  AssertIsTrue(!rs1.initialised); // Initialisation not yet complete.
  const uint8_t valvePCOpenInitial1 = 1 + (OTV0P2BASE::randRNG8() % 100);
  valvePCOpen = valvePCOpenInitial1;

  }


// Test for general sanity of computation of desired valve position.
// In particular test the logic in ModelledRadValveState for extreme positions.
static void testMRVSExtremes()
  {
  Serial.println("MRVSExtremes");
  // Test that if the real temperature is zero
  // and the initial valve position is anything less than 100%
  // that after one tick (with mainly defaults)
