Skip to content
Snippets Groups Projects
Commit 6e9e5ee2 authored by @thx's avatar @thx
Browse files

Batch improvements in 22wi

A squash of:
AVLTree wording clarification
Update TopKSortTests.java
Bump up heap size in Gradle tests (thanks Marcus)
Fix various bugs with uMessage connection (thanks Zeynel)
parent 39cca707
No related branches found
No related tags found
No related merge requests found
......@@ -25,6 +25,7 @@ dependencies {
test {
useJUnitPlatform()
maxHeapSize = "4096m"
}
java {
......
package chat;
import javax.swing.*;
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
......@@ -72,12 +73,12 @@ public class UMessageServerConnection extends Thread {
try {
cmd = cmd.trim();
switch (cmd) {
case "MAIN":
m_channel(UMessageServerConnection.CHAT_CHANNEL, text);
break;
default:
String[] parts = text.split(" ", 2);
cmd = parts[0].trim();
case "MAIN":
m_channel(UMessageServerConnection.CHAT_CHANNEL, text);
break;
default:
String[] parts = text.split(" ", 2);
cmd = parts[0].trim();
}
} catch (Exception e) {
e.printStackTrace();
......@@ -112,34 +113,52 @@ public class UMessageServerConnection extends Thread {
while ((line = this.in.readLine()) != null) {
if (line.startsWith("PING")) {
write("PONG", line.substring(5));
}
else if (line.startsWith(":umessage")) {
} else if (line.split(" ")[1].trim().equals("353")) {
int code = Integer.parseInt(line.split(" ")[1]);
switch (code) {
// List of users...
case IRCCodes.RplNamReply:
String[] names = line.split(":")[2].split(" ");
this.main.window.addUsers(names);
break;
// List of users...
case IRCCodes.RplNamReply:
String[] names = line.split(":")[2].split(" ");
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
main.window.addUsers(names);
}
});
break;
}
}
else {
} else {
String cmd = line.split(" ")[1];
final String[] lineParts = line.split(":");
switch (cmd) {
case "PART":
this.main.window.removeUser(line.split(":")[1].split("!")[0]);
break;
case "JOIN":
this.main.window.addUser(line.split(":")[1].split("!")[0]);
break;
case "PRIVMSG":
if (!line.split(" ")[2].equals(this.username)) {
return;
}
String[] lineParts = line.split(":");
this.main.window.gotMessage(lineParts[1].split("!")[0],
lineParts[2]);
break;
case "PART":
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
main.window.removeUser(lineParts[1].split("!")[0]);
}
});
break;
case "JOIN":
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
main.window.addUser(lineParts[1].split("!")[0]);
}
});
break;
case "PRIVMSG":
if (!line.split(" ")[2].equals(this.username)) {
return;
}
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
main.window.gotMessage(lineParts[1].split("!")[0],
lineParts[2]);
}
});
break;
}
}
}
......
......@@ -19,9 +19,9 @@ import cse332.datastructures.trees.BinarySearchTree;
* lead to highly perplexing and erroneous behavior. Instead,
* continue using the existing BSTNode children array.
* 4. Ensure that the class does not have redundant methods
* 5. Cast children array to AVLNode whenever necessary in your
* AVLTree. This will result a lot of casts, so we recommend you make
* private methods that encapsulate those casts.
* 5. Cast a BSTNode to an AVLNode whenever necessary in your AVLTree.
* This will result a lot of casts, so we recommend you make private methods
* that encapsulate those casts.
* 6. Do NOT override the toString method. It is used for grading.
* 7. The internal structure of your AVLTree (from this.root to the leaves) must be correct
*/
......
......@@ -18,7 +18,7 @@ public class TopKSortTests {
Integer[] arr_sorted = {7, 8, 9, 10};
TopKSort.sort(arr, K, Integer::compareTo);
for(int i = 0; i < K; i++) {
assertEquals(arr[i], arr_sorted[i]);
assertEquals(arr_sorted[i], arr[i]);
}
}
......@@ -30,7 +30,7 @@ public class TopKSortTests {
Integer[] arr_sorted = {6, 7, 8, 9};
TopKSort.sort(arr, K, Integer::compareTo);
for(int i = 0; i < K; i++) {
assertEquals(arr[i], arr_sorted[i]);
assertEquals(arr_sorted[i], arr[i]);
}
}
}
\ No newline at end of file
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment