mirror of
https://gitlab.com/klmp200/LO41.git
synced 2024-11-22 00:33:22 +00:00
experimental scenario generation script
This commit is contained in:
parent
76f0c2e0ed
commit
4407c99b77
231
Scripts/.gitignore
vendored
Normal file
231
Scripts/.gitignore
vendored
Normal file
@ -0,0 +1,231 @@
|
||||
# Created by .ignore support plugin (hsz.mobi)
|
||||
### JetBrains template
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
|
||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||
|
||||
# User-specific stuff
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/**/dictionaries
|
||||
.idea/**/shelf
|
||||
|
||||
# Sensitive or high-churn files
|
||||
.idea/**/dataSources/
|
||||
.idea/**/dataSources.ids
|
||||
.idea/**/dataSources.local.xml
|
||||
.idea/**/sqlDataSources.xml
|
||||
.idea/**/dynamic.xml
|
||||
.idea/**/uiDesigner.xml
|
||||
.idea/**/dbnavigator.xml
|
||||
|
||||
# Gradle
|
||||
.idea/**/gradle.xml
|
||||
.idea/**/libraries
|
||||
|
||||
# CMake
|
||||
cmake-build-debug/
|
||||
cmake-build-release/
|
||||
|
||||
# Mongo Explorer plugin
|
||||
.idea/**/mongoSettings.xml
|
||||
|
||||
# File-based project format
|
||||
*.iws
|
||||
|
||||
# IntelliJ
|
||||
out/
|
||||
|
||||
# mpeltonen/sbt-idea plugin
|
||||
.idea_modules/
|
||||
|
||||
# JIRA plugin
|
||||
atlassian-ide-plugin.xml
|
||||
|
||||
# Cursive Clojure plugin
|
||||
.idea/replstate.xml
|
||||
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
||||
|
||||
# Editor-based Rest Client
|
||||
.idea/httpRequests
|
||||
### Vim template
|
||||
# Swap
|
||||
[._]*.s[a-v][a-z]
|
||||
[._]*.sw[a-p]
|
||||
[._]s[a-v][a-z]
|
||||
[._]sw[a-p]
|
||||
|
||||
# Session
|
||||
Session.vim
|
||||
|
||||
# Temporary
|
||||
.netrwhist
|
||||
*~
|
||||
# Auto-generated tag files
|
||||
tags
|
||||
# Persistent undo
|
||||
[._]*.un~
|
||||
### C template
|
||||
# Prerequisites
|
||||
*.d
|
||||
|
||||
# Object files
|
||||
*.o
|
||||
*.ko
|
||||
*.obj
|
||||
*.elf
|
||||
|
||||
# Linker output
|
||||
*.ilk
|
||||
*.map
|
||||
*.exp
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Libraries
|
||||
*.lib
|
||||
*.a
|
||||
*.la
|
||||
*.lo
|
||||
|
||||
# Shared objects (inc. Windows DLLs)
|
||||
*.dll
|
||||
*.so
|
||||
*.so.*
|
||||
*.dylib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
*.i*86
|
||||
*.x86_64
|
||||
*.hex
|
||||
|
||||
# Debug files
|
||||
*.dSYM/
|
||||
*.su
|
||||
*.idb
|
||||
*.pdb
|
||||
|
||||
# Kernel Module Compile Results
|
||||
*.mod*
|
||||
*.cmd
|
||||
.tmp_versions/
|
||||
modules.order
|
||||
Module.symvers
|
||||
Mkfile.old
|
||||
dkms.conf
|
||||
### macOS template
|
||||
# General
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
.com.apple.timemachine.donotpresent
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
### Emacs template
|
||||
# -*- mode: gitignore; -*-
|
||||
*~
|
||||
\#*\#
|
||||
/.emacs.desktop
|
||||
/.emacs.desktop.lock
|
||||
*.elc
|
||||
auto-save-list
|
||||
tramp
|
||||
.\#*
|
||||
|
||||
# Org-mode
|
||||
.org-id-locations
|
||||
*_archive
|
||||
|
||||
# flymake-mode
|
||||
*_flymake.*
|
||||
|
||||
# eshell files
|
||||
/eshell/history
|
||||
/eshell/lastdir
|
||||
|
||||
# elpa packages
|
||||
/elpa/
|
||||
|
||||
# reftex files
|
||||
*.rel
|
||||
|
||||
# AUCTeX auto folder
|
||||
/auto/
|
||||
|
||||
# cask packages
|
||||
.cask/
|
||||
dist/
|
||||
|
||||
# Flycheck
|
||||
flycheck_*.el
|
||||
|
||||
# server auth directory
|
||||
/server/
|
||||
|
||||
# projectiles files
|
||||
.projectile
|
||||
|
||||
# directory configuration
|
||||
.dir-locals.el
|
||||
### SublimeText template
|
||||
# Cache files for Sublime Text
|
||||
*.tmlanguage.cache
|
||||
*.tmPreferences.cache
|
||||
*.stTheme.cache
|
||||
|
||||
# Workspace files are user-specific
|
||||
*.sublime-workspace
|
||||
|
||||
# Project files should be checked into the repository, unless a significant
|
||||
# proportion of contributors will probably not be using Sublime Text
|
||||
# *.sublime-project
|
||||
|
||||
# SFTP configuration file
|
||||
sftp-config.json
|
||||
|
||||
# Package control specific files
|
||||
Package Control.last-run
|
||||
Package Control.ca-list
|
||||
Package Control.ca-bundle
|
||||
Package Control.system-ca-bundle
|
||||
Package Control.cache/
|
||||
Package Control.ca-certs/
|
||||
Package Control.merged-ca-bundle
|
||||
Package Control.user-ca-bundle
|
||||
oscrypto-ca-bundle.crt
|
||||
bh_unicode_properties.cache
|
||||
|
||||
# Sublime-github package stores a github token in this file
|
||||
# https://packagecontrol.io/packages/sublime-github
|
||||
GitHub.sublime-settings
|
||||
|
||||
# Scenario files
|
||||
*.txt
|
41
Scripts/generate.pl
Normal file → Executable file
41
Scripts/generate.pl
Normal file → Executable file
@ -1,27 +1,35 @@
|
||||
#!/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use List::Util qw/shuffle/;
|
||||
|
||||
die "Usage : generate.pl agents_number [floor_number]\nagents number range from 2 to 500\n" if @ARGV == 0;
|
||||
my $total_nb = $ARGV[0];
|
||||
die "Error : stupid amount of agents ($total_nb)\n" if $total_nb < 2;
|
||||
my $visitors_nb = int($total_nb / 2);
|
||||
my $residents_nb = $total_nb - $visitors_nb;
|
||||
my $floor_number = @ARGV > 2 ? $ARGV[1] : 25;
|
||||
|
||||
my $visitors_output_file_name = "visitors.txt";
|
||||
my $residents_output_file_name = "residents.txt";
|
||||
my $visitors_db_filename = "visitors.db";
|
||||
my $residents_db_filename = "residents.db";
|
||||
my @visitors = ();
|
||||
my @residents = ();
|
||||
my $total_nb = $ARGV[0];
|
||||
my $visitors_nb = $ARGV[0]; #todo : calculer
|
||||
my $residents_nb = $ARGV[1];
|
||||
my $output_file_name = $ARGV[2] eq "" ? "out" : $ARGV[2];
|
||||
|
||||
|
||||
open(my $visitors_db_file, $visitors_db_filename) or die "Error : no visitors database found \n";
|
||||
|
||||
open(my $residents_db_file, $residents_db_filename) or die "Error : no residents database found \n";
|
||||
|
||||
while(my $line = <$visitors_db_file>){
|
||||
#chomp($line);
|
||||
chomp($line);
|
||||
push(@visitors, $line);
|
||||
}
|
||||
while(my $line = <$residents_db_file>){
|
||||
#chomp($line);
|
||||
push(@residents, $line);
|
||||
chomp($line);
|
||||
push(@residents, $line) if(@residents < $residents_nb);
|
||||
}
|
||||
|
||||
die "Database is not big enough for $visitors_nb visitors\n" if @visitors < $visitors_nb;
|
||||
@ -30,14 +38,23 @@ die "Database is not big enough for $residents_nb residents" if @residents < $re
|
||||
@visitors = shuffle(@visitors);
|
||||
@residents = shuffle(@residents);
|
||||
|
||||
open(my $output_file, '>'.$output_file_name) or die "Error : couldn't create output file.";
|
||||
open(my $visitors_output_file, '>', $visitors_output_file_name) or die "Error : couldn't create visitors output file.";
|
||||
open(my $residents_output_file, '>', $residents_output_file_name) or die "Error : couldn't create residents output file.";
|
||||
|
||||
for(my $i = 0; $i < )
|
||||
foreach (@visitors){
|
||||
print;
|
||||
|
||||
for(my $i = 0; $i < $visitors_nb; $i += 1){
|
||||
print $visitors_output_file $visitors[$i] . ";" .
|
||||
$residents[rand $residents_nb] . "\n";
|
||||
}
|
||||
|
||||
for(my $i = 0; $i < $residents_nb; $i += 1){
|
||||
print $residents_output_file $residents[$i] . ";" .
|
||||
(int(rand(25)) + 1) . ";" .
|
||||
(int(rand(25 + 1))) . "\n";
|
||||
}
|
||||
|
||||
close $visitors_db_file;
|
||||
close $residents_db_file;
|
||||
|
||||
close $visitors_output_file;
|
||||
close $residents_output_file;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user