Changeset 584

Show
Ignore:
Timestamp:
07/08/08 08:04:31 (5 months ago)
Author:
weyrick
Message:

few more hash tests

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/rphp/runtime/rphp_hash.h

    r583 r584  
    3737 
    3838    pvar data; 
    39     bstring str_key; 
     39    bstring key; 
     40    bool isNumKey; 
    4041 
    41     _dataContainer(bstring key, pvar d) : data(d), str_key(key) { } 
     42    _dataContainer(bstring k, pvar d) : data(d), key(k), isNumKey(false) { 
     43        // TODO: set isNumKey based on isNumeric check on key 
     44        // we will need this to emulate their numeric keys 
     45    } 
    4246 
    4347}; 
     
    4751  _dataContainer, 
    4852  indexed_by< 
    49     hashed_unique< member<_dataContainer, bstring, &_dataContainer::str_key> >, 
     53    hashed_unique< member<_dataContainer, bstring, &_dataContainer::key> >, 
    5054    sequenced<> 
    5155  > 
     
    5761class phash { 
    5862    private: 
    59         int size; 
    6063        stableHash hashData; 
    6164    public: 
    62         phash(int sizevar) : size(sizevar) { 
     65         
     66        phash() { 
    6367            hashData.insert(_dataContainer("foo", pvar(pint(5)))); 
    6468            hashData.insert(_dataContainer("bar", pvar(bstring("some string val")))); 
     
    6670        } 
    6771 
    68         phash(const phash& h) { 
    69             size = h.size; 
     72        void insert(const bstring &key, pvar data) { 
     73 
     74            hashData.insert(_dataContainer(key, data)); 
     75 
    7076        } 
    71         void dump() { 
    72             std::cout << "hash has " << hashData.size() << " elements" << std::endl; 
     77 
     78        void varDump() { 
     79            std::cout << "array(" << hashData.size() << ") {" << std::endl; 
    7380            seq_index& ot = get<1>(hashData); 
    7481            for (seq_index::iterator it = ot.begin(); it!=ot.end(); it++) { 
    75                 std::cout << "key: " << (*it).str_key << " | data: " << (*it).data << std::endl; 
     82                std::cout << "   ['" << (*it).key << "'] => " << (*it).data << std::endl; 
    7683            } 
     84            std::cout << "}" << std::endl; 
    7785        } 
    78         int getSize() const { return size; } 
     86         
     87        int getSize() const { return hashData.size(); } 
     88         
    7989        ~phash() { std::cout << "destorying php_hash" << std::endl; } 
    8090 
  • trunk/rphp/runtime/var-test.cpp

    r583 r584  
    135135 
    136136    // php hash 
    137     rphp::phash h(5); 
     137    rphp::phash h; 
     138    h.insert("var-test", rphp::pint(971)); 
     139    rphp::pvar hole = rphp::pfloat(1.234); 
     140    h.insert("var-test2", hole); 
    138141    std::cout << h; 
    139     h.dump(); 
     142    h.varDump(); 
    140143    u = h; 
    141144    std::cout << u << std::endl;