title: Do you use constants from the implementation in your test cases?
body: <p>Let's say you have some code like this (in a made-up langague, since it does not matter for this question):</p>
  
  <pre><code>constant float PI = 3.14;
  float getPi() 
  { 
     return PI;
  }
  </code></pre>
  
  <p>Would you test it like this:</p>
  
  <pre><code>testPiIs3point14()
  {
     // Test using literal in test case
     AssertEquals( getPi(), 3.14 );
  }
  </code></pre>
  
  <p>Or like this:</p>
  
  <pre><code>testPiIs3Point14()
  {
     // Test using constant from implementation in test case
     AssertEquals( getPi(), PI );
  }
  </code></pre>
  
  <p>In other words, do you use constants from your system under test in your test cases?  Or is this considered an implementation detail?</p>