Changeset 215

Show
Ignore:
Timestamp:
02/03/07 14:07:31 (1 year ago)
Author:
ug
Message:

Fixed small bug in computing signatures, and allow wildcards in sigsearch.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 06/libkombilo/search.cpp

    r213 r215  
    925925    for(int i=0; i<6; i++) { 
    926926      if (signature[2*i] == 't') next[2*i] = 't'; 
     927      else if (signature[2*i] == '?') next[2*i] = '?'; 
    927928      else next[2*i] = Pattern::flipsX(f, signature[2*i]-'a', signature[2*i+1]-'a', boardsize-1, boardsize-1)+'a'; 
    928929      if (signature[2*i+1] == 't') next[2*i+1] = 't'; 
     930      else if (signature[2*i+1] == '?') next[2*i+1] = '?'; 
    929931      else next[2*i+1] = Pattern::flipsY(f, signature[2*i]-'a', signature[2*i+1]-'a', boardsize-1, boardsize-1)+'a'; 
    930932    } 
     
    37633765void GameList::sigsearch(char* sig) throw(DBError) { 
    37643766  if (start_sorted() == 0) {  
    3765     string query = "select id from algo_signature_19 where signature = ? order by id"; 
     3767    string query = "select id from algo_signature_19 where signature like ? order by id"; 
    37663768    // int rc = sqlite3_exec(db, query.c_str(), sigs_callback, this, 0); 
    37673769    sqlite3_stmt *ppStmt=0; 
  • 06/libkombilo/testsearch.py

    r213 r215  
    6666    print 'Player %d: %s' % (i, gl.plEntry(i)) 
    6767 
     68for sig in ['cfcgjbbeckjc', 'aaaaaaaaaaaa', 'dfcnfmepgkjo', 'dfcn________', 'dfcn%']: 
     69    # SQL-wildcards are allowed: _ for a single character, % for an arbitrary number of characters 
     70    gl.reset() 
     71    gl.sigsearch(sig) 
     72    print gl.size(), 'games with signature', sig 
    6873gl.reset() 
    69 gl.sigsearch('cfcgjbbeckjc') 
    70 print gl.size(), 'games with signature cfcgjbbeckjc.' 
    71 gl.sigsearch('aaaaaaaaaaaa') 
    72 print gl.size(), 'games with signature aaaaaaaaaaaa.' 
    73 gl.reset() 
    74 gl.sigsearch('dfcnfmepgkjo') 
    75 print gl.size(), 'games with signature dfcnfmepgkjo:' 
    76 print gl.currentEntryAsString(0) 
    77 print 'signature of game 0: ', gl.getSignature(0) 
     74print gl.currentEntryAsString(200) 
     75print 'signature of game 200: ', gl.getSignature(200) 
    7876 
    7977