Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class WirelessPrinter {
- public static void main(String args[]) {
- WirelessPrinter printer = new WirelessPrinter(1.0, 500);
- // turn it on and check its state
- printer.turnOn();
- System.out.println("Power: true => " + printer.isOn()); // expected true
- System.out.println("Connected: true => " + printer.isConnected()); // expected true
- System.out.println("Paper Percent: 100 => " + printer.getPaperLevel()); // expected 100(%)
- System.out.println("Ink Level: 1.0 => " + printer.getInkLevel()); // expected 1.0
- // try print
- System.out.println(" ");
- printer.print(50);
- System.out.println("Paper Level: 90 => " + printer.getPaperLevel()); // expected 90
- System.out.println("Ink Level: 0.95 => " + printer.getInkLevel()); // expected 0.95
- System.out.println("Pages Printed: 50 => " + printer.getTotalPagesPrinted()); //expected 50
- System.out.println("Paper Used: 50 => " + printer.getTotalPaperUsed()); // expected 50
- // try print more pages than what is left in the tray
- System.out.println(" ");
- printer.print(500); // out of paper
- System.out.println("Paper Level: 0 => " + printer.getPaperLevel()); // expected 0
- System.out.println("Ink Level: 0.5 => " + printer.getInkLevel()); // expected 0.5
- System.out.println("Pages Printed: 500 => " + printer.getTotalPagesPrinted());//expected 500
- System.out.println("Pages Used: 500 => " + printer.getTotalPaperUsed()); // expected 500
- // try loadPaper method
- System.out.println(" ");
- printer.loadPaper(1000);
- System.out.println("Paper Level Exact: 500 => " + printer.getPaperLevelExact()); // expected 500
- // try replace the cartridge
- System.out.println(" ");
- printer.replaceCartridge();
- System.out.println("Ink Level: 1.0 => " + printer.getInkLevel()); // expected 1.0
- // try disconnect method
- System.out.println(" ");
- printer.disconnect(); // network goes off
- printer.print(50);
- System.out.println("Paper Level Exact: 500 => " + printer.getPaperLevelExact()); // expected 500
- System.out.println("Ink Level: 1.0 => " + printer.getInkLevel()); // expected 1.0
- }
- private boolean Connected;
- private boolean Status;
- private double inkLevel;
- private int paperlevel;
- private double canPrint;
- private double inkLevelNow;
- private int totalPages;
- private int currentPaper;
- private int blankPages;
- public WirelessPrinter() {
- inkLevel = .5;
- paperlevel = 0;
- }
- public static final int PAGES_PER_CARTRIDGE = 1000;
- public static final int TRAY_CAPACITY = 500;
- public static final double NEW_CARTRIDGE_INK_LEVEL = 1.0;
- public WirelessPrinter(double ink,int paper) {
- inkLevel = ink;
- paperlevel = paper;
- }
- //working but does not print initial ink level
- public double getInkLevel() {
- return inkLevel;
- }
- //prints percentage
- public int getPaperLevel() {
- return (int) ((double) paperlevel * 100 /TRAY_CAPACITY);
- }
- // Prints out of 500
- public int getPaperLevelExact() {
- return paperlevel;
- }
- public int getTotalPagesPrinted() {
- return (totalPages-blankPages);
- }
- public int getTotalPaperUsed() {
- return totalPages + blankPages;
- }
- //working
- public boolean isConnected() {
- if (Connected == true) {
- return true;
- }
- else {
- return false;
- }
- }
- //working
- public boolean isOn() {
- if(Status == true) {
- return true;
- }
- else {
- return false;
- }
- }
- //working
- public void connect() {
- Connected = true;
- }
- //working
- public void disconnect() {
- Connected = false;
- }
- //working
- public void turnOn() {
- Status = true;
- Connected = true;
- }
- //working
- public void turnOff() {
- Status = false;
- }
- //working
- public void replaceCartridge() {
- inkLevel = NEW_CARTRIDGE_INK_LEVEL;
- }
- public void print(int pages) {
- if (Connected) {
- //paper code
- //total pages Printed
- System.out.println(paperlevel);
- totalPages += Math.min(pages, paperlevel);
- System.out.println(totalPages);
- currentPaper = Math.min(pages, paperlevel);
- paperlevel = Math.max(paperlevel - pages, 0);
- //ink code
- canPrint = ((double) Math.min(currentPaper,pages)) / PAGES_PER_CARTRIDGE;
- System.out.println("canPrint: " + canPrint);
- //rounds the inklevel
- //ink i have
- inkLevelNow = Math.min(inkLevel, canPrint);
- System.out.println("inkLevel: " + inkLevel);
- System.out.println("inkLevelNow: " + inkLevelNow);
- //rounds the inklevel
- long inkLevelRounded = Math.round(inkLevel * 100);
- System.out.println("inkLevelRounded: " + inkLevelRounded);
- long newInkLevelRounded = Math.round(inkLevelNow * 100);
- System.out.println("newInkLevelRounded: " + newInkLevelRounded);
- long inkLevelDifference = inkLevelRounded - newInkLevelRounded;
- System.out.println("inkLevelDifference: " + inkLevelDifference);
- inkLevel = inkLevelDifference / 100d;
- System.out.println("inkLevel: " + inkLevel);
- //cannot go below 0 ink
- inkLevel = Math.max(inkLevel, 0);
- System.out.println(inkLevel);
- blankPages = (int) Math.round(Math.min(0,inkLevel - inkLevelNow)*100)/100;
- System.out.println(blankPages);
- blankPages += blankPages * PAGES_PER_CARTRIDGE;
- System.out.println(blankPages);
- }
- else {
- return;
- }
- }
- //working
- public void loadPaper(int pages) {
- paperlevel = Math.min(pages+ paperlevel, TRAY_CAPACITY);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement