49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								var jamlib = require('../build/lib/jamlib.debug');
							 | 
						||
| 
								 | 
							
								var util = require('util');
							 | 
						||
| 
								 | 
							
								var N = 1;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								print('Checkpoint 0: Creating JAM...');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Create the JAM and JAM world consisting of one logical node
							 | 
						||
| 
								 | 
							
								var JAM = jamlib.Jam({
							 | 
						||
| 
								 | 
							
								  print:function (msg) {console.log('[JAMLIB] '+msg);},
							 | 
						||
| 
								 | 
							
								  verbose:1,
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								JAM.init();
							 | 
						||
| 
								 | 
							
								print(util.inspect(JAM.stats('node')))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								print('Checkpoint 2: Compiling agent constructor function...');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function ac(options) {
							 | 
						||
| 
								 | 
							
								  this.options=options;
							 | 
						||
| 
								 | 
							
								  this.act = {
							 | 
						||
| 
								 | 
							
								    a1:function () {},
							 | 
						||
| 
								 | 
							
								    a2:function () {},
							 | 
						||
| 
								 | 
							
								    a3:function () {},
							 | 
						||
| 
								 | 
							
								    a4:function () {log('Checkpoint a4'); kill()},
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  this.trans = {
							 | 
						||
| 
								 | 
							
								    a1:"a2",
							 | 
						||
| 
								 | 
							
								    a2:function () { if (this.options.state<100) return "a3"; else return "a4"; },
							 | 
						||
| 
								 | 
							
								    a3:"a4",
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  this.next="a1";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								try { JAM.compileClass(undefined,ac,{verbose:1}); }
							 | 
						||
| 
								 | 
							
								catch (e) { return print(e); };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								print('Checkpoint 1: Starting JAM...');
							 | 
						||
| 
								 | 
							
								JAM.start();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								print('Checkpoint 3: Creating agents ...');
							 | 
						||
| 
								 | 
							
								for(var i = 0; i<N;i++) {
							 | 
						||
| 
								 | 
							
								  JAM.createAgent('ac',{verbose:0});
							 | 
						||
| 
								 | 
							
								} 
							 | 
						||
| 
								 | 
							
								print(util.inspect(JAM.stats('process')))
							 | 
						||
| 
								 | 
							
								print(util.inspect(JAM.stats('vm')))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								print('All checks passed.');
							 |