File size: 740 Bytes
5fae594
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function listMatcher(expectedList){
          
   return eq.call( this, this.actual, expectedList );
 
   function eq( actual, expected ) {
   
      if( !actual && !expected ) {
         return true;
      }
      
      if( !actual || !expected ) {
         this.message = function(){
            return 'one false but not both ' +
                     actual + ' ' + expected
         };               
         return false;
      }
      
      if( head(actual) != head(expected) ) {
         this.message = function(){
            return 'different items in list' +
                     head(actual) + head(expected)
         }; 
         return false;
      }
      
      return eq.call( this, tail(actual), tail(expected) );
   }
}