Convert to the Python Langauge import static org.junit.Assert.*; import org.juni
ID: 668040 • Letter: C
Question
Convert to the Python Langauge
import static org.junit.Assert.*;
import org.junit.Test;
import java.io.*;
import java.net.Socket;
public class TestJ {
public static final int PORT = 12321;
private static final double TOLERANCE = 1e-10;
@Test
public void evaluate1() throws IOException {
String result;
result = sendAndReceive("E1 -945 1689 -950 230 -25 1");
assertEquals('E', result.charAt(0));
double value = Double.parseDouble(result.substring(1));
assertEquals(0.0, value, TOLERANCE);
}
@Test
public void evaluate2() throws IOException {
String result;
result = sendAndReceive("E3 -945 1689 -950 230 -25 1");
assertEquals('E', result.charAt(0));
double value = Double.parseDouble(result.substring(1));
assertEquals(0.0, value, TOLERANCE);
}
@Test
public void evaluate3() throws IOException {
String result;
result = sendAndReceive("E5 -945 1689 -950 230 -25 1");
assertEquals('E', result.charAt(0));
double value = Double.parseDouble(result.substring(1));
assertEquals(0.0, value, TOLERANCE);
}
@Test
public void evaluate4() throws IOException {
String result;
result = sendAndReceive("E7 -945 1689 -950 230 -25 1");
assertEquals('E', result.charAt(0));
double value = Double.parseDouble(result.substring(1));
assertEquals(0.0, value, TOLERANCE);
}
@Test
public void evaluate5() throws IOException {
String result;
result = sendAndReceive("E9 -945 1689 -950 230 -25 1");
assertEquals('E', result.charAt(0));
double value = Double.parseDouble(result.substring(1));
assertEquals(0.0, value, TOLERANCE);
}
@Test
public void bisect1() throws IOException {
String result;
result = sendAndReceive("S0 2 -945 1689 -950 230 -25 1 1e-10");
assertEquals('S', result.charAt(0));
double value = Double.parseDouble(result.substring(1));
assertEquals(1.0, value, TOLERANCE);
}
@Test
public void bisect2() throws IOException {
String result;
result = sendAndReceive("S4 2 -945 1689 -950 230 -25 1 1e-10");
assertEquals('S', result.charAt(0));
double value = Double.parseDouble(result.substring(1));
assertEquals(3.0, value, TOLERANCE);
}
@Test
public void bisect3() throws IOException {
String result;
result = sendAndReceive("S4 6 -945 1689 -950 230 -25 1 1e-10");
assertEquals('S', result.charAt(0));
double value = Double.parseDouble(result.substring(1));
assertEquals(5.0, value, TOLERANCE);
}
@Test
public void bisect4() throws IOException {
String result;
result = sendAndReceive("S8 6 -945 1689 -950 230 -25 1 1e-10");
assertEquals('S', result.charAt(0));
double value = Double.parseDouble(result.substring(1));
assertEquals(7.0, value, TOLERANCE);
}
@Test
public void bisect5() throws IOException {
String result;
result = sendAndReceive("S8 10 -945 1689 -950 230 -25 1 1e-10");
assertEquals('S', result.charAt(0));
double value = Double.parseDouble(result.substring(1));
assertEquals(9.0, value, TOLERANCE);
}
@Test
public void formatErrorExtraSpace1() throws IOException {
String result;
result = sendAndReceive("S8 10 -945 1689 -950 230 -25 1 1e-10");
assertEquals('X', result.charAt(0));
}
@Test
public void formatErrorExtraSpace2() throws IOException {
String result;
result = sendAndReceive("E8 -945 1689 -950 230 -25 1");
assertEquals('X', result.charAt(0));
}
@Test
public void formatErrorBadNumber1() throws IOException {
String result;
result = sendAndReceive("S8 10 -945 1689 -950a 230 -25 1 1e-10");
assertEquals('X', result.charAt(0));
}
@Test
public void formatErrorBadNumber2() throws IOException {
String result;
result = sendAndReceive("S8 -945 x1689 -950 230 -25 1");
assertEquals('X', result.charAt(0));
}
@Test
public void formatErrorBadOperation() throws IOException {
String result;
result = sendAndReceive("T8 -945 x1689 -950 230 -25 1");
assertEquals('X', result.charAt(0));
}
@Test
public void formatErrorEmptyRequest() throws IOException {
String result;
result = sendAndReceive("");
assertEquals('X', result.charAt(0));
}
/**
* Sends a request to the server, prints it and then prints the response.
*
*/
public static String sendAndReceive(String request) throws IOException {
System.out.println("request: " + request);
Socket conn = new Socket("localhost", PORT);
OutputStream os = conn.getOutputStream();
Writer wr = new OutputStreamWriter(os, "UTF-8");
wr.write(request);
wr.flush();
conn.shutdownOutput();
InputStream is = conn.getInputStream();
Reader rdr = new InputStreamReader(is,"UTF-8");
StringBuilder sb = new StringBuilder();
int c = rdr.read();
while(c >= 0) {
sb.append((char)c);
c = rdr.read();
}
//System.out.println("response: " + sb);
conn.shutdownInput();
conn.close();
return sb.toString();
}
}
Explanation / Answer
//Converted to the Python Langauge
import select
import socket
import unittest
import sys
import signal
from communication import send, receive
class TestJ(unittest.TestCase):
PORT = 12321;
TOLERANCE = 1e-10
def evaluate1(self):
try:
result=sendAndReceive('E1 -945 1689 -950 230 -25 1')
self.assertEqual('E', result(0))
value=double(result[0:1])
self.assertEqual(0.0, value, TOLERANCE )
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
def evaluate2(self):
try:
result=sendAndReceive('E3 -945 1689 -950 230 -25 1')
self.assertEqual('E', result(0))
value=double(result[0:1])
self.assertEqual(0.0, value, TOLERANCE )
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
def evaluate3(self):
try:
result=sendAndReceive('E5 -945 1689 -950 230 -25 1')
self.assertEqual('E', result(0))
value=double(result[0:1])
self.assertEqual(0.0, value, TOLERANCE )
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
def evaluate4(self):
try:
result=sendAndReceive('E7 -945 1689 -950 230 -25 1')
self.assertEqual('E', result(0))
value=double(result[0:1])
self.assertEqual(0.0, value, TOLERANCE )
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
def evaluate5(self):
try:
result=sendAndReceive('E9 -945 1689 -950 230 -25 1')
self.assertEqual('E', result(0))
value=double(result[0:1])
self.assertEqual(0.0, value, TOLERANCE )
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
def bisect1(self):
try:
result=sendAndReceive('S0 2 -945 1689 -950 230 -25 1 1e-10')
self.assertEqual('S', result(0))
value=double(result[0:1])
self.assertEqual(1.0, value, TOLERANCE )
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
def bisect2(self):
try:
result=sendAndReceive('S4 2 -945 1689 -950 230 -25 1 1e-10')
self.assertEqual('S', result(0))
value=double(result[0:1])
self.assertEqual(3, value, TOLERANCE )
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
def bisect3(self):
try:
result=sendAndReceive('S4 2 -945 1689 -950 230 -25 1 1e-10')
self.assertEqual('S', result(0))
value=double(result[0:1])
self.assertEqual(5, value, TOLERANCE )
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
def bisect4(self):
try:
result=sendAndReceive('S8 6 -945 1689 -950 230 -25 1 1e-10')
self.assertEqual('S', result(0))
value=double(result[0:1])
self.assertEqual(7, value, TOLERANCE )
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
def bisect5(self):
try:
result=sendAndReceive('S8 10 -945 1689 -950 230 -25 1 1e-10')
self.assertEqual('S', result(0))
value=double(result[0:1])
self.assertEqual(9, value, TOLERANCE )
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
def formatErrorExtraSpace2(self):
try:
result=sendAndReceive('S8 10 -945 1689 -950 230 -25 1 1e-10')
self.assertEqual('X', result(0))
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
def formatErrorExtraSpace2(self):
try:
result=sendAndReceive('E8 -945 1689 -950 230 -25 1')
self.assertEqual('X', result(0))
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
def formatErrorBadNumber1(self):
try:
result=sendAndReceive('S8 10 -945 1689 -950a 230 -25 1 1e-10')
self.assertEqual('X', result(0))
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
def formatErrorBadNumber2(self):
try:
result=sendAndReceive(' S8 -945 x1689 -950 230 -25 1')
self.assertEqual('X', result(0))
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
def formatErrorBadOperation(self):
try:
result=sendAndReceive('T8 -945 x1689 -950 230 -25 1')
self.assertEqual('X', result(0))
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
def formatErrorEmptyRequest(self):
try:
result=sendAndReceive('')
self.assertEqual('X', result(0))
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
if __name__ == '__main__':
unittest.main()
/**
* Sends a request to the server, prints it and then prints the response.
*
*/
def sendAndReceive( request):
print ‘request:’ ,request
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((‘local host’, PORT))
sys.stdout.write(request)
sys.stdout.flush()
print “shutting down”
int c = sys.stdin.read()
while c >= 0 :
st =st.join((char)c)
c = sys.stdin.read()
continue
sock.close()
return str(st)