/* * Copyright 2014,2015 Open Networking Laboratory * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* ONOS GUI -- Random -- Encapsulated randomness */ (function () { 'use strict'; var $log, fs; var halfRoot2 = 0.7071; // given some value, s, returns an integer between -s/2 and s/2 // e.g. s = 100; result in the range [-50..50) function spread(s) { return Math.floor((Math.random() * s) - s / 2); } // for a given dimension, d, choose a random value somewhere between // 0 and d where the value is within (d / (2 * sqrt(2))) of d/2. function randDim(d) { return d / 2 + spread(d * halfRoot2); } angular.module('onosUtil') .factory('RandomService', ['$log', 'FnService', function (_$log_, _fs_) { $log = _$log_; fs = _fs_; return { spread: spread, randDim: randDim }; }]); }());