Advertisement
Guest User

Untitled

a guest
Jul 26th, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function run_my_code() {}
  2.     var ea = $("#example_anchor");
  3.  
  4.     $.ajax({
  5.         url: "/swdevel/json/",
  6.         data: JSON.stringify({id: 1, method: "init_test", params: {}}),
  7.         type: 'POST',
  8.         success: function(result) {
  9.             var data = result.result;
  10.             console.log('data', data);
  11.  
  12.             if (typeof data !== 'array' || data.length != 1981) {
  13.                 ea.append($("<div>Error: Step 1: List is not 1981 long</div>"));
  14.             }
  15.  
  16.             for (var i = 0, l = data.length; i < l; i++) {
  17.                 if (typeof data[i] !== 'number') {
  18.                     ea.append($("<div>Error: Step 1: List contains non-numbers</div>"));
  19.                     break;  
  20.                 }
  21.             }
  22.  
  23.             var prevNum = data[0];
  24.  
  25.             for (var i = 1, l = data.length; i < l; i++) {
  26.                 if (data[i] < prevNum) {
  27.                     ea.append($("<div>Error: Step 1: List is not sorted in ascending order</div>"));
  28.                     break;
  29.                 } else {
  30.                     prevNum = data[i];
  31.                 }
  32.             }
  33.            
  34.             var sum = 0;
  35.  
  36.             for (var i = 0, l = data.length; i < l; i++) {
  37.                 sum += data[i];
  38.             }
  39.  
  40.             var average = sum/data.length;
  41.  
  42.             $.ajax({
  43.                 url: "/swdevel/json/",
  44.                 data: JSON.stringify({id: 2, method: "sequence_boundaries", params: {}}),
  45.                 type: 'POST',
  46.                 success: function(result) {
  47.                     var sineWave = result.result;
  48.  
  49.                     if (typeof sineWave !== 'object') {
  50.                         ea.append($("<div>Error: Step 2: It's not a dictionary</div>"));
  51.                     }
  52.  
  53.                     if (typeof sineWave !== 'object' || typeof sineWave.amplitude !== 'number' || typeof sineWave.phase !== 'number') {
  54.                         ea.append($("<div>Error: Step 2: Doesn't contain amplitude and phase shift</div>"));
  55.                     }
  56.  
  57.                     if (typeof sineWave !== 'object' || sineWave.phase != 90) {
  58.                         ea.append($("<div>Error: Step 2: Phase is not half a wavelength</div>"));
  59.                     }
  60.  
  61.                     $.ajax({
  62.                         url: "/swdevel/json/",
  63.                         data: JSON.stringify({id: 3, method: "fetch_waveform", params: {
  64.                             'frequency': average,
  65.                             'amplitude': sineWave.amplitude,
  66.                             'phase': sineWave.phase
  67.                         }}),
  68.                         type: 'POST',
  69.                         success: function(result) {
  70.  
  71.                             var array = result.result;
  72.  
  73.                             if (typeof array !== 'array') {
  74.                                 ea.append($("<div>Error: Step 3: Data is not an array</div>"));
  75.                             }
  76.  
  77.                             var max = 0;
  78.                             for (var i = 0, l = array.length; i < l; i++) {
  79.                                 if (array[i] > max) {
  80.                                     max = array[i];
  81.                                 }
  82.                             }
  83.                             if (max != sineWave.amplitude) {
  84.                                 ea.append($("<div>Error: Step 3: Sineway has incorrect amplitude</div>"));
  85.                             }
  86.  
  87.                             if (array[0] != 0) {
  88.                                 ea.append($("<div>Error: Step 3: Sineway value at x=0 should be 0</div>"));
  89.                             }
  90.  
  91.                             $.ajax({
  92.                                 url: "/swdevel/json/",
  93.                                 data: JSON.stringify({id: 4, method: "shift_waveform", params: {
  94.                                     'data': array
  95.                                 }}),
  96.                                 type: 'POST',
  97.                                 success: function(result) {
  98.  
  99.                                     var shiftedWaveform = result.result;
  100.  
  101.                                     if (typeof shiftedWaveform !== 'array') {
  102.                                         ea.append($("<div>Error: Step 4: Result is not an array</div>"));
  103.                                     }
  104.  
  105.                                     if (shiftedWaveform.length !== array.length) {
  106.                                         ea.append($("<div>Error: Step 4: Result is not the same waveform</div>"));
  107.                                     }
  108.  
  109.                                     var shiftedMax = 0;
  110.                                     for (var i = 0, i < shiftedWaveform.length; i < l; i++) {
  111.                                         if (shiftedMax < shiftedWaveform[i]) {
  112.                                             shiftedMax = shiftedWaveform[i];
  113.                                         }
  114.                                     }
  115.                                     if (Math.round(shiftedMax*1000)/1000 != Math.round(max * 0.7 * 1000)/1000) {
  116.                                         ea.append($("<div>Error: Step 4: Resulted waveform does not have amplitude reduced by 30%</div>"));
  117.                                     }
  118.  
  119.                                     for (var i = 0, l = array.length; i < l; i++) {
  120.                                         if (array[i] == 0) {
  121.                                             if (Math.round(Math.abs(shiftedWaveform[i])*1000)/1000 != Math.round(shiftedMax*Math.sin(45)*1000)/1000) {
  122.                                                 ea.append($("<div>Error: Step 4: Resulted waveform is not have shifted by 45%</div>"));
  123.                                             }
  124.                                         }
  125.                                     }
  126.                                  },
  127.                                 error: function(result) {
  128.                                     console.log("The ajax call failed");
  129.                                 }
  130.                             });
  131.                         },
  132.                         error: function(result) {
  133.                             console.log("The ajax call failed");
  134.                         }
  135.                     });
  136.                 },
  137.                 error: function(result) {
  138.                     console.log("The ajax call failed");
  139.                 }
  140.             });
  141.         },
  142.         error: function(result) {
  143.             console.log("The ajax call failed");
  144.         }
  145.     });
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement