submission
parent
5194d8cbde
commit
b789bff069
|
@ -70,5 +70,6 @@
|
|||
\@writefile{toc}{\contentsline {section}{\numberline {5}Question 5}{17}{section.0.5}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}A}{17}{subsection.0.5.1}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}B}{18}{subsection.0.5.2}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6}Question 6}{22}{section.0.6}\protected@file@percent }
|
||||
\gdef \@abspage@last{23}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6}Question 6}{23}{section.0.6}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Note}{23}{subsection.0.6.1}\protected@file@percent }
|
||||
\gdef \@abspage@last{24}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/Debian) (preloaded format=pdflatex 2023.10.9) 12 OCT 2023 20:38
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/Debian) (preloaded format=pdflatex 2023.10.9) 16 OCT 2023 10:26
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
|
@ -359,7 +359,7 @@ Package hyperref Info: bookmark level for unknown lstlisting defaults to 0 on i
|
|||
nput line 114.
|
||||
LaTeX Font Info: Font shape `OT1/cmtt/bx/n' in size <9> not available
|
||||
(Font) Font shape `OT1/cmtt/m/n' tried instead on input line 117.
|
||||
<screenshot001.png, id=124, 810.77907pt x 252.945pt>
|
||||
<screenshot001.png, id=129, 810.77907pt x 252.945pt>
|
||||
File: screenshot001.png Graphic file (type png)
|
||||
<use screenshot001.png>
|
||||
Package pdftex.def Info: screenshot001.png used on input line 148.
|
||||
|
@ -392,13 +392,13 @@ mm/m/it/10 <$\OT1/cmr/m/n/10 Value$\OML/cmm/m/it/10 >$$<$\OT1/cmr/m/n/10 Intege
|
|||
r$\OML/cmm/m/it/10 >$\OT1/cmr/m/n/10 ,
|
||||
[]
|
||||
|
||||
<Q3A1COSC3P95.drawio.png, id=172, 527.9725pt x 894.34125pt>
|
||||
<Q3A1COSC3P95.drawio.png, id=177, 527.9725pt x 894.34125pt>
|
||||
File: Q3A1COSC3P95.drawio.png Graphic file (type png)
|
||||
<use Q3A1COSC3P95.drawio.png>
|
||||
Package pdftex.def Info: Q3A1COSC3P95.drawio.png used on input line 179.
|
||||
(pdftex.def) Requested size: 276.00105pt x 467.51651pt.
|
||||
[6] [7 <./Q3A1COSC3P95.drawio.png>]
|
||||
<screenshot003.png, id=191, 560.0925pt x 485.56406pt>
|
||||
<screenshot003.png, id=196, 560.0925pt x 485.56406pt>
|
||||
File: screenshot003.png Graphic file (type png)
|
||||
<use screenshot003.png>
|
||||
Package pdftex.def Info: screenshot003.png used on input line 197.
|
||||
|
@ -408,7 +408,7 @@ Underfull \hbox (badness 10000) in paragraph at lines 204--208
|
|||
|
||||
[]
|
||||
|
||||
<screenshot004.png, id=197, 611.28375pt x 542.77782pt>
|
||||
<screenshot004.png, id=202, 611.28375pt x 542.77782pt>
|
||||
File: screenshot004.png Graphic file (type png)
|
||||
<use screenshot004.png>
|
||||
Package pdftex.def Info: screenshot004.png used on input line 214.
|
||||
|
@ -424,7 +424,7 @@ Underfull \hbox (badness 10000) in paragraph at lines 209--217
|
|||
[]
|
||||
|
||||
[9 <./screenshot004.png (PNG copy)>] [10]
|
||||
<screenshot005.png, id=210, 608.2725pt x 525.46312pt>
|
||||
<screenshot005.png, id=215, 608.2725pt x 525.46312pt>
|
||||
File: screenshot005.png Graphic file (type png)
|
||||
<use screenshot005.png>
|
||||
Package pdftex.def Info: screenshot005.png used on input line 226.
|
||||
|
@ -443,18 +443,28 @@ Underfull \hbox (badness 10000) in paragraph at lines 353--356
|
|||
[]
|
||||
|
||||
[17] (./delta_debugger.py [18] [19]) (./delta_debugging_results.txt [20]
|
||||
[21]) [22] (./template_Report.aux)
|
||||
[21]) [22]
|
||||
Underfull \hbox (badness 10000) in paragraph at lines 392--394
|
||||
|
||||
[]
|
||||
|
||||
|
||||
Underfull \hbox (badness 10000) in paragraph at lines 392--394
|
||||
|
||||
[]
|
||||
|
||||
[23] (./template_Report.aux)
|
||||
Package rerunfilecheck Info: File `template_Report.out' has not changed.
|
||||
(rerunfilecheck) Checksum: CD3A6676666652EE2197328EB8D98EEF;1669.
|
||||
(rerunfilecheck) Checksum: 087B8C967B19B6FFF81116E5A3650553;1751.
|
||||
)
|
||||
Here is how much of TeX's memory you used:
|
||||
11863 strings out of 476091
|
||||
180324 string characters out of 5794081
|
||||
2247330 words of memory out of 5000000
|
||||
31635 multiletter control sequences out of 15000+600000
|
||||
11868 strings out of 476091
|
||||
180387 string characters out of 5794081
|
||||
2248330 words of memory out of 5000000
|
||||
31636 multiletter control sequences out of 15000+600000
|
||||
519044 words of font info for 56 fonts, out of 8000000 for 9000
|
||||
1141 hyphenation exceptions out of 8191
|
||||
75i,7n,76p,1210b,2159s stack positions out of 10000i,1000n,20000p,200000b,200000s
|
||||
75i,8n,76p,1314b,2159s stack positions out of 10000i,1000n,20000p,200000b,200000s
|
||||
{/usr/share/texmf/fonts/enc/dvips/cm-super/cm-super-ts1.enc}</usr/share/texli
|
||||
ve/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></usr/share/texlive/tex
|
||||
mf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/share/texlive/texmf-dis
|
||||
|
@ -463,13 +473,16 @@ ts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texlive/texmf-dist/fonts/typ
|
|||
e1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-dist/fonts/type1/publ
|
||||
ic/amsfonts/cm/cmr12.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsf
|
||||
onts/cm/cmr5.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/
|
||||
cmsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10
|
||||
.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt9.pfb></
|
||||
usr/share/texmf/fonts/type1/public/cm-super/sfrm1000.pfb>
|
||||
Output written on template_Report.pdf (23 pages, 582164 bytes).
|
||||
cmr6.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb
|
||||
></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/s
|
||||
hare/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/t
|
||||
exlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb></usr/share/texlive
|
||||
/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt9.pfb></usr/share/texmf/fonts/ty
|
||||
pe1/public/cm-super/sfrm1000.pfb>
|
||||
Output written on template_Report.pdf (24 pages, 614072 bytes).
|
||||
PDF statistics:
|
||||
789 PDF objects out of 1000 (max. 8388607)
|
||||
728 compressed objects within 8 object streams
|
||||
473 named destinations out of 1000 (max. 500000)
|
||||
162 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||
819 PDF objects out of 1000 (max. 8388607)
|
||||
751 compressed objects within 8 object streams
|
||||
477 named destinations out of 1000 (max. 500000)
|
||||
170 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||
|
||||
|
|
|
@ -15,3 +15,4 @@
|
|||
\BOOKMARK [2][-]{subsection.0.5.1}{\376\377\000A}{section.0.5}% 15
|
||||
\BOOKMARK [2][-]{subsection.0.5.2}{\376\377\000B}{section.0.5}% 16
|
||||
\BOOKMARK [1][-]{section.0.6}{\376\377\000Q\000u\000e\000s\000t\000i\000o\000n\000\040\0006}{}% 17
|
||||
\BOOKMARK [2][-]{subsection.0.6.1}{\376\377\000N\000o\000t\000e}{section.0.6}% 18
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -84,7 +84,7 @@ When a bug is said to be found but none actually exists.
|
|||
\subsubsection{False Negative}
|
||||
When a bug isn't found but does actually exist. That is to say, the program fails to report the bug.
|
||||
\subsection{Positive = Not find bug}
|
||||
You literally invert the logic. It's pretty basic stuff here? Is this subpart just busy work? Take the logical not of each sentence and that's the answer. This results in confusing statements and shouldn't be used in practice.
|
||||
You literally invert the logic. Why would you ever do this? Take the logical not of each sentence and that's the answer. This results in confusing statements and shouldn't be used in practice:
|
||||
\subsubsection{True Positive}
|
||||
When the program does not report a bug, there is not a bug present.
|
||||
\subsubsection{True Negative}
|
||||
|
@ -385,9 +385,22 @@ following input values provided.
|
|||
(This file is included in the zip for this assignment. I'm not completely sure why I pasted this here but not the C++. Something Something tired Something Something Python being cleaner than C++)\\
|
||||
And some test results running on my computer:
|
||||
\lstinputlisting{delta_debugging_results.txt}
|
||||
I would've preferred C++ but trying to run the python function from C++ in a cross-platform way isn't something I think you or I want to deal with. This python code is a simple but clean implementation of delta debugging which finds a set of minimal strings which cause errors within the provided function. From the results of the delta debugging program it appears my static analysis was correct in there being only one bug. This delta debugging implementation uses a binary search method where the input string is recursively split in half until either a minimal error string is found or the string can no longer be split. A string is known to error if the result of the incorrect function does not match a known correct output which is generated at runtime. Since there is no hard way to pre-generate valid and invalid strings we must assume the output of my 'correct' function is in fact valid. The actual implementation of this concept uses a while loop with a queue to do the recursion; a queue was used because using a stack is unnecessary. If I had implemented this with C++ I would have used a stack like structure as |std::vector| has a |pop_back| function.
|
||||
I would've preferred C++ but trying to run the python function from C++ in a cross-platform way isn't something I think you or I want to deal with. This python code is a simple but clean implementation of delta debugging\footnote{Not technically full delta debugging, but I don't have any more time to work on this. Other assignments / research projects / the midterm have to be done.} which finds a set of minimal strings which cause errors within the provided function. This delta debugging implementation uses a binary search method where the input string is recursively split in half until either a minimal error string is found or the string can no longer be split. A string is known to error if the result of the incorrect function does not match a known correct output which is generated at runtime. Since there is no hard way to pre-generate valid and invalid strings we must assume the output of my 'correct' function is in fact valid.\footnote{The function matches the requirements} The actual implementation of this concept uses a while loop with a queue to do the recursion; a queue was used because using a stack is unnecessary. If I had implemented this with C++ I would have used a stack like structure as |std::vector| has a |pop_back| function.
|
||||
|
||||
\newpage
|
||||
\section{Question 6}
|
||||
|
||||
I've create a git repo on my semi-private git server, which can be accessed via the link:\\
|
||||
\href{https://git.tpgc.me/tri11paragon/COSC_3P95_Assignment_1}{https://git.tpgc.me/tri11paragon/COSC\_3P95\_Assignment\_1}\\\\
|
||||
\subsection{Note}
|
||||
By proving this repo as a public repository it technically violates the university's academic integrity policies. Specifically:
|
||||
\begin{itemize}
|
||||
\item 4.e. Ensuring that a student’s work is not used inappropriately by others; \begin{itemize}
|
||||
\item I am unable to insure the correct use of this repository as it is publicly available.
|
||||
\end{itemize}
|
||||
\item Appendix 2.C.4. "Allowing one's essay, thesis or assignment to be copied by someone else" \begin{itemize}
|
||||
\item As this is required to be a public git repository I cannot prevent someone from copying this assignment.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
Thus, in an attempt to better comply with university policy and the requirements of this assignment (and avoid the Microsoft monopoly) I have elected to host the assignment on my self-hosted git server.
|
||||
|
||||
\end{document}
|
||||
|
|
|
@ -37,4 +37,5 @@
|
|||
\contentsline {section}{\numberline {5}Question 5}{17}{section.0.5}%
|
||||
\contentsline {subsection}{\numberline {5.1}A}{17}{subsection.0.5.1}%
|
||||
\contentsline {subsection}{\numberline {5.2}B}{18}{subsection.0.5.2}%
|
||||
\contentsline {section}{\numberline {6}Question 6}{22}{section.0.6}%
|
||||
\contentsline {section}{\numberline {6}Question 6}{23}{section.0.6}%
|
||||
\contentsline {subsection}{\numberline {6.1}Note}{23}{subsection.0.6.1}%
|
||||
|
|
Loading…
Reference in New Issue