 //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));

  // and also test that the fully-open state is reached in a bounded number of ticks ie bounded time.
  static const int maxFullTravelMins = 25;
//  DEBUG_SERIAL_PRINTLN_FLASHSTRING("open...");
  ModelledRadValveInputState is0(0);
  is0.targetTempC = OTV0P2BASE::randRNG8NextBoolean() ? FROST : WARM;
  ModelledRadValveState rs0;
  const uint8_t valvePCOpenInitial0 = OTV0P2BASE::randRNG8() % 100;
  volatile uint8_t valvePCOpen = valvePCOpenInitial0;
  for(int i = maxFullTravelMins; --i >= 0; ) // Must fully open in reasonable time.

  }


// 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)
