Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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)