Advertisement
Guest User

Untitled

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