Coverage Summary for Class: QueueFIFO (com.mygdx.utils)
| Class | Class, % | Method, % | Line, % |
|---|---|---|---|
| QueueFIFO | 100% (1/1) | 95.8% (23/24) | 98.5% (64/65) |
1 package com.mygdx.utils; 2 3 import java.lang.UnsupportedOperationException; 4 5 import java.util.*; 6 7 /** 8 * A First in first out queue 9 * 10 * @param <T> Data type to store 11 */ 12 public class QueueFIFO<T> implements Queue<T> { 13 private ArrayList<T> data; 14 private int topIndex; 15 16 /** 17 * Initialize all properties 18 */ 19 public QueueFIFO() { 20 topIndex = -1; 21 data = new ArrayList<>(); 22 } 23 24 //Implemented for Testing 25 public void set(ArrayList<T> setThis) { 26 data = setThis; 27 topIndex = size() -1; 28 } 29 30 public ArrayList<T> get() { 31 return data; } 32 33 public int getI() { 34 return topIndex; 35 } 36 //End of Testing Functions 37 38 @Override 39 public int size() { 40 return data.size(); 41 } 42 43 @Override 44 public boolean isEmpty() { 45 return data.isEmpty(); 46 } 47 48 @Override 49 public boolean contains(Object o) { 50 return data.contains(o); 51 } 52 53 @Override 54 public Iterator<T> iterator() { 55 return data.iterator(); 56 } 57 58 @Override 59 public Object[] toArray() { 60 return data.toArray(); 61 } 62 63 @Override 64 public <T1> T1[] toArray(T1[] a) { 65 Object[] queue = toArray(); 66 int newLength = a.length + queue.length; 67 68 T1[] arrNew = (T1[]) new Object[newLength]; 69 for(int i = 0; i < a.length; i++) { 70 arrNew[i] = a[i]; 71 } 72 73 for(int i = a.length; i < arrNew.length; i++) { 74 arrNew[i] = (T1) queue[i-a.length]; 75 } 76 77 return arrNew; 78 } 79 80 @Override 81 public boolean add(T t) { 82 topIndex++; 83 return data.add(t); 84 } 85 86 @Override 87 public boolean remove(Object o) { 88 if (isEmpty()) { 89 return false; 90 } 91 int i = data.indexOf(o); 92 if (i == -1) { 93 return false; 94 } 95 topIndex--; 96 data.remove(i); 97 return true; 98 } 99 100 public void remove(int index) { 101 if (isEmpty()) { 102 return; 103 } 104 topIndex--; 105 data.remove(index); 106 } 107 108 @Override 109 public boolean containsAll(Collection<?> c) { 110 return data.containsAll(c); 111 } 112 113 @Override 114 public boolean addAll(Collection<? extends T> c) { 115 boolean suc = data.addAll(c); 116 if (suc) { 117 topIndex = data.size() -1; 118 } 119 return suc; 120 } 121 122 @Override 123 public boolean removeAll(Collection<?> c) { 124 boolean suc = data.removeAll(c); 125 if (suc) { 126 topIndex = data.size() -1; 127 } 128 return suc; 129 } 130 131 @Override 132 public boolean retainAll(Collection<?> c) { 133 boolean suc = data.retainAll(c); 134 if (suc) { 135 topIndex = data.size() -1; 136 } 137 return suc; 138 } 139 140 @Override 141 public void clear() { 142 data.clear(); 143 topIndex = -1; 144 145 } 146 147 /** 148 * Not implemented 149 */ 150 @Override 151 public boolean offer(T t) { 152 throw new UnsupportedOperationException(); 153 } 154 155 @Override 156 public T remove() throws RuntimeException{ 157 if (isEmpty()) { 158 throw new RuntimeException("Queue is empty"); 159 } 160 T t = data.remove(topIndex); 161 topIndex--; 162 return t; 163 } 164 165 public T pop() { 166 return remove(); 167 } 168 169 @Override 170 public T poll() { 171 if (isEmpty()) { 172 return null; 173 } 174 topIndex--; 175 return data.remove(topIndex + 1); 176 } 177 178 @Override 179 public T element() throws RuntimeException{ 180 if (isEmpty()) { 181 throw new RuntimeException("Queue is empty"); 182 } 183 return data.get(topIndex); 184 } 185 186 @Override 187 public T peek() { 188 if (isEmpty()) { 189 return null; 190 } 191 return data.get(topIndex); 192 } 193 }