Azathoth42

HW06 Testing class, version:1.3.0

Apr 17th, 2014
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 19.83 KB | None | 0 0
  1. public static void header(){
  2.         System.out.println("Vitejte v testovaci tride ukolu HW06 z predmetu programovani 2.");
  3.         System.out.println("Predtim, nez zacnete psat ostatnim, ze vam zde neco nefunguje, postupujte dle nasledujicich instrukci:");
  4.         System.out.println("1) Prectete si prispevky k HW06 na foru.");
  5.         System.out.println("Zde je link:");
  6.         System.out.println("https://cw.felk.cvut.cz/forum/forum-651-page-1.html");
  7.         System.out.println("2) Prectete si prispevky k HW06 na facebooku ve skupine Programko 2.");
  8.         System.out.println("Zde je link:");
  9.         System.out.println("https://www.facebook.com/groups/708768589166731/");
  10.         System.out.println("3) Pouzijte debug, vypisujte promenne a krokujte si to k mistu, ktere vam nefunguje.");
  11.         System.out.println("4) Prectete si znovu zadani.");
  12.         System.out.println("Zde je link:");
  13.         System.out.println("https://edux.feld.cvut.cz/courses/A0B36PR2/hw/6");
  14.         System.out.println("5) Prectete si znovu javadoc.");
  15.         System.out.println("\n" +"Source code URI: http://pastebin.com/AU2eaJTw\n" +"Version: 1.3.0\n" +"Author: Azathoth\n" +"License: GNU General Public License\n" +"License URI: http://www.gnu.org/licenses/gpl.html");
  16.         System.out.println("Jako ukazkovy vystup pouzivam svuj program, je mozne, ze se v nekterych drobnostech lisi od ostatnich spravnych reseni a nikdo nezarucuje, ze je to spravne. "
  17.                 + "\nJe to ovsem reseni, ktere proslo. Lisit se napriklad muze pocet volani map a filter u view, ovsem nemel by byt vyrazne vyssi, nez u ukazkoveho vystupu.");
  18.         System.out.println("Poznámka: sice to zde není explicitně napsáno, ale v testu se používá i iterator, size, tail a head. \n"
  19.                 + "Text u výjimek se může lišit a nemá vliv na funčnost programu (poznámka pro blbé: typ výjimky se lišit nesmí a má vliv na funkčnost programu).");
  20.        
  21.     }
  22.    
  23.     public static void appendAndFilter(Predicate sude){
  24.         System.out.println("\nTest append:\n");
  25.         for (int i = 0; i < 10; i++) {
  26.             System.out.println("Pridavam "+i+" na konec.");
  27.             listInt = listInt.append(i);
  28.         }
  29.        
  30.         System.out.println("\nVas vystup:");
  31.         System.out.println("Obsah listu:");
  32.         for (Integer integer : listInt) {
  33.             System.out.println(integer);
  34.         }
  35.         System.out.println("Velikost je: "+listInt.size()+".");
  36.         System.out.println("Konec vaseho vystupu.");
  37.        
  38.         System.out.println("\nUkazkovy vystup");
  39.         System.out.println("Obsah listu:\n" +"0\n" +"1\n" +"2\n" +"3\n" +"4\n" +"5\n" +"6\n" +"7\n" +"8\n" +"9\n" +"Velikost je: 10.");
  40.         System.out.println("Konec ukazkoveho vystupu.");
  41.        
  42.         System.out.println("\nKonec testu append.\n");
  43.        
  44.         System.out.println("\nTest filter:\n");
  45.        
  46.         System.out.println("\nVas vystup:");
  47.         System.out.println("Aplikuji filtr, suda cisla zustanou.");
  48.         listInt = listInt.filter(sude);
  49.         System.out.println("Obsah listu:");
  50.         for (Integer integer : listInt) {
  51.             System.out.println(integer);
  52.         }
  53.         System.out.println("Velikost je: "+listInt.size()+".");
  54.         System.out.println("Konec vaseho vystupu.");
  55.        
  56.         System.out.println("\nUkazkovy vystup");
  57.         System.out.println("Aplikuji filtr, suda cisla zustanou.\n" +"Filtruji: cislo 0 je sude.\n" +"Filtruji: cislo 1 neni sude.\n" +"Filtruji: cislo 2 je sude.\n" +"Filtruji: cislo 3 neni sude.\n" +"Filtruji: cislo 4 je sude.\n" +"Filtruji: cislo 5 neni sude.\n" +"Filtruji: cislo 6 je sude.\n" +"Filtruji: cislo 7 neni sude.\n" +"Filtruji: cislo 8 je sude.\n" +"Filtruji: cislo 9 neni sude.\n" +"Obsah listu:\n" +"0\n" +"2\n" +"4\n" +"6\n" +"8\n" +"Velikost je: 5.");
  58.         System.out.println("Konec ukazkoveho vystupu.");
  59.        
  60.         System.out.println("\nKonec testu filter.\n");
  61.     }
  62.    
  63.     public static void consAndMapAndIsEmpty(Function kratDva){
  64.         System.out.println("\nTest cons:\n");
  65.         for (int i = 0; i < 10; i++) {
  66.             System.out.println("Pridavam "+i+" na zacatek.");
  67.             listInt = listInt.cons(i);
  68.         }
  69.         System.out.println("\nVas vystup:");
  70.         System.out.println("Obsah listu:");
  71.         for (Integer integer : listInt) {
  72.             System.out.println(integer);
  73.         }
  74.         System.out.println("Velikost je: "+listInt.size()+".");
  75.         System.out.println("Konec vaseho vystupu.");
  76.        
  77.         System.out.println("\nUkazkovy vystup");
  78.         System.out.println("Obsah listu:\n" +"9\n" +"8\n" +"7\n" +"6\n" +"5\n" +"4\n" +"3\n" +"2\n" +"1\n" +"0\n" +"Velikost je: 10.");
  79.         System.out.println("Konec ukazkoveho vystupu.");
  80.        
  81.         System.out.println("\nKonec testu cons.\n");
  82.        
  83.         System.out.println("\nTest map:\n");
  84.        
  85.         System.out.println("\nVas vystup:");
  86.         System.out.println("Aplikuji mapu, cisla se zdvojnasobi.");
  87.         listInt = listInt.map(kratDva);
  88.         System.out.println("Obsah listu:");
  89.         for (Integer integer : listInt) {
  90.             System.out.println(integer);
  91.         }
  92.         System.out.println("Velikost je: "+listInt.size()+".");
  93.         System.out.println("Konec vaseho vystupu.");
  94.        
  95.         System.out.println("\nUkazkovy vystup");
  96.         System.out.println("Aplikuji mapu, cisla se zdvojnasobi.\n" +"Nasobim 9 dvema.\n" +"Nasobim 8 dvema.\n" +"Nasobim 7 dvema.\n" +"Nasobim 6 dvema.\n" +"Nasobim 5 dvema.\n" +"Nasobim 4 dvema.\n" +"Nasobim 3 dvema.\n" +"Nasobim 2 dvema.\n" +"Nasobim 1 dvema.\n" +"Nasobim 0 dvema.\n" +"Obsah listu:\n" +"18\n" +"16\n" +"14\n" +"12\n" +"10\n" +"8\n" +"6\n" +"4\n" +"2\n" +"0\n" +"Velikost je: 10.");
  97.         System.out.println("Konec ukazkoveho vystupu.");
  98.        
  99.         System.out.println("\nKonec testu map.\n");
  100.        
  101.         System.out.println("\nTest isEmpty:\n");
  102.        
  103.         System.out.println("\nVas vystup:");
  104.         System.out.println("List je prazdny: "+listInt.isEmpty());
  105.         listInt=ListFactory.nil();
  106.         System.out.println("Vycisteni seznamu.");
  107.         System.out.println("List je prazdny: "+listInt.isEmpty());
  108.         System.out.println("Konec vaseho vystupu.");
  109.        
  110.         System.out.println("\nUkazkovy vystup");
  111.         System.out.println("List je prazdny: false\n" +"Vycisteni seznamu.\n" +"List je prazdny: true");
  112.         System.out.println("Konec ukazkoveho vystupu.");
  113.        
  114.         System.out.println("\nKonec testu isEmpty.\n");
  115.        
  116.     }
  117.    
  118.    
  119.     public static void viewAndviewFilter(Predicate sude){
  120.         System.out.println("\nTest view:\n");
  121.         for (int i = 0; i < 10; i++) {
  122.             listInt = listInt.cons(i);
  123.         }
  124.        
  125.         System.out.println("\nVas vystup:");
  126.         System.out.println("Aplikuji na list view.");
  127.         listInt=listInt.view();
  128.         System.out.println("Pridavam prvek na konec.");
  129.         try{
  130.             listInt=listInt.append(0);
  131.         } catch(Exception e){
  132.             System.out.println(e.toString());
  133.         }
  134.         System.out.println("Pridavam prvek na zacatek.");
  135.         try{
  136.             listInt=listInt.cons(0);
  137.         } catch(Exception e){
  138.             System.out.println(e.toString());
  139.         }
  140.         System.out.println("Zahazuji prvni prvek volanim metody tail.");
  141.         listInt=listInt.tail();
  142.         System.out.println("Pridavam prvek na konec.");
  143.         try{
  144.             listInt=listInt.append(0);
  145.         } catch(Exception e){
  146.             System.out.println(e.toString());
  147.         }
  148.         System.out.println("Pridavam prvek na zacatek.");
  149.         try{
  150.             listInt=listInt.cons(0);
  151.         } catch(Exception e){
  152.             System.out.println(e.toString());
  153.         }
  154.         System.out.println("Konec vaseho vystupu.");
  155.        
  156.         System.out.println("\nUkazkovy vystup");
  157.         System.out.println("Aplikuji na list view.\n" +"Pridavam prvek na konec.\n" +"java.lang.UnsupportedOperationException: Can not append view.\n" +"Pridavam prvek na zacatek.\n" +"java.lang.UnsupportedOperationException: Can not cons view.\n" +"Zahazuji prvni prvek volanim metody tail.\n" +"Pridavam prvek na konec.\n" +"java.lang.UnsupportedOperationException: Can not append view.\n" +"Pridavam prvek na zacatek.\n" +"java.lang.UnsupportedOperationException: Can not cons view.");
  158.         System.out.println("Konec ukazkoveho vystupu.");
  159.        
  160.         System.out.println("\nKonec testu view.\n");
  161.        
  162.         System.out.println("\nTest viewFilter:\n");
  163.        
  164.         System.out.println("\nVas vystup:");
  165.         System.out.println("Aplikuji filtr, suda cisla zustanou.");
  166.         listInt = listInt.filter(sude);
  167.        
  168.         System.out.println("Head:");
  169.         System.out.println(listInt.head());
  170.         System.out.println("Zahazuji prvni prvek volanim metody tail.");
  171.         listInt=listInt.tail();
  172.         System.out.println("Head:");
  173.         System.out.println(listInt.head());
  174.         System.out.println("Konec vaseho vystupu.");
  175.        
  176.         System.out.println("\nUkazkovy vystup");
  177.         System.out.println("Aplikuji filtr, suda cisla zustanou.\n" +"Head:\n" +"Filtruji: cislo 8 je sude.\n" +"8\n" +"Zahazuji prvni prvek volanim metody tail.\n" +"Filtruji: cislo 8 je sude.\n" +"Head:\n" +"Filtruji: cislo 7 neni sude.\n" +"Filtruji: cislo 6 je sude.\n" +"6");
  178.         System.out.println("Konec ukazkoveho vystupu.");
  179.        
  180.         System.out.println("\nKonec testu viewFilter.\n");
  181.     }
  182.    
  183.     public static void viewMap(Function kratDva){
  184.         System.out.println("\nTest viewMap:\n");
  185.        
  186.         listInt=ListFactory.nil();
  187.         for (int i = 0; i < 5; i++) {
  188.             listInt = listInt.cons(i);
  189.         }
  190.         listInt=listInt.view();
  191.         System.out.println("\nVas vystup:");
  192.         System.out.println("Aplikuji mapu, cisla se zdvojnasobi.");
  193.         listInt = listInt.map(kratDva);
  194.        
  195.         System.out.println("Head:");
  196.         System.out.println(listInt.head());
  197.         System.out.println("Zahazuji prvni prvek volanim metody tail.");
  198.         listInt=listInt.tail();
  199.         System.out.println("Head:");
  200.         System.out.println(listInt.head());
  201.         System.out.println("Konec vaseho vystupu.");
  202.        
  203.         System.out.println("\nUkazkovy vystup");
  204.         System.out.println("Aplikuji mapu, cisla se zdvojnasobi.\n" +"Head:\n" +"Nasobim 4 dvema.\n" +"8\n" +"Zahazuji prvni prvek volanim metody tail.\n" +"Head:\n" +"Nasobim 3 dvema.\n" +"6");
  205.         System.out.println("Konec ukazkoveho vystupu.");
  206.        
  207.         System.out.println("\nKonec testu viewMap.\n");
  208.        
  209.     }
  210.    
  211.     public static void complexView(Predicate sude, Predicate vetsiNezTri, Function kratTri, Function delenoDvema){
  212.         System.out.println("\ncomplexView:\n");
  213.        
  214.         System.out.println("Vytvarim dva listy a plnim je hodnotami 0,1,2,3,4,5,6,7,8,9.");
  215.         listInt=ListFactory.nil();
  216.         Pr2List<Integer> list=ListFactory.nil();
  217.         for (int i = 0; i < 10; i++) {
  218.             list=list.append(i);
  219.             listInt=listInt.append(i);
  220.         }
  221.         System.out.println("První list bude view.");
  222.         list=list.view();
  223.        
  224.         System.out.println("\nVas vystup:");
  225.         System.out.println("Aplikuji filtr na prvni list, suda cisla zustanou.");
  226.         list=list.filter(sude);
  227.         System.out.println("Aplikuji filtr na druhy list, suda cisla zustanou.");
  228.         listInt=listInt.filter(sude);
  229.         System.out.println("Aplikuji mapu na prvni list, cisla se ztrojnasobi.");
  230.         list=list.map(kratTri);
  231.         System.out.println("Aplikuji mapu na druhy list, cisla se ztrojnasobi.");
  232.         listInt=listInt.map(kratTri);
  233.         System.out.println("Aplikuji mapu na prvni list, cisla se vydeli dvema.");
  234.         list=list.map(delenoDvema);
  235.         System.out.println("Aplikuji mapu na druhy list, cisla se vydeli dvema.");
  236.         listInt=listInt.map(delenoDvema);
  237.         System.out.println("Aplikuji filtr na prvni list, suda cisla zustanou.");
  238.         list=list.filter(vetsiNezTri);
  239.         System.out.println("Aplikuji filtr na druhy list, suda cisla zustanou.");
  240.         listInt=listInt.filter(vetsiNezTri);
  241.         System.out.println("Zahazuji prvni prvek prvniho listu volanim metody tail.");
  242.         list=list.tail();
  243.         System.out.println("Zahazuji prvni prvek  druheho listu volanim metody tail.");
  244.         listInt=listInt.tail();
  245.         System.out.println("Oba heady by se mely shodovat.");
  246.         System.out.println("Head prvniho listu:");
  247.         System.out.println(list.head());
  248.         System.out.println("Head druheho listu:");
  249.         System.out.println(listInt.head());
  250.         System.out.println("Konec vaseho vystupu.");
  251.        
  252.         System.out.println("\nUkazkovy vystup");
  253.         System.out.println("Aplikuji filtr na prvni list, suda cisla zustanou.\n" +"Aplikuji filtr na druhy list, suda cisla zustanou.\n" +"Filtruji: cislo 0 je sude.\n" +"Filtruji: cislo 1 neni sude.\n" +"Filtruji: cislo 2 je sude.\n" +"Filtruji: cislo 3 neni sude.\n" +"Filtruji: cislo 4 je sude.\n" +"Filtruji: cislo 5 neni sude.\n" +"Filtruji: cislo 6 je sude.\n" +"Filtruji: cislo 7 neni sude.\n" +"Filtruji: cislo 8 je sude.\n" +"Filtruji: cislo 9 neni sude.\n" +"Aplikuji mapu na prvni list, cisla se ztrojnasobi.\n" +"Aplikuji mapu na druhy list, cisla se ztrojnasobi.\n" +"Nasobim 0 trema.\n" +"Nasobim 2 trema.\n" +"Nasobim 4 trema.\n" +"Nasobim 6 trema.\n" +"Nasobim 8 trema.\n" +"Aplikuji mapu na prvni list, cisla se vydeli dvema.\n" +"Aplikuji mapu na druhy list, cisla se vydeli dvema.\n" +"Delim 0 dvema.\n" +"Delim 6 dvema.\n" +"Delim 12 dvema.\n" +"Delim 18 dvema.\n" +"Delim 24 dvema.\n" +"Aplikuji filtr na prvni list, suda cisla zustanou.\n" +"Aplikuji filtr na druhy list, suda cisla zustanou.\n" +"Filtruji: cislo 0 neni vetsi nez 3.\n" +"Filtruji: cislo 3 neni vetsi nez 3.\n" +"Filtruji: cislo 6 je vetsi nez 3.\n" +"Filtruji: cislo 9 je vetsi nez 3.\n" +"Filtruji: cislo 12 je vetsi nez 3.\n" +"Zahazuji prvni prvek prvniho listu volanim metody tail.\n" +"Filtruji: cislo 0 je sude.\n" +"Filtruji: cislo 0 je sude.\n" +"Nasobim 0 trema.\n" +"Delim 0 dvema.\n" +"Filtruji: cislo 0 neni vetsi nez 3.\n" +"Filtruji: cislo 0 je sude.\n" +"Filtruji: cislo 1 neni sude.\n" +"Filtruji: cislo 2 je sude.\n" +"Filtruji: cislo 2 je sude.\n" +"Nasobim 2 trema.\n" +"Delim 6 dvema.\n" +"Filtruji: cislo 3 neni vetsi nez 3.\n" +"Filtruji: cislo 2 je sude.\n" +"Filtruji: cislo 3 neni sude.\n" +"Filtruji: cislo 4 je sude.\n" +"Filtruji: cislo 4 je sude.\n" +"Nasobim 4 trema.\n" +"Delim 12 dvema.\n" +"Filtruji: cislo 6 je vetsi nez 3.\n" +"Filtruji: cislo 4 je sude.\n" +"Zahazuji prvni prvek  druheho listu volanim metody tail.\n" +"Oba heady by se mely shodovat.\n" +"Head prvniho listu:\n" +"Filtruji: cislo 5 neni sude.\n" +"Filtruji: cislo 6 je sude.\n" +"Filtruji: cislo 6 je sude.\n" +"Nasobim 6 trema.\n" +"Delim 18 dvema.\n" +"Filtruji: cislo 9 je vetsi nez 3.\n" +"9\n" +"Head druheho listu:\n" +"9");
  254.         System.out.println("Konec ukazkoveho vystupu.");
  255.        
  256.         System.out.println("\nkonec complexView:\n");
  257.        
  258.     }
  259.    
  260.     public static void tailOfSimpleView(Function kratTri){
  261.         System.out.println("\ntailOfSimpleView:\n");
  262.         System.out.println("Cistim list.");
  263.         listInt=ListFactory.nil();
  264.         System.out.println("Pridavam prvek: 1");
  265.         listInt=listInt.append(1);
  266.         System.out.println("List bude view.");
  267.         listInt=listInt.view();
  268.        
  269.         System.out.println("\nVas vystup:");
  270.         System.out.println("Zahazuji prvni prvek volanim metody tail.");
  271.         listInt=listInt.tail();
  272.         System.out.println("Aplikuji mapu, cisla se ztrojnasobi.");
  273.         listInt=listInt.map(kratTri);
  274.         System.out.println("List je prazdny: "+listInt.isEmpty());
  275.         System.out.println("Cistim list.");
  276.         listInt=ListFactory.nil();
  277.         System.out.println("Pridavam prvek: 1");
  278.         listInt=listInt.append(1);
  279.         System.out.println("Pridavam prvek: 2");
  280.         listInt=listInt.append(2);
  281.         System.out.println("List bude view.");
  282.         listInt=listInt.view();
  283.         System.out.println("Zahazuji prvni prvek volanim metody tail.");
  284.         listInt=listInt.tail();
  285.         System.out.println("Aplikuji mapu, cisla se ztrojnasobi.");
  286.         listInt=listInt.map(kratTri);
  287.         System.out.println("List je prazdny: "+listInt.isEmpty());
  288.         System.out.println("Head:");
  289.         System.out.println(listInt.head());
  290.         System.out.println("Konec vaseho vystupu.");
  291.        
  292.         System.out.println("\nUkazkovy vystup");
  293.         System.out.println("Zahazuji prvni prvek volanim metody tail.\n" +"Aplikuji mapu, cisla se ztrojnasobi.\n" +"List je prazdny: true\n" +"Cistim list.\n" +"Pridavam prvek: 1\n" +"Pridavam prvek: 2\n" +"List bude view.\n" +"Zahazuji prvni prvek volanim metody tail.\n" +"Aplikuji mapu, cisla se ztrojnasobi.\n" +"List je prazdny: false\n" +"Head:\n" +"Nasobim 2 trema.\n" +"6");
  294.         System.out.println("Konec ukazkoveho vystupu.");
  295.        
  296.         System.out.println("\nkonec tailOfSimpleView:\n");
  297.        
  298.     }
  299.    
  300.    
  301.     static Pr2List<Integer> listInt = ListFactory.nil();
  302.        
  303.     public static void main(String[] args) {
  304.         Function<Integer, Integer> kratTri = new Function<Integer, Integer>() {
  305.             @Override
  306.             public Integer apply(Integer input) {
  307.                 System.out.println("Nasobim "+input+" trema.");
  308.                 return input*3;
  309.             }};
  310.         Function<Integer, Integer> kratDva = new Function<Integer, Integer>() {
  311.             @Override
  312.             public Integer apply(Integer input) {
  313.                 System.out.println("Nasobim "+input+" dvema.");
  314.                 return input*2;
  315.             }};
  316.         Function<Integer, Integer> delenoDvema = new Function<Integer, Integer>() {
  317.             @Override
  318.             public Integer apply(Integer input) {
  319.                 System.out.println("Delim "+input+" dvema.");
  320.                 return input/2;
  321.             }};
  322.         Predicate<Integer> liche = new Predicate<Integer>(){
  323.             @Override
  324.             public boolean apply(Integer t) {
  325.                 System.out.print("Filtruji: ");
  326.                 if (t % 2 == 1) {
  327.                     System.out.println("cislo "+t+" je liche.");
  328.                 } else {
  329.                     System.out.println("cislo "+t+" neni liche.");
  330.                 }
  331.                 return t % 2 == 1;
  332.             }};
  333.         Predicate<Integer> sude = new Predicate<Integer>(){
  334.             @Override
  335.             public boolean apply(Integer t) {
  336.                 System.out.print("Filtruji: ");
  337.                 if (t % 2 == 0) {
  338.                     System.out.println("cislo "+t+" je sude.");
  339.                 } else {
  340.                     System.out.println("cislo "+t+" neni sude.");
  341.                 }
  342.                 return t % 2 == 0;
  343.             }};
  344.         Predicate<Integer> vetsiNezTri = new Predicate<Integer>(){
  345.             @Override
  346.             public boolean apply(Integer t) {
  347.                 System.out.print("Filtruji: ");
  348.                 if (t > 3) {
  349.                     System.out.println("cislo "+t+" je vetsi nez 3.");
  350.                 } else {
  351.                     System.out.println("cislo "+t+" neni vetsi nez 3.");
  352.                 }
  353.                 return t > 3;
  354.             }};
  355.         header();
  356.         System.out.println("\n\n\nTestovani:");
  357.         appendAndFilter(sude);
  358.         listInt=ListFactory.nil();
  359.         System.out.println("Vycisteni seznamu.");
  360.         consAndMapAndIsEmpty(kratDva);
  361.         viewAndviewFilter(sude);
  362.         viewMap(kratDva);
  363.         System.out.println("Testování upload systemu:");
  364.         complexView(sude, vetsiNezTri, kratTri, delenoDvema);
  365.         tailOfSimpleView(kratTri);
  366.         System.out.println("Konec testovani.");
  367.     }
Advertisement
Add Comment
Please, Sign In to add comment