You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					47 lines
				
				865 B
			
		
		
			
		
	
	
					47 lines
				
				865 B
			| 
								 
											3 years ago
										 
									 | 
							
								var assert = require('assert')
							 | 
						||
| 
								 | 
							
								var HLRU = require('../')
							 | 
						||
| 
								 | 
							
								var lru = HLRU(2)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// set-get:
							 | 
						||
| 
								 | 
							
								lru.set('test', 'test')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								assert.equal(lru.get('test'), 'test')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// has:
							 | 
						||
| 
								 | 
							
								assert.equal(lru.has('test'), true)
							 | 
						||
| 
								 | 
							
								assert.equal(lru.has('blah'), false)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// update:
							 | 
						||
| 
								 | 
							
								lru.set('test', 'test2')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								assert.equal(lru.get('test'), 'test2')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// cache cycle:
							 | 
						||
| 
								 | 
							
								lru.set('test2', 'test')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								assert.equal(lru.get('test2'), 'test')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// get previous after cache cycle:
							 | 
						||
| 
								 | 
							
								assert.equal(lru.get('test'), 'test2')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// update new cache:
							 | 
						||
| 
								 | 
							
								lru.set('test2', 'test2')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								assert.equal(lru.get('test2'), 'test2')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// object purity:
							 | 
						||
| 
								 | 
							
								assert.equal(lru.get('constructor'), undefined)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// max validation:
							 | 
						||
| 
								 | 
							
								assert.throws(HLRU)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// remove:
							 | 
						||
| 
								 | 
							
								assert.equal(lru.has('test2'), true)
							 | 
						||
| 
								 | 
							
								lru.remove('test2')
							 | 
						||
| 
								 | 
							
								assert.equal(lru.has('test2'), false)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// clear
							 | 
						||
| 
								 | 
							
								assert.equal(lru.has('test'), true)
							 | 
						||
| 
								 | 
							
								lru.clear()
							 | 
						||
| 
								 | 
							
								assert.equal(lru.has('test'), false)
							 |