Repository: stepp/stanford-cpp-library
Branch: master
Commit: f7cb08751e57
Files: 2285
Total size: 31.0 MB
Directory structure:
gitextract_uknl7n05/
├── .gitignore
├── Archived/
│ ├── Autograder_QtCreatorProject/
│ │ ├── Autograder_QtCreatorProject.pro
│ │ ├── lateDays.txt
│ │ ├── lib/
│ │ │ └── readme.txt
│ │ ├── res/
│ │ │ ├── inputpanel-mainfunc.xml
│ │ │ ├── myinput.txt
│ │ │ └── stylecheck-mainfunc-cpp.xml
│ │ └── src/
│ │ ├── mainfunc.cpp
│ │ ├── readme.txt
│ │ └── test/
│ │ ├── _collectionTests.cp_
│ │ ├── collection-test-basicgraph.cpp
│ │ ├── collection-test-common.h
│ │ ├── collection-test-dawglexicon.cpp
│ │ ├── collection-test-deque.cpp
│ │ ├── collection-test-graph.cpp
│ │ ├── collection-test-grid.cpp
│ │ ├── collection-test-hashmap.cpp
│ │ ├── collection-test-hashset.cpp
│ │ ├── collection-test-lexicon.cpp
│ │ ├── collection-test-linkedhashmap.cpp
│ │ ├── collection-test-linkedhashset.cpp
│ │ ├── collection-test-linkedlist.cpp
│ │ ├── collection-test-map.cpp
│ │ ├── collection-test-priorityqueue.cpp
│ │ ├── collection-test-queue.cpp
│ │ ├── collection-test-set.cpp
│ │ ├── collection-test-sparsegrid.cpp
│ │ ├── collection-test-stack.cpp
│ │ ├── collection-test-vector.cpp
│ │ ├── exceptionTests.cpp
│ │ ├── guiTests.cpp
│ │ ├── imageDiffTests.cpp
│ │ ├── pipeTest.cpp
│ │ ├── serverTest.cpp
│ │ ├── stringTests.cpp
│ │ ├── systemTests.cpp
│ │ ├── testcases.h
│ │ └── urlTests.cpp
│ ├── JavaBackEnd/
│ │ ├── eclipseproject/
│ │ │ ├── .classpath
│ │ │ ├── .idea/
│ │ │ │ ├── codeStyleSettings.xml
│ │ │ │ ├── compiler.xml
│ │ │ │ ├── copyright/
│ │ │ │ │ └── profiles_settings.xml
│ │ │ │ ├── dictionaries/
│ │ │ │ │ └── stepp.xml
│ │ │ │ ├── inspectionProfiles/
│ │ │ │ │ ├── Project_Default.xml
│ │ │ │ │ └── profiles_settings.xml
│ │ │ │ ├── misc.xml
│ │ │ │ ├── modules.xml
│ │ │ │ ├── vcs.xml
│ │ │ │ └── workspace.xml
│ │ │ ├── .project
│ │ │ ├── .settings/
│ │ │ │ └── org.eclipse.jdt.core.prefs
│ │ │ ├── StanfordCPPLib_JavaBackEnd.iml
│ │ │ ├── doc/
│ │ │ │ ├── acm/
│ │ │ │ │ ├── graphics/
│ │ │ │ │ │ ├── G3DRect.html
│ │ │ │ │ │ ├── GCanvas.html
│ │ │ │ │ │ ├── GCanvasInterface.html
│ │ │ │ │ │ ├── GCompound.html
│ │ │ │ │ │ ├── GContainer.html
│ │ │ │ │ │ ├── GImage.html
│ │ │ │ │ │ ├── GLabel.html
│ │ │ │ │ │ ├── GLine.html
│ │ │ │ │ │ ├── GLineGroup.html
│ │ │ │ │ │ ├── GMath.html
│ │ │ │ │ │ ├── GObject.html
│ │ │ │ │ │ ├── GOval.html
│ │ │ │ │ │ ├── GPoint.html
│ │ │ │ │ │ ├── GRectangle.html
│ │ │ │ │ │ ├── GResizable.html
│ │ │ │ │ │ ├── GScalable.html
│ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ └── package-tree.html
│ │ │ │ │ ├── gui/
│ │ │ │ │ │ ├── DoubleField.html
│ │ │ │ │ │ ├── Event.html
│ │ │ │ │ │ ├── IntField.html
│ │ │ │ │ │ ├── JButtonGroup.html
│ │ │ │ │ │ ├── JFontChooser.DialogCancelAction.html
│ │ │ │ │ │ ├── JFontChooser.DialogOKAction.html
│ │ │ │ │ │ ├── JFontChooser.ListSearchTextFieldDocumentHandler.ListSelector.html
│ │ │ │ │ │ ├── JFontChooser.ListSearchTextFieldDocumentHandler.html
│ │ │ │ │ │ ├── JFontChooser.ListSelectionHandler.html
│ │ │ │ │ │ ├── JFontChooser.TextFieldFocusHandlerForTextSelection.html
│ │ │ │ │ │ ├── JFontChooser.TextFieldKeyHandlerForListSelectionUpDown.html
│ │ │ │ │ │ ├── JFontChooser.html
│ │ │ │ │ │ ├── JListOptionPane.html
│ │ │ │ │ │ ├── JPlaceholderTextField.html
│ │ │ │ │ │ ├── JStringList.html
│ │ │ │ │ │ ├── TableLayout.html
│ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ └── package-tree.html
│ │ │ │ │ ├── io/
│ │ │ │ │ │ ├── ConsoleModel.html
│ │ │ │ │ │ ├── IOConsole.html
│ │ │ │ │ │ ├── SimpleScanner.html
│ │ │ │ │ │ ├── StandardConsoleModel.html
│ │ │ │ │ │ ├── SystemConsoleModel.html
│ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ └── package-tree.html
│ │ │ │ │ ├── program/
│ │ │ │ │ │ ├── AbstractConsoleProgram.html
│ │ │ │ │ │ ├── AsciiArtProgram.html
│ │ │ │ │ │ ├── CommandLineProgram.html
│ │ │ │ │ │ ├── ConsoleProgram.html
│ │ │ │ │ │ ├── DialogProgram.html
│ │ │ │ │ │ ├── GraphicsProgram.html
│ │ │ │ │ │ ├── GraphicsProgramInterface.html
│ │ │ │ │ │ ├── HeadlessGraphicsProgram.html
│ │ │ │ │ │ ├── Program.html
│ │ │ │ │ │ ├── ProgramInterface.html
│ │ │ │ │ │ ├── ProgramMenuBar.html
│ │ │ │ │ │ ├── ProgramStartupFlags.html
│ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ └── package-tree.html
│ │ │ │ │ └── util/
│ │ │ │ │ ├── ErrorException.html
│ │ │ │ │ ├── FileChooserFilter.html
│ │ │ │ │ ├── MediaTools.html
│ │ │ │ │ ├── PatchingClassLoader.html
│ │ │ │ │ ├── RandomGenerator.html
│ │ │ │ │ ├── SoundClip.html
│ │ │ │ │ ├── package-frame.html
│ │ │ │ │ ├── package-summary.html
│ │ │ │ │ └── package-tree.html
│ │ │ │ ├── allclasses-frame.html
│ │ │ │ ├── allclasses-noframe.html
│ │ │ │ ├── constant-values.html
│ │ │ │ ├── deprecated-list.html
│ │ │ │ ├── help-doc.html
│ │ │ │ ├── index-all.html
│ │ │ │ ├── index.html
│ │ │ │ ├── javazoom/
│ │ │ │ │ └── jlgui/
│ │ │ │ │ └── basicplayer/
│ │ │ │ │ ├── BasicController.html
│ │ │ │ │ ├── BasicPlayer.html
│ │ │ │ │ ├── BasicPlayerEvent.html
│ │ │ │ │ ├── BasicPlayerEventLauncher.html
│ │ │ │ │ ├── BasicPlayerException.html
│ │ │ │ │ ├── BasicPlayerListener.html
│ │ │ │ │ ├── package-frame.html
│ │ │ │ │ ├── package-summary.html
│ │ │ │ │ └── package-tree.html
│ │ │ │ ├── overview-frame.html
│ │ │ │ ├── overview-summary.html
│ │ │ │ ├── overview-tree.html
│ │ │ │ ├── package-list
│ │ │ │ ├── script.js
│ │ │ │ ├── serialized-form.html
│ │ │ │ ├── stanford/
│ │ │ │ │ ├── cs106/
│ │ │ │ │ │ ├── audio/
│ │ │ │ │ │ │ ├── Accidental.html
│ │ │ │ │ │ │ ├── Note.html
│ │ │ │ │ │ │ ├── Pitch.html
│ │ │ │ │ │ │ ├── SplClip.html
│ │ │ │ │ │ │ ├── StdAudio.AudioEvent.Type.html
│ │ │ │ │ │ │ ├── StdAudio.AudioEvent.html
│ │ │ │ │ │ │ ├── StdAudio.AudioEventListener.html
│ │ │ │ │ │ │ ├── StdAudio.html
│ │ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ │ └── package-tree.html
│ │ │ │ │ │ ├── autograder/
│ │ │ │ │ │ │ ├── GuidedAutograder.ReflectionPanel.html
│ │ │ │ │ │ │ ├── GuidedAutograder.StudentProgramRunnerThread.html
│ │ │ │ │ │ │ ├── GuidedAutograder.html
│ │ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ │ └── package-tree.html
│ │ │ │ │ │ ├── collections/
│ │ │ │ │ │ │ ├── AbstractMultimap.html
│ │ │ │ │ │ │ ├── AbstractTable.html
│ │ │ │ │ │ │ ├── BasicGraph.html
│ │ │ │ │ │ │ ├── Edge.html
│ │ │ │ │ │ │ ├── Graph.html
│ │ │ │ │ │ │ ├── GraphColor.html
│ │ │ │ │ │ │ ├── Grid.html
│ │ │ │ │ │ │ ├── HashBasedTable.html
│ │ │ │ │ │ │ ├── HashMultimap.html
│ │ │ │ │ │ │ ├── Lexicon.html
│ │ │ │ │ │ │ ├── Multimap.html
│ │ │ │ │ │ │ ├── Table.html
│ │ │ │ │ │ │ ├── TreeBasedTable.html
│ │ │ │ │ │ │ ├── TreeMultimap.html
│ │ │ │ │ │ │ ├── Vertex.Event.html
│ │ │ │ │ │ │ ├── Vertex.html
│ │ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ │ └── package-tree.html
│ │ │ │ │ │ ├── diff/
│ │ │ │ │ │ │ ├── Diff.Difference.Type.html
│ │ │ │ │ │ │ ├── Diff.Difference.html
│ │ │ │ │ │ │ ├── Diff.html
│ │ │ │ │ │ │ ├── DiffCollection.Difference.html
│ │ │ │ │ │ │ ├── DiffCollection.html
│ │ │ │ │ │ │ ├── DiffGui.html
│ │ │ │ │ │ │ ├── DiffImage.html
│ │ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ │ └── package-tree.html
│ │ │ │ │ │ ├── gui/
│ │ │ │ │ │ │ ├── ClipboardUtils.html
│ │ │ │ │ │ │ ├── GuiUtils.html
│ │ │ │ │ │ │ ├── JComboGroupBox.html
│ │ │ │ │ │ │ ├── ListOptionPane.html
│ │ │ │ │ │ │ ├── ResizeListener.html
│ │ │ │ │ │ │ ├── WindowCloseKeyListener.html
│ │ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ │ └── package-tree.html
│ │ │ │ │ │ ├── io/
│ │ │ │ │ │ │ ├── ExtensionFileFilter.html
│ │ │ │ │ │ │ ├── IORuntimeException.html
│ │ │ │ │ │ │ ├── IOUtils.html
│ │ │ │ │ │ │ ├── LimitedPrintStream.ExcessiveOutputException.html
│ │ │ │ │ │ │ ├── LimitedPrintStream.html
│ │ │ │ │ │ │ ├── OutputCapturer.html
│ │ │ │ │ │ │ ├── ReaderInputStream.html
│ │ │ │ │ │ │ ├── ResourceUtils.html
│ │ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ │ └── package-tree.html
│ │ │ │ │ │ ├── junit/
│ │ │ │ │ │ │ ├── Assert.html
│ │ │ │ │ │ │ ├── ComparisonFailureEnhanced.html
│ │ │ │ │ │ │ ├── JUnitListener.html
│ │ │ │ │ │ │ ├── JUnitUtils.html
│ │ │ │ │ │ │ ├── TestCategory.html
│ │ │ │ │ │ │ ├── UnitTestType.html
│ │ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ │ └── package-tree.html
│ │ │ │ │ │ ├── net/
│ │ │ │ │ │ │ ├── BackEndServer.html
│ │ │ │ │ │ │ ├── Downloader.html
│ │ │ │ │ │ │ ├── NetworkManager.html
│ │ │ │ │ │ │ ├── Request.html
│ │ │ │ │ │ │ ├── SimpleClient.html
│ │ │ │ │ │ │ ├── SimpleServer.SimpleServerException.html
│ │ │ │ │ │ │ ├── SimpleServer.html
│ │ │ │ │ │ │ ├── SimpleServerListener.html
│ │ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ │ └── package-tree.html
│ │ │ │ │ │ ├── program/
│ │ │ │ │ │ │ ├── CommandLineProgramMarty.html
│ │ │ │ │ │ │ ├── ConsoleProgramMarty.html
│ │ │ │ │ │ │ ├── ProgramUtils.html
│ │ │ │ │ │ │ ├── ResizableProgram.html
│ │ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ │ └── package-tree.html
│ │ │ │ │ │ ├── reflect/
│ │ │ │ │ │ │ ├── ClassUtils.BetterClassLoader.html
│ │ │ │ │ │ │ ├── ClassUtils.ClassComparator.html
│ │ │ │ │ │ │ ├── ClassUtils.ExtensionFilter.html
│ │ │ │ │ │ │ ├── ClassUtils.html
│ │ │ │ │ │ │ ├── CompilerErrorException.html
│ │ │ │ │ │ │ ├── ReflectionRuntimeException.html
│ │ │ │ │ │ │ ├── ReflectionUtils.FieldNameComparator.html
│ │ │ │ │ │ │ ├── ReflectionUtils.MethodNameComparator.html
│ │ │ │ │ │ │ ├── ReflectionUtils.html
│ │ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ │ └── package-tree.html
│ │ │ │ │ │ └── util/
│ │ │ │ │ │ ├── CollectionUtils.html
│ │ │ │ │ │ ├── ConstantUtils.html
│ │ │ │ │ │ ├── ExceptionUtils.html
│ │ │ │ │ │ ├── OperatingSystem.html
│ │ │ │ │ │ ├── ProcessUtils.html
│ │ │ │ │ │ ├── RandomGenerator.html
│ │ │ │ │ │ ├── RecursionUtils.html
│ │ │ │ │ │ ├── Stanford.html
│ │ │ │ │ │ ├── StringUtils.html
│ │ │ │ │ │ ├── SystemProperties.html
│ │ │ │ │ │ ├── XmlUtils.XmlRuntimeException.html
│ │ │ │ │ │ ├── XmlUtils.html
│ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ └── package-tree.html
│ │ │ │ │ ├── karel/
│ │ │ │ │ │ ├── Event.html
│ │ │ │ │ │ ├── HeadlessKarel.html
│ │ │ │ │ │ ├── HeadlessSuperKarel.html
│ │ │ │ │ │ ├── Karel.html
│ │ │ │ │ │ ├── KarelControlPanel.html
│ │ │ │ │ │ ├── KarelDirection.html
│ │ │ │ │ │ ├── KarelInterface.html
│ │ │ │ │ │ ├── KarelProgram.State.html
│ │ │ │ │ │ ├── KarelProgram.html
│ │ │ │ │ │ ├── KarelWorld.html
│ │ │ │ │ │ ├── SuperKarel.html
│ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ └── package-tree.html
│ │ │ │ │ └── spl/
│ │ │ │ │ ├── AutograderInput.html
│ │ │ │ │ ├── AutograderInput_addButton.html
│ │ │ │ │ ├── AutograderInput_addCategory.html
│ │ │ │ │ ├── AutograderInput_removeButton.html
│ │ │ │ │ ├── AutograderInput_removeCategory.html
│ │ │ │ │ ├── AutograderInput_setColumns.html
│ │ │ │ │ ├── AutograderInput_setVisible.html
│ │ │ │ │ ├── AutograderUnitTestGUI.html
│ │ │ │ │ ├── AutograderUnitTest_addTest.html
│ │ │ │ │ ├── AutograderUnitTest_catchExceptions.html
│ │ │ │ │ ├── AutograderUnitTest_clearTestResults.html
│ │ │ │ │ ├── AutograderUnitTest_clearTests.html
│ │ │ │ │ ├── AutograderUnitTest_isChecked.html
│ │ │ │ │ ├── AutograderUnitTest_setChecked.html
│ │ │ │ │ ├── AutograderUnitTest_setTestCounts.html
│ │ │ │ │ ├── AutograderUnitTest_setTestDetails.html
│ │ │ │ │ ├── AutograderUnitTest_setTestResult.html
│ │ │ │ │ ├── AutograderUnitTest_setTestRuntime.html
│ │ │ │ │ ├── AutograderUnitTest_setTestingCompleted.html
│ │ │ │ │ ├── AutograderUnitTest_setVisible.html
│ │ │ │ │ ├── AutograderUnitTest_setWindowDescriptionText.html
│ │ │ │ │ ├── Base64.InputStream.html
│ │ │ │ │ ├── Base64.OutputStream.html
│ │ │ │ │ ├── Base64.html
│ │ │ │ │ ├── Clipboard_get.html
│ │ │ │ │ ├── Clipboard_set.html
│ │ │ │ │ ├── DiffImage_compareImages.html
│ │ │ │ │ ├── DiffImage_compareWindowToImage.html
│ │ │ │ │ ├── DiffImage_show.html
│ │ │ │ │ ├── File_getTempDirectory.html
│ │ │ │ │ ├── File_openFileDialog.html
│ │ │ │ │ ├── GBufferedImage.html
│ │ │ │ │ ├── GBufferedImage_create.html
│ │ │ │ │ ├── GBufferedImage_fill.html
│ │ │ │ │ ├── GBufferedImage_fillRegion.html
│ │ │ │ │ ├── GBufferedImage_load.html
│ │ │ │ │ ├── GBufferedImage_resize.html
│ │ │ │ │ ├── GBufferedImage_save.html
│ │ │ │ │ ├── GBufferedImage_setRGB.html
│ │ │ │ │ ├── GBufferedImage_updateAllPixels.html
│ │ │ │ │ ├── GCompound_add.html
│ │ │ │ │ ├── GFileChooser_showOpenDialog.GFileChooserFileFilter.html
│ │ │ │ │ ├── GFileChooser_showOpenDialog.html
│ │ │ │ │ ├── GFileChooser_showSaveDialog.html
│ │ │ │ │ ├── GInteractor.html
│ │ │ │ │ ├── GInteractor_addActionListener.html
│ │ │ │ │ ├── GInteractor_getAccelerator.html
│ │ │ │ │ ├── GInteractor_getFont.html
│ │ │ │ │ ├── GInteractor_getMnemonic.html
│ │ │ │ │ ├── GInteractor_isEnabled.html
│ │ │ │ │ ├── GInteractor_removeActionListener.html
│ │ │ │ │ ├── GInteractor_requestFocus.html
│ │ │ │ │ ├── GInteractor_setAccelerator.html
│ │ │ │ │ ├── GInteractor_setBackground.html
│ │ │ │ │ ├── GInteractor_setEnabled.html
│ │ │ │ │ ├── GInteractor_setFont.html
│ │ │ │ │ ├── GInteractor_setIcon.html
│ │ │ │ │ ├── GInteractor_setMnemonic.html
│ │ │ │ │ ├── GInteractor_setText.html
│ │ │ │ │ ├── GInteractor_setTextPosition.html
│ │ │ │ │ ├── GInteractor_setTooltip.html
│ │ │ │ │ ├── GObject_remove.html
│ │ │ │ │ ├── GObject_setAntialiasing.html
│ │ │ │ │ ├── GOptionPane_showConfirmDialog.html
│ │ │ │ │ ├── GOptionPane_showInputDialog.html
│ │ │ │ │ ├── GOptionPane_showMessageDialog.html
│ │ │ │ │ ├── GOptionPane_showOptionDialog.html
│ │ │ │ │ ├── GOptionPane_showTextFileDialog.html
│ │ │ │ │ ├── GRadioButton.html
│ │ │ │ │ ├── GRadioButton_create.html
│ │ │ │ │ ├── GRadioButton_isSelected.html
│ │ │ │ │ ├── GRadioButton_setSelected.html
│ │ │ │ │ ├── GSlider.html
│ │ │ │ │ ├── GSlider_getMajorTickSpacing.html
│ │ │ │ │ ├── GSlider_getMinorTickSpacing.html
│ │ │ │ │ ├── GSlider_getPaintLabels.html
│ │ │ │ │ ├── GSlider_getPaintTicks.html
│ │ │ │ │ ├── GSlider_getSnapToTicks.html
│ │ │ │ │ ├── GSlider_setMajorTickSpacing.html
│ │ │ │ │ ├── GSlider_setMinorTickSpacing.html
│ │ │ │ │ ├── GSlider_setPaintLabels.html
│ │ │ │ │ ├── GSlider_setPaintTicks.html
│ │ │ │ │ ├── GSlider_setSnapToTicks.html
│ │ │ │ │ ├── GTable.html
│ │ │ │ │ ├── GTableAdapter.html
│ │ │ │ │ ├── GTableEvent.html
│ │ │ │ │ ├── GTableListener.html
│ │ │ │ │ ├── GTable_autofitColumnWidths.html
│ │ │ │ │ ├── GTable_clear.html
│ │ │ │ │ ├── GTable_clearFormatting.html
│ │ │ │ │ ├── GTable_create.html
│ │ │ │ │ ├── GTable_get.html
│ │ │ │ │ ├── GTable_getColumnWidth.html
│ │ │ │ │ ├── GTable_getSelection.html
│ │ │ │ │ ├── GTable_resize.html
│ │ │ │ │ ├── GTable_select.html
│ │ │ │ │ ├── GTable_set.html
│ │ │ │ │ ├── GTable_setCellAlignment.html
│ │ │ │ │ ├── GTable_setCellBackground.html
│ │ │ │ │ ├── GTable_setCellFont.html
│ │ │ │ │ ├── GTable_setCellForeground.html
│ │ │ │ │ ├── GTable_setColumnAlignment.html
│ │ │ │ │ ├── GTable_setColumnBackground.html
│ │ │ │ │ ├── GTable_setColumnFont.html
│ │ │ │ │ ├── GTable_setColumnForeground.html
│ │ │ │ │ ├── GTable_setColumnHeaderStyle.html
│ │ │ │ │ ├── GTable_setColumnWidth.html
│ │ │ │ │ ├── GTable_setEditable.html
│ │ │ │ │ ├── GTable_setEditorValue.html
│ │ │ │ │ ├── GTable_setEventEnabled.html
│ │ │ │ │ ├── GTable_setFont.html
│ │ │ │ │ ├── GTable_setHorizontalAlignment.html
│ │ │ │ │ ├── GTable_setRowAlignment.html
│ │ │ │ │ ├── GTable_setRowBackground.html
│ │ │ │ │ ├── GTable_setRowColumnHeadersVisible.html
│ │ │ │ │ ├── GTable_setRowFont.html
│ │ │ │ │ ├── GTable_setRowForeground.html
│ │ │ │ │ ├── GTextArea.html
│ │ │ │ │ ├── GTextArea_create.html
│ │ │ │ │ ├── GTextArea_getText.html
│ │ │ │ │ ├── GTextArea_setEditable.html
│ │ │ │ │ ├── GTextArea_setFont.html
│ │ │ │ │ ├── GTextArea_setText.html
│ │ │ │ │ ├── GTextField.html
│ │ │ │ │ ├── GTextField_isEditable.html
│ │ │ │ │ ├── GTextField_setEditable.html
│ │ │ │ │ ├── GTextField_setPlaceholder.html
│ │ │ │ │ ├── GWindow_clearCanvas.html
│ │ │ │ │ ├── GWindow_close.html
│ │ │ │ │ ├── GWindow_create.html
│ │ │ │ │ ├── GWindow_drawInBackground.html
│ │ │ │ │ ├── GWindow_getCanvasSize.html
│ │ │ │ │ ├── GWindow_getContentPaneSize.html
│ │ │ │ │ ├── GWindow_getLocation.html
│ │ │ │ │ ├── GWindow_getPixel.html
│ │ │ │ │ ├── GWindow_getPixels.html
│ │ │ │ │ ├── GWindow_getRegionSize.html
│ │ │ │ │ ├── GWindow_getScreenSize.html
│ │ │ │ │ ├── GWindow_getSize.html
│ │ │ │ │ ├── GWindow_minimize.html
│ │ │ │ │ ├── GWindow_pack.html
│ │ │ │ │ ├── GWindow_removeFromRegion.html
│ │ │ │ │ ├── GWindow_saveCanvasPixels.html
│ │ │ │ │ ├── GWindow_setCanvasSize.html
│ │ │ │ │ ├── GWindow_setCloseOperation.html
│ │ │ │ │ ├── GWindow_setExitOnClose.html
│ │ │ │ │ ├── GWindow_setLocation.html
│ │ │ │ │ ├── GWindow_setLocationSaved.html
│ │ │ │ │ ├── GWindow_setPixel.html
│ │ │ │ │ ├── GWindow_setPixels.html
│ │ │ │ │ ├── GWindow_setRegionSize.html
│ │ │ │ │ ├── GWindow_setResizable.html
│ │ │ │ │ ├── GWindow_setSize.html
│ │ │ │ │ ├── GWindow_toBack.html
│ │ │ │ │ ├── GWindow_toFront.html
│ │ │ │ │ ├── HttpServer_sendResponse.html
│ │ │ │ │ ├── HttpServer_sendResponseFile.html
│ │ │ │ │ ├── HttpServer_start.html
│ │ │ │ │ ├── HttpServer_stop.html
│ │ │ │ │ ├── JBECanvas.html
│ │ │ │ │ ├── JBECommand.html
│ │ │ │ │ ├── JBEConsole_minimize.html
│ │ │ │ │ ├── JBEConsole_print.html
│ │ │ │ │ ├── JBEConsole_setCloseOperation.html
│ │ │ │ │ ├── JBEConsole_setErrorColor.html
│ │ │ │ │ ├── JBEConsole_setExitOnClose.html
│ │ │ │ │ ├── JBEConsole_setLocation.html
│ │ │ │ │ ├── JBEConsole_setLocationSaved.html
│ │ │ │ │ ├── JBEConsole_setOutputColor.html
│ │ │ │ │ ├── JBEConsole_setTitle.html
│ │ │ │ │ ├── JBEConsole_setVisible.html
│ │ │ │ │ ├── JBEConsole_toFront.html
│ │ │ │ │ ├── JBEDummyProgram.html
│ │ │ │ │ ├── JBEFileFilter.html
│ │ │ │ │ ├── JBELabel.html
│ │ │ │ │ ├── JBEMenuBar.html
│ │ │ │ │ ├── JBESwingCommand.html
│ │ │ │ │ ├── JBEWindow.html
│ │ │ │ │ ├── JavaBackEnd.html
│ │ │ │ │ ├── LibraryUpdater.html
│ │ │ │ │ ├── Note_play.html
│ │ │ │ │ ├── Regex_match.html
│ │ │ │ │ ├── Regex_matchCount.html
│ │ │ │ │ ├── Regex_matchCountWithLines.html
│ │ │ │ │ ├── Regex_replace.html
│ │ │ │ │ ├── SPLWindowSettings.html
│ │ │ │ │ ├── SplPipeDecoder.html
│ │ │ │ │ ├── StanfordCppLib_getJbeVersion.html
│ │ │ │ │ ├── StanfordCppLib_setCppVersion.html
│ │ │ │ │ ├── TextFileDialog.html
│ │ │ │ │ ├── URL_download.html
│ │ │ │ │ ├── UrlDownloader.html
│ │ │ │ │ ├── Version.html
│ │ │ │ │ ├── package-frame.html
│ │ │ │ │ ├── package-summary.html
│ │ │ │ │ └── package-tree.html
│ │ │ │ └── stylesheet.css
│ │ │ ├── files.list
│ │ │ ├── lib/
│ │ │ │ ├── acm.jar
│ │ │ │ ├── jl1.0.1.jar
│ │ │ │ ├── jogg-0.0.7.jar
│ │ │ │ ├── jorbis-0.0.15.jar
│ │ │ │ ├── junit.jar
│ │ │ │ ├── mp3spi1.9.5.jar
│ │ │ │ ├── tritonus_share.jar
│ │ │ │ └── vorbisspi1.0.2.jar
│ │ │ ├── make-javadoc.sh
│ │ │ ├── obf/
│ │ │ │ ├── MANIFEST
│ │ │ │ ├── META-INF/
│ │ │ │ │ └── services/
│ │ │ │ │ ├── javax.sound.sampled.spi.AudioFileReader
│ │ │ │ │ ├── javax.sound.sampled.spi.AudioFileReader.BACKUP
│ │ │ │ │ ├── javax.sound.sampled.spi.FormatConversionProvider
│ │ │ │ │ └── javax.sound.sampled.spi.FormatConversionProvider.BACKUP
│ │ │ │ ├── compile.sh
│ │ │ │ ├── copyobf.sh
│ │ │ │ ├── decompile.sh
│ │ │ │ ├── jar-do-everything.sh
│ │ │ │ ├── jartmp8082730507693879001.tmp
│ │ │ │ ├── makeandcopy.sh
│ │ │ │ ├── makejar.sh
│ │ │ │ ├── obfuscate.sh
│ │ │ │ ├── out/
│ │ │ │ │ └── temp.jar
│ │ │ │ ├── proguard-settings.pro
│ │ │ │ ├── retro.txt
│ │ │ │ └── spl.jar
│ │ │ └── src/
│ │ │ ├── acm/
│ │ │ │ ├── graphics/
│ │ │ │ │ ├── G3DRect.java
│ │ │ │ │ ├── GCanvas.java
│ │ │ │ │ ├── GCanvasInterface.java
│ │ │ │ │ ├── GCompound.java
│ │ │ │ │ ├── GContainer.java
│ │ │ │ │ ├── GImage.java
│ │ │ │ │ ├── GIterator.java
│ │ │ │ │ ├── GLabel.java
│ │ │ │ │ ├── GLine.java
│ │ │ │ │ ├── GLineGroup.java
│ │ │ │ │ ├── GMath.java
│ │ │ │ │ ├── GObject.java
│ │ │ │ │ ├── GObjectList.java
│ │ │ │ │ ├── GOval.java
│ │ │ │ │ ├── GPoint.java
│ │ │ │ │ ├── GRectangle.java
│ │ │ │ │ ├── GResizable.java
│ │ │ │ │ ├── GScalable.java
│ │ │ │ │ └── GraphicsUtils.java
│ │ │ │ ├── gui/
│ │ │ │ │ ├── DoubleField.java
│ │ │ │ │ ├── Event.java
│ │ │ │ │ ├── IntField.java
│ │ │ │ │ ├── JButtonGroup.java
│ │ │ │ │ ├── JFontChooser.java
│ │ │ │ │ ├── JListOptionPane.java
│ │ │ │ │ ├── JPlaceholderTextField.java
│ │ │ │ │ ├── JStringList.java
│ │ │ │ │ └── TableLayout.java
│ │ │ │ ├── io/
│ │ │ │ │ ├── ConsoleModel.java
│ │ │ │ │ ├── IOConsole.java
│ │ │ │ │ ├── SimpleScanner.java
│ │ │ │ │ ├── StandardConsoleModel.java
│ │ │ │ │ └── SystemConsoleModel.java
│ │ │ │ ├── program/
│ │ │ │ │ ├── AbstractConsoleProgram.java
│ │ │ │ │ ├── AccessibleConsoleProgram.java
│ │ │ │ │ ├── AppletStarter.java
│ │ │ │ │ ├── AsciiArtProgram.java
│ │ │ │ │ ├── CommandLineProgram.java
│ │ │ │ │ ├── ConsoleProgram.java
│ │ │ │ │ ├── DefaultActionListener.java
│ │ │ │ │ ├── DialogProgram.java
│ │ │ │ │ ├── GObjectProgram.java
│ │ │ │ │ ├── GProgramListener.java
│ │ │ │ │ ├── GraphicsProgram.java
│ │ │ │ │ ├── GraphicsProgramInterface.java
│ │ │ │ │ ├── HeadlessGraphicsProgram.java
│ │ │ │ │ ├── Program.java
│ │ │ │ │ ├── ProgramActionListener.java
│ │ │ │ │ ├── ProgramAppletStub.java
│ │ │ │ │ ├── ProgramContentPaneLayout.java
│ │ │ │ │ ├── ProgramFrame.java
│ │ │ │ │ ├── ProgramInterface.java
│ │ │ │ │ ├── ProgramMenuBar.java
│ │ │ │ │ ├── ProgramStartupFlags.java
│ │ │ │ │ ├── ProgramStartupListener.java
│ │ │ │ │ ├── ProgramWindowListener.java
│ │ │ │ │ └── package.html
│ │ │ │ └── util/
│ │ │ │ ├── ErrorException.java
│ │ │ │ ├── FileChooserFilter.java
│ │ │ │ ├── MediaTools.java
│ │ │ │ ├── PatchingClassLoader.java
│ │ │ │ ├── RandomGenerator.java
│ │ │ │ ├── SoundClip.java
│ │ │ │ ├── Timer.java
│ │ │ │ └── TokenScanner.java
│ │ │ ├── javazoom/
│ │ │ │ └── jlgui/
│ │ │ │ └── basicplayer/
│ │ │ │ ├── BasicController.java
│ │ │ │ ├── BasicPlayer.java
│ │ │ │ ├── BasicPlayerEvent.java
│ │ │ │ ├── BasicPlayerEventLauncher.java
│ │ │ │ ├── BasicPlayerException.java
│ │ │ │ └── BasicPlayerListener.java
│ │ │ └── stanford/
│ │ │ ├── cs106/
│ │ │ │ ├── audio/
│ │ │ │ │ ├── Accidental.java
│ │ │ │ │ ├── Note.java
│ │ │ │ │ ├── Pitch.java
│ │ │ │ │ ├── SplClip.java
│ │ │ │ │ └── StdAudio.java
│ │ │ │ ├── autograder/
│ │ │ │ │ └── GuidedAutograder.java
│ │ │ │ ├── collections/
│ │ │ │ │ ├── AbstractMultimap.java
│ │ │ │ │ ├── AbstractTable.java
│ │ │ │ │ ├── BasicGraph.java
│ │ │ │ │ ├── Edge.java
│ │ │ │ │ ├── Graph.java
│ │ │ │ │ ├── GraphColor.java
│ │ │ │ │ ├── Grid.java
│ │ │ │ │ ├── HashBasedTable.java
│ │ │ │ │ ├── HashMultimap.java
│ │ │ │ │ ├── Lexicon.java
│ │ │ │ │ ├── Multimap.java
│ │ │ │ │ ├── SearchableGraph.java
│ │ │ │ │ ├── Table.java
│ │ │ │ │ ├── TreeBasedTable.java
│ │ │ │ │ ├── TreeMultimap.java
│ │ │ │ │ └── Vertex.java
│ │ │ │ ├── diff/
│ │ │ │ │ ├── Diff.java
│ │ │ │ │ ├── DiffCollection.java
│ │ │ │ │ ├── DiffGui.java
│ │ │ │ │ └── DiffImage.java
│ │ │ │ ├── gui/
│ │ │ │ │ ├── ClipboardUtils.java
│ │ │ │ │ ├── GuiUtils.java
│ │ │ │ │ ├── JComboGroupBox.java
│ │ │ │ │ ├── JFileChooserUtils.java
│ │ │ │ │ ├── ListOptionPane.java
│ │ │ │ │ ├── ResizeListener.java
│ │ │ │ │ └── WindowCloseKeyListener.java
│ │ │ │ ├── io/
│ │ │ │ │ ├── ExtensionFileFilter.java
│ │ │ │ │ ├── IORuntimeException.java
│ │ │ │ │ ├── IOUtils.java
│ │ │ │ │ ├── LimitedPrintStream.java
│ │ │ │ │ ├── OutputCapturer.java
│ │ │ │ │ ├── ReaderInputStream.java
│ │ │ │ │ └── ResourceUtils.java
│ │ │ │ ├── junit/
│ │ │ │ │ ├── Assert.java
│ │ │ │ │ ├── ComparisonFailureEnhanced.java
│ │ │ │ │ ├── JUnitListener.java
│ │ │ │ │ ├── JUnitUtils.java
│ │ │ │ │ ├── TestCategory.java
│ │ │ │ │ └── UnitTestType.java
│ │ │ │ ├── net/
│ │ │ │ │ ├── BackEndServer.java
│ │ │ │ │ ├── Downloader.java
│ │ │ │ │ ├── NetworkManager.java
│ │ │ │ │ ├── Request.java
│ │ │ │ │ ├── SimpleClient.java
│ │ │ │ │ ├── SimpleServer.java
│ │ │ │ │ └── SimpleServerListener.java
│ │ │ │ ├── program/
│ │ │ │ │ ├── CommandLineProgramMarty.java
│ │ │ │ │ ├── ConsoleProgramMarty.java
│ │ │ │ │ ├── ProgramUtils.java
│ │ │ │ │ └── ResizableProgram.java
│ │ │ │ ├── reflect/
│ │ │ │ │ ├── ClassUtils.java
│ │ │ │ │ ├── CompilerErrorException.java
│ │ │ │ │ ├── ReflectionRuntimeException.java
│ │ │ │ │ └── ReflectionUtils.java
│ │ │ │ └── util/
│ │ │ │ ├── CollectionUtils.java
│ │ │ │ ├── ConstantUtils.java
│ │ │ │ ├── ExceptionUtils.java
│ │ │ │ ├── OperatingSystem.java
│ │ │ │ ├── ProcessUtils.java
│ │ │ │ ├── RandomGenerator.java
│ │ │ │ ├── RecursionUtils.java
│ │ │ │ ├── Stanford.java
│ │ │ │ ├── StringUtils.java
│ │ │ │ ├── SystemProperties.java
│ │ │ │ └── XmlUtils.java
│ │ │ ├── karel/
│ │ │ │ ├── AbstractKarel.java
│ │ │ │ ├── AccessibleKarel.java
│ │ │ │ ├── CardPanel.java
│ │ │ │ ├── EmptyCanvas.java
│ │ │ │ ├── Event.java
│ │ │ │ ├── HPanel.java
│ │ │ │ ├── HVLayout.java
│ │ │ │ ├── HeadlessKarel.java
│ │ │ │ ├── HeadlessSuperKarel.java
│ │ │ │ ├── Karel.java
│ │ │ │ ├── KarelBugIcon.java
│ │ │ │ ├── KarelControlPanel.java
│ │ │ │ ├── KarelDirection.java
│ │ │ │ ├── KarelErrorCanvas.java
│ │ │ │ ├── KarelErrorDialog.java
│ │ │ │ ├── KarelInterface.java
│ │ │ │ ├── KarelProgram.java
│ │ │ │ ├── KarelResizer.java
│ │ │ │ ├── KarelWorld.java
│ │ │ │ ├── KarelWorldEditor.java
│ │ │ │ ├── KarelWorldMonitor.java
│ │ │ │ ├── LoadWorldDialog.java
│ │ │ │ ├── NewWorldDialog.java
│ │ │ │ ├── OptionTable.java
│ │ │ │ ├── ResizeCanvas.java
│ │ │ │ ├── ResizeLayout.java
│ │ │ │ ├── SuperKarel.java
│ │ │ │ └── VPanel.java
│ │ │ └── spl/
│ │ │ ├── AutograderInput.java
│ │ │ ├── AutograderInput_addButton.java
│ │ │ ├── AutograderInput_addCategory.java
│ │ │ ├── AutograderInput_removeButton.java
│ │ │ ├── AutograderInput_removeCategory.java
│ │ │ ├── AutograderInput_setColumns.java
│ │ │ ├── AutograderInput_setVisible.java
│ │ │ ├── AutograderUnitTestGUI.java
│ │ │ ├── AutograderUnitTest_addTest.java
│ │ │ ├── AutograderUnitTest_catchExceptions.java
│ │ │ ├── AutograderUnitTest_clearTestResults.java
│ │ │ ├── AutograderUnitTest_clearTests.java
│ │ │ ├── AutograderUnitTest_isChecked.java
│ │ │ ├── AutograderUnitTest_runTestsInSeparateThreads.java
│ │ │ ├── AutograderUnitTest_setChecked.java
│ │ │ ├── AutograderUnitTest_setTestCounts.java
│ │ │ ├── AutograderUnitTest_setTestDetails.java
│ │ │ ├── AutograderUnitTest_setTestResult.java
│ │ │ ├── AutograderUnitTest_setTestRuntime.java
│ │ │ ├── AutograderUnitTest_setTestingCompleted.java
│ │ │ ├── AutograderUnitTest_setVisible.java
│ │ │ ├── AutograderUnitTest_setWindowDescriptionText.java
│ │ │ ├── Base64.java
│ │ │ ├── Clipboard_get.java
│ │ │ ├── Clipboard_set.java
│ │ │ ├── DiffImage_compareImages.java
│ │ │ ├── DiffImage_compareWindowToImage.java
│ │ │ ├── DiffImage_show.java
│ │ │ ├── File_getTempDirectory.java
│ │ │ ├── File_openFileDialog.java
│ │ │ ├── GBufferedImage.java
│ │ │ ├── GBufferedImage_create.java
│ │ │ ├── GBufferedImage_fill.java
│ │ │ ├── GBufferedImage_fillRegion.java
│ │ │ ├── GBufferedImage_load.java
│ │ │ ├── GBufferedImage_resize.java
│ │ │ ├── GBufferedImage_save.java
│ │ │ ├── GBufferedImage_setRGB.java
│ │ │ ├── GBufferedImage_updateAllPixels.java
│ │ │ ├── GCompound_add.java
│ │ │ ├── GFileChooser_showOpenDialog.java
│ │ │ ├── GFileChooser_showSaveDialog.java
│ │ │ ├── GFormattedPane.java
│ │ │ ├── GFormattedPane_create.java
│ │ │ ├── GFormattedPane_getContentType.java
│ │ │ ├── GFormattedPane_getPage.java
│ │ │ ├── GFormattedPane_getText.java
│ │ │ ├── GFormattedPane_setContentType.java
│ │ │ ├── GFormattedPane_setPage.java
│ │ │ ├── GFormattedPane_setText.java
│ │ │ ├── GInteractor.java
│ │ │ ├── GInteractor_addActionListener.java
│ │ │ ├── GInteractor_addChangeListener.java
│ │ │ ├── GInteractor_getAccelerator.java
│ │ │ ├── GInteractor_getFont.java
│ │ │ ├── GInteractor_getMnemonic.java
│ │ │ ├── GInteractor_isEnabled.java
│ │ │ ├── GInteractor_removeActionListener.java
│ │ │ ├── GInteractor_removeChangeListener.java
│ │ │ ├── GInteractor_requestFocus.java
│ │ │ ├── GInteractor_setAccelerator.java
│ │ │ ├── GInteractor_setBackground.java
│ │ │ ├── GInteractor_setEnabled.java
│ │ │ ├── GInteractor_setFont.java
│ │ │ ├── GInteractor_setIcon.java
│ │ │ ├── GInteractor_setMnemonic.java
│ │ │ ├── GInteractor_setText.java
│ │ │ ├── GInteractor_setTextPosition.java
│ │ │ ├── GInteractor_setTooltip.java
│ │ │ ├── GObject_remove.java
│ │ │ ├── GObject_setAntialiasing.java
│ │ │ ├── GOptionPane_showConfirmDialog.java
│ │ │ ├── GOptionPane_showInputDialog.java
│ │ │ ├── GOptionPane_showMessageDialog.java
│ │ │ ├── GOptionPane_showOptionDialog.java
│ │ │ ├── GOptionPane_showTextFileDialog.java
│ │ │ ├── GRadioButton.java
│ │ │ ├── GRadioButton_create.java
│ │ │ ├── GRadioButton_isSelected.java
│ │ │ ├── GRadioButton_setSelected.java
│ │ │ ├── GScrollBar.java
│ │ │ ├── GScrollBar_create.java
│ │ │ ├── GScrollBar_getValue.java
│ │ │ ├── GScrollBar_setValues.java
│ │ │ ├── GSlider.java
│ │ │ ├── GSlider_getMajorTickSpacing.java
│ │ │ ├── GSlider_getMinorTickSpacing.java
│ │ │ ├── GSlider_getPaintLabels.java
│ │ │ ├── GSlider_getPaintTicks.java
│ │ │ ├── GSlider_getSnapToTicks.java
│ │ │ ├── GSlider_setMajorTickSpacing.java
│ │ │ ├── GSlider_setMinorTickSpacing.java
│ │ │ ├── GSlider_setPaintLabels.java
│ │ │ ├── GSlider_setPaintTicks.java
│ │ │ ├── GSlider_setSnapToTicks.java
│ │ │ ├── GTable.java
│ │ │ ├── GTableAdapter.java
│ │ │ ├── GTableEvent.java
│ │ │ ├── GTableListener.java
│ │ │ ├── GTable_autofitColumnWidths.java
│ │ │ ├── GTable_clear.java
│ │ │ ├── GTable_clearFormatting.java
│ │ │ ├── GTable_create.java
│ │ │ ├── GTable_get.java
│ │ │ ├── GTable_getColumnWidth.java
│ │ │ ├── GTable_getSelection.java
│ │ │ ├── GTable_resize.java
│ │ │ ├── GTable_select.java
│ │ │ ├── GTable_set.java
│ │ │ ├── GTable_setCellAlignment.java
│ │ │ ├── GTable_setCellBackground.java
│ │ │ ├── GTable_setCellFont.java
│ │ │ ├── GTable_setCellForeground.java
│ │ │ ├── GTable_setColumnAlignment.java
│ │ │ ├── GTable_setColumnBackground.java
│ │ │ ├── GTable_setColumnFont.java
│ │ │ ├── GTable_setColumnForeground.java
│ │ │ ├── GTable_setColumnHeaderStyle.java
│ │ │ ├── GTable_setColumnWidth.java
│ │ │ ├── GTable_setEditable.java
│ │ │ ├── GTable_setEditorValue.java
│ │ │ ├── GTable_setEventEnabled.java
│ │ │ ├── GTable_setFont.java
│ │ │ ├── GTable_setHorizontalAlignment.java
│ │ │ ├── GTable_setRowAlignment.java
│ │ │ ├── GTable_setRowBackground.java
│ │ │ ├── GTable_setRowColumnHeadersVisible.java
│ │ │ ├── GTable_setRowFont.java
│ │ │ ├── GTable_setRowForeground.java
│ │ │ ├── GTextArea.java
│ │ │ ├── GTextArea_create.java
│ │ │ ├── GTextArea_getText.java
│ │ │ ├── GTextArea_setEditable.java
│ │ │ ├── GTextArea_setFont.java
│ │ │ ├── GTextArea_setText.java
│ │ │ ├── GTextField.java
│ │ │ ├── GTextField_isEditable.java
│ │ │ ├── GTextField_setEditable.java
│ │ │ ├── GTextField_setPlaceholder.java
│ │ │ ├── GTextLabel.java
│ │ │ ├── GTextLabel_create.java
│ │ │ ├── GTimer.java
│ │ │ ├── GTimer_create.java
│ │ │ ├── GWindow_addToRegion.java
│ │ │ ├── GWindow_clear.java
│ │ │ ├── GWindow_clearCanvas.java
│ │ │ ├── GWindow_close.java
│ │ │ ├── GWindow_create.java
│ │ │ ├── GWindow_delete.java
│ │ │ ├── GWindow_draw.java
│ │ │ ├── GWindow_drawInBackground.java
│ │ │ ├── GWindow_exitGraphics.java
│ │ │ ├── GWindow_getCanvasSize.java
│ │ │ ├── GWindow_getContentPaneSize.java
│ │ │ ├── GWindow_getLocation.java
│ │ │ ├── GWindow_getPixel.java
│ │ │ ├── GWindow_getPixels.java
│ │ │ ├── GWindow_getRegionSize.java
│ │ │ ├── GWindow_getScreenHeight.java
│ │ │ ├── GWindow_getScreenSize.java
│ │ │ ├── GWindow_getScreenWidth.java
│ │ │ ├── GWindow_getSize.java
│ │ │ ├── GWindow_minimize.java
│ │ │ ├── GWindow_pack.java
│ │ │ ├── GWindow_rememberPosition.java
│ │ │ ├── GWindow_removeFromRegion.java
│ │ │ ├── GWindow_repaint.java
│ │ │ ├── GWindow_requestFocus.java
│ │ │ ├── GWindow_saveCanvasPixels.java
│ │ │ ├── GWindow_setCanvasDrawingMode.java
│ │ │ ├── GWindow_setCanvasSize.java
│ │ │ ├── GWindow_setCloseOperation.java
│ │ │ ├── GWindow_setExitOnClose.java
│ │ │ ├── GWindow_setLocation.java
│ │ │ ├── GWindow_setLocationSaved.java
│ │ │ ├── GWindow_setPixel.java
│ │ │ ├── GWindow_setPixels.java
│ │ │ ├── GWindow_setRegionAlignment.java
│ │ │ ├── GWindow_setRegionSize.java
│ │ │ ├── GWindow_setRepaintImmediately.java
│ │ │ ├── GWindow_setResizable.java
│ │ │ ├── GWindow_setSize.java
│ │ │ ├── GWindow_setTitle.java
│ │ │ ├── GWindow_setVisible.java
│ │ │ ├── GWindow_toBack.java
│ │ │ ├── GWindow_toFront.java
│ │ │ ├── HTTPDownloadException.java
│ │ │ ├── HttpServer_sendResponse.java
│ │ │ ├── HttpServer_sendResponseFile.java
│ │ │ ├── HttpServer_start.java
│ │ │ ├── HttpServer_stop.java
│ │ │ ├── JBECanvas.java
│ │ │ ├── JBECommand.java
│ │ │ ├── JBEConsole_getLine.java
│ │ │ ├── JBEConsole_getTitle.java
│ │ │ ├── JBEConsole_minimize.java
│ │ │ ├── JBEConsole_print.java
│ │ │ ├── JBEConsole_setCloseOperation.java
│ │ │ ├── JBEConsole_setErrorColor.java
│ │ │ ├── JBEConsole_setExitOnClose.java
│ │ │ ├── JBEConsole_setLocation.java
│ │ │ ├── JBEConsole_setLocationSaved.java
│ │ │ ├── JBEConsole_setOutputColor.java
│ │ │ ├── JBEConsole_setTitle.java
│ │ │ ├── JBEConsole_setVisible.java
│ │ │ ├── JBEConsole_toFront.java
│ │ │ ├── JBEDummyProgram.java
│ │ │ ├── JBEFileFilter.java
│ │ │ ├── JBEHeadlessWindow.java
│ │ │ ├── JBELabel.java
│ │ │ ├── JBEMenuBar.java
│ │ │ ├── JBESwingCommand.java
│ │ │ ├── JBEWindow.java
│ │ │ ├── JBEWindowInterface.java
│ │ │ ├── JavaBackEnd.java
│ │ │ ├── LibraryUpdater.java
│ │ │ ├── Note_play.java
│ │ │ ├── Regex_match.java
│ │ │ ├── Regex_matchCount.java
│ │ │ ├── Regex_matchCountWithLines.java
│ │ │ ├── Regex_replace.java
│ │ │ ├── SPLWindowSettings.java
│ │ │ ├── SplPipeDecoder.java
│ │ │ ├── StanfordCppLib_getJbeVersion.java
│ │ │ ├── StanfordCppLib_setCppVersion.java
│ │ │ ├── TextFileDialog.java
│ │ │ ├── URL_download.java
│ │ │ ├── URL_downloadWithHeaders.java
│ │ │ ├── UrlDownloader.java
│ │ │ └── Version.java
│ │ └── latest-version-decompiled/
│ │ ├── META-INF/
│ │ │ └── MANIFEST.MF
│ │ ├── acm/
│ │ │ ├── graphics/
│ │ │ │ ├── DrawLineElement.java
│ │ │ │ ├── EndRegionElement.java
│ │ │ │ ├── FinalPathElement.java
│ │ │ │ ├── G3DRect.java
│ │ │ │ ├── GArc.java
│ │ │ │ ├── GCanvas.java
│ │ │ │ ├── GCanvasListener.java
│ │ │ │ ├── GCompound.java
│ │ │ │ ├── GContainer.java
│ │ │ │ ├── GDimension.java
│ │ │ │ ├── GFillable.java
│ │ │ │ ├── GImage.java
│ │ │ │ ├── GIterator.java
│ │ │ │ ├── GLabel.java
│ │ │ │ ├── GLine.java
│ │ │ │ ├── GMath.java
│ │ │ │ ├── GMouseEvent.java
│ │ │ │ ├── GObject.java
│ │ │ │ ├── GObjectList.java
│ │ │ │ ├── GOval.java
│ │ │ │ ├── GPen.java
│ │ │ │ ├── GPoint.java
│ │ │ │ ├── GPolygon.java
│ │ │ │ ├── GRect.java
│ │ │ │ ├── GRectangle.java
│ │ │ │ ├── GResizable.java
│ │ │ │ ├── GRoundRect.java
│ │ │ │ ├── GScalable.java
│ │ │ │ ├── GTurtle.java
│ │ │ │ ├── PathElement.java
│ │ │ │ ├── PathList.java
│ │ │ │ ├── PathState.java
│ │ │ │ ├── PenImage.java
│ │ │ │ ├── SetColorElement.java
│ │ │ │ ├── SetLocationElement.java
│ │ │ │ ├── StartRegionElement.java
│ │ │ │ └── VertexList.java
│ │ │ ├── gui/
│ │ │ │ ├── DoubleField.java
│ │ │ │ ├── HPanel.java
│ │ │ │ ├── IntField.java
│ │ │ │ ├── TableConstraints.java
│ │ │ │ ├── TableLayout.java
│ │ │ │ ├── TablePanel.java
│ │ │ │ └── VPanel.java
│ │ │ ├── io/
│ │ │ │ ├── AWTBooleanInputDialog.java
│ │ │ │ ├── AWTDialog.java
│ │ │ │ ├── AWTDialogModel.java
│ │ │ │ ├── AWTIconCanvas.java
│ │ │ │ ├── AWTLineInputDialog.java
│ │ │ │ ├── AWTMessageCanvas.java
│ │ │ │ ├── AWTMessageDialog.java
│ │ │ │ ├── CharacterQueue.java
│ │ │ │ ├── ConsoleActionListener.java
│ │ │ │ ├── ConsoleInputMonitor.java
│ │ │ │ ├── ConsoleModel.java
│ │ │ │ ├── ConsoleOutputMonitor.java
│ │ │ │ ├── ConsoleReader.java
│ │ │ │ ├── ConsoleWriter.java
│ │ │ │ ├── DialogModel.java
│ │ │ │ ├── IOConsole.java
│ │ │ │ ├── IODialog.java
│ │ │ │ ├── IOModel.java
│ │ │ │ ├── StandardConsoleModel.java
│ │ │ │ ├── SwingDialogModel.java
│ │ │ │ ├── SystemConsole.java
│ │ │ │ └── SystemConsoleModel.java
│ │ │ ├── program/
│ │ │ │ ├── AppletStarter.java
│ │ │ │ ├── CommandLineProgram.java
│ │ │ │ ├── CommandLineProgramLoader.java
│ │ │ │ ├── ConsoleProgram.java
│ │ │ │ ├── DefaultActionListener.java
│ │ │ │ ├── DialogProgram.java
│ │ │ │ ├── GObjectProgram.java
│ │ │ │ ├── GProgramListener.java
│ │ │ │ ├── GraphicsProgram.java
│ │ │ │ ├── OldStyleCheckBoxMenuItem.java
│ │ │ │ ├── OldStyleMenuItem.java
│ │ │ │ ├── Program.java
│ │ │ │ ├── ProgramActionListener.java
│ │ │ │ ├── ProgramAppletStub.java
│ │ │ │ ├── ProgramContentPaneLayout.java
│ │ │ │ ├── ProgramFrame.java
│ │ │ │ ├── ProgramMenuBar.java
│ │ │ │ ├── ProgramMenuBarListener.java
│ │ │ │ ├── ProgramStartupListener.java
│ │ │ │ └── ProgramWindowListener.java
│ │ │ └── util/
│ │ │ ├── Animator.java
│ │ │ ├── BMPImageSaver.java
│ │ │ ├── Base64OutputStream.java
│ │ │ ├── CancelledException.java
│ │ │ ├── DOSCommandLine.java
│ │ │ ├── DirectGif89Frame.java
│ │ │ ├── EPSImageSaver.java
│ │ │ ├── EmptyContainer.java
│ │ │ ├── ErrorException.java
│ │ │ ├── ExportAppletDialog.java
│ │ │ ├── FileChooserFilter.java
│ │ │ ├── GIF89ImageSaver.java
│ │ │ ├── GIFImageSaver.java
│ │ │ ├── Gif89Encoder.java
│ │ │ ├── Gif89Frame.java
│ │ │ ├── Gif89Put.java
│ │ │ ├── GifColorTable.java
│ │ │ ├── GifPixelsEncoder.java
│ │ │ ├── HexByteOutputStream.java
│ │ │ ├── HexInputStream.java
│ │ │ ├── ImageSaver.java
│ │ │ ├── IndexGif89Frame.java
│ │ │ ├── JPEGImageSaver.java
│ │ │ ├── JPGImageSaver.java
│ │ │ ├── JTFTools.java
│ │ │ ├── MailStream.java
│ │ │ ├── MediaTools.java
│ │ │ ├── NullAudioClip.java
│ │ │ ├── NullOutputStream.java
│ │ │ ├── OptionTable.java
│ │ │ ├── PICImageSaver.java
│ │ │ ├── PICTImageSaver.java
│ │ │ ├── PNGImageSaver.java
│ │ │ ├── Platform.java
│ │ │ ├── ProgressBarDialog.java
│ │ │ ├── RTFImageSaver.java
│ │ │ ├── RandomGenerator.java
│ │ │ ├── ReverseColorMap.java
│ │ │ ├── SecurityManagerThatFails.java
│ │ │ ├── SoundClip.java
│ │ │ ├── SoundPlayer.java
│ │ │ ├── SpeedBarListener.java
│ │ │ ├── SubmitOptions.java
│ │ │ ├── SunAudioClip.java
│ │ │ ├── SwingTimer.java
│ │ │ ├── TIFFImageSaver.java
│ │ │ ├── TIFImageSaver.java
│ │ │ ├── ThreadedMenuAction.java
│ │ │ └── TokenScanner.java
│ │ ├── spl.jar
│ │ └── stanford/
│ │ └── spl/
│ │ ├── File_openFileDialog.java
│ │ ├── G3DRect_create.java
│ │ ├── G3DRect_setRaised.java
│ │ ├── GArc_create.java
│ │ ├── GArc_setFrameRectangle.java
│ │ ├── GArc_setStartAngle.java
│ │ ├── GArc_setSweepAngle.java
│ │ ├── GButton.java
│ │ ├── GButton_create.java
│ │ ├── GCheckBox.java
│ │ ├── GCheckBox_create.java
│ │ ├── GCheckBox_isSelected.java
│ │ ├── GCheckBox_setSelected.java
│ │ ├── GChooser.java
│ │ ├── GChooser_addItem.java
│ │ ├── GChooser_create.java
│ │ ├── GChooser_getSelectedItem.java
│ │ ├── GChooser_setSelectedItem.java
│ │ ├── GCompound_add.java
│ │ ├── GCompound_create.java
│ │ ├── GEvent_getNextEvent.java
│ │ ├── GEvent_waitForEvent.java
│ │ ├── GImage_create.java
│ │ ├── GInteractor.java
│ │ ├── GInteractor_getSize.java
│ │ ├── GInteractor_setActionCommand.java
│ │ ├── GLabel_create.java
│ │ ├── GLabel_getFontAscent.java
│ │ ├── GLabel_getFontDescent.java
│ │ ├── GLabel_getGLabelSize.java
│ │ ├── GLabel_setFont.java
│ │ ├── GLabel_setLabel.java
│ │ ├── GLine_create.java
│ │ ├── GLine_setEndPoint.java
│ │ ├── GLine_setStartPoint.java
│ │ ├── GObject_contains.java
│ │ ├── GObject_delete.java
│ │ ├── GObject_getBounds.java
│ │ ├── GObject_remove.java
│ │ ├── GObject_rotate.java
│ │ ├── GObject_scale.java
│ │ ├── GObject_sendBackward.java
│ │ ├── GObject_sendForward.java
│ │ ├── GObject_sendToBack.java
│ │ ├── GObject_sendToFront.java
│ │ ├── GObject_setColor.java
│ │ ├── GObject_setFillColor.java
│ │ ├── GObject_setFilled.java
│ │ ├── GObject_setLineWidth.java
│ │ ├── GObject_setLocation.java
│ │ ├── GObject_setSize.java
│ │ ├── GObject_setVisible.java
│ │ ├── GOval_create.java
│ │ ├── GPolygon_addVertex.java
│ │ ├── GPolygon_create.java
│ │ ├── GRect_create.java
│ │ ├── GRoundRect_create.java
│ │ ├── GSlider.java
│ │ ├── GSlider_create.java
│ │ ├── GSlider_getValue.java
│ │ ├── GSlider_setValue.java
│ │ ├── GTextField.java
│ │ ├── GTextField_create.java
│ │ ├── GTextField_getText.java
│ │ ├── GTextField_setText.java
│ │ ├── GTimer.java
│ │ ├── GTimer_create.java
│ │ ├── GTimer_deleteTimer.java
│ │ ├── GTimer_pause.java
│ │ ├── GTimer_startTimer.java
│ │ ├── GTimer_stopTimer.java
│ │ ├── GWindow_addToRegion.java
│ │ ├── GWindow_clear.java
│ │ ├── GWindow_close.java
│ │ ├── GWindow_create.java
│ │ ├── GWindow_delete.java
│ │ ├── GWindow_draw.java
│ │ ├── GWindow_exitGraphics.java
│ │ ├── GWindow_getScreenHeight.java
│ │ ├── GWindow_getScreenWidth.java
│ │ ├── GWindow_repaint.java
│ │ ├── GWindow_requestFocus.java
│ │ ├── GWindow_setRegionAlignment.java
│ │ ├── GWindow_setResizable.java
│ │ ├── GWindow_setTitle.java
│ │ ├── GWindow_setVisible.java
│ │ ├── JBECanvas.java
│ │ ├── JBEConsole.java
│ │ ├── JBEConsole_clear.java
│ │ ├── JBEConsole_getLine.java
│ │ ├── JBEConsole_print.java
│ │ ├── JBEConsole_println.java
│ │ ├── JBEConsole_setFont.java
│ │ ├── JBEConsole_setSize.java
│ │ ├── JBEDummyProgram.java
│ │ ├── JBEFileFilter.java
│ │ ├── JBELabel.java
│ │ ├── JBEMenuBar.java
│ │ ├── JBEWindow.java
│ │ ├── Sound_create.java
│ │ ├── Sound_delete.java
│ │ ├── Sound_play.java
│ │ ├── TopCompound.java
│ │ └── TopCompound_create.java
│ ├── JavaTaskForce/
│ │ ├── Makefile
│ │ ├── acm.jar
│ │ └── src/
│ │ └── acm/
│ │ ├── graphics/
│ │ │ ├── G3DRect.java
│ │ │ ├── GArc.java
│ │ │ ├── GCanvas.java
│ │ │ ├── GCompound.java
│ │ │ ├── GContainer.java
│ │ │ ├── GDimension.java
│ │ │ ├── GFillable.java
│ │ │ ├── GImage.java
│ │ │ ├── GLabel.java
│ │ │ ├── GLine.java
│ │ │ ├── GMath.java
│ │ │ ├── GObject.java
│ │ │ ├── GOval.java
│ │ │ ├── GPen.java
│ │ │ ├── GPoint.java
│ │ │ ├── GPolygon.java
│ │ │ ├── GRect.java
│ │ │ ├── GRectangle.java
│ │ │ ├── GResizable.java
│ │ │ ├── GRoundRect.java
│ │ │ ├── GScalable.java
│ │ │ ├── GTurtle.java
│ │ │ └── package.html
│ │ ├── gui/
│ │ │ ├── DoubleField.java
│ │ │ ├── HPanel.java
│ │ │ ├── IntField.java
│ │ │ ├── TableConstraints.java
│ │ │ ├── TableLayout.java
│ │ │ ├── TablePanel.java
│ │ │ ├── VPanel.java
│ │ │ └── package.html
│ │ ├── io/
│ │ │ ├── IOConsole.java
│ │ │ ├── IODialog.java
│ │ │ ├── IOModel.java
│ │ │ └── package.html
│ │ ├── program/
│ │ │ ├── CommandLineProgram.java
│ │ │ ├── ConsoleProgram.java
│ │ │ ├── DialogProgram.java
│ │ │ ├── GraphicsProgram.java
│ │ │ ├── Program.java
│ │ │ ├── ProgramMenuBar.java
│ │ │ └── package.html
│ │ └── util/
│ │ ├── Animator.java
│ │ ├── CancelledException.java
│ │ ├── ErrorException.java
│ │ ├── FileChooserFilter.java
│ │ ├── JTFTools.java
│ │ ├── MediaTools.java
│ │ ├── MovieClip.java
│ │ ├── OptionTable.java
│ │ ├── Platform.java
│ │ ├── RandomGenerator.java
│ │ ├── SoundClip.java
│ │ ├── SwingTimer.java
│ │ └── package.html
│ ├── Karel/
│ │ ├── .classpath
│ │ ├── .project
│ │ ├── .settings/
│ │ │ └── org.eclipse.jdt.core.prefs
│ │ ├── lib/
│ │ │ └── spl.jar
│ │ ├── obf/
│ │ │ ├── copyjar.sh
│ │ │ ├── karel.jar
│ │ │ └── makejar.sh
│ │ ├── src/
│ │ │ └── stanford/
│ │ │ └── karel/
│ │ │ ├── CardPanel.java
│ │ │ ├── EmptyCanvas.java
│ │ │ ├── Event.java
│ │ │ ├── HPanel.java
│ │ │ ├── HVLayout.java
│ │ │ ├── Karel.java
│ │ │ ├── KarelBugIcon.java
│ │ │ ├── KarelControlPanel.java
│ │ │ ├── KarelErrorCanvas.java
│ │ │ ├── KarelErrorDialog.java
│ │ │ ├── KarelProgram.java
│ │ │ ├── KarelResizer.java
│ │ │ ├── KarelWorld.java
│ │ │ ├── KarelWorldEditor.java
│ │ │ ├── KarelWorldMonitor.java
│ │ │ ├── LoadWorldDialog.java
│ │ │ ├── NewWorldDialog.java
│ │ │ ├── OptionTable.java
│ │ │ ├── ResizeCanvas.java
│ │ │ ├── ResizeLayout.java
│ │ │ ├── SuperKarel.java
│ │ │ ├── VPanel.java
│ │ │ └── Version.java
│ │ └── worlds/
│ │ ├── 16x20.w
│ │ ├── 1x8.w
│ │ ├── 1x9-marty.w
│ │ ├── 3x9-marty.w
│ │ ├── 40x40.w
│ │ ├── 6x5.w
│ │ ├── 7x7.w
│ │ ├── 8x1.w
│ │ ├── 8x8.w
│ │ ├── Checkerboard.w
│ │ ├── CollectNewspaper.w
│ │ ├── MidpointFinder.w
│ │ ├── SampleQuad1.w
│ │ ├── SampleQuad2.w
│ │ └── StoneMason.w
│ ├── README.md
│ ├── Scripts/
│ │ ├── extract-cpplib.pl
│ │ ├── make-autograder_zip.sh
│ │ ├── make-image-strip.sh
│ │ ├── make-stanfordcpplib_zip.sh
│ │ ├── pack-autograder-lib-into-single-cpp-file.sh
│ │ ├── pack-lib-into-single-cpp-file.sh
│ │ └── zip-cpplib.sh
│ ├── StanfordCPPLib_CodeStepByStep_Project/
│ │ ├── output/
│ │ │ ├── expected-output-1.txt
│ │ │ └── input-1.txt
│ │ ├── res/
│ │ │ ├── .empty.txt
│ │ │ ├── res file with spaces.txt
│ │ │ ├── resfile1.txt
│ │ │ ├── resfile2.doc
│ │ │ └── resfile3.html
│ │ ├── src/
│ │ │ ├── ArrayIntList.cpp
│ │ │ ├── ArrayIntList.h
│ │ │ ├── BinaryTree.cpp
│ │ │ ├── BinaryTree.h
│ │ │ ├── BinaryTreeMap.cpp
│ │ │ ├── BinaryTreeMap.h
│ │ │ ├── BinaryTreeMapNode.h
│ │ │ ├── BinaryTreeNode.h
│ │ │ ├── HashTableMap.h
│ │ │ ├── HashTableSet.cpp
│ │ │ ├── HashTableSet.h
│ │ │ ├── HeapPriorityQueue.cpp
│ │ │ ├── HeapPriorityQueue.h
│ │ │ ├── LinkedIntList.cpp
│ │ │ ├── LinkedIntList.h
│ │ │ ├── codestepbystep.cpp
│ │ │ ├── codestepbystep.h
│ │ │ ├── cppdoc.c
│ │ │ ├── cppdoc.css
│ │ │ ├── fillcomments.c
│ │ │ ├── graphsupport.cpp
│ │ │ ├── graphsupport.h
│ │ │ ├── mainfunc-biginteger.cpp
│ │ │ ├── mainfunc-functional.cpp
│ │ │ ├── mainfunc-iurlstream.cpp
│ │ │ ├── mainfunc-menu.cpp
│ │ │ ├── mainfunc-process.cpp
│ │ │ ├── mainfunc-qt-2dgraphics.cpp
│ │ │ ├── mainfunc-qt-console.cpp
│ │ │ ├── mainfunc-qt-layout.cpp
│ │ │ ├── mainfunc-qt-table.cpp
│ │ │ ├── mainfunc-qt-widgets.cpp
│ │ │ ├── mainfunc.cpp
│ │ │ ├── mainfunc2.cpp
│ │ │ ├── mainfunc3.cpp
│ │ │ ├── readme.txt
│ │ │ ├── searching.cpp
│ │ │ ├── searchingsorting.h
│ │ │ ├── sorting.cpp
│ │ │ ├── types.cpp
│ │ │ └── types.h
│ │ └── stanfordcpplib-codestepbystep.pro
│ ├── StanfordCPPLib_QtCreatorProject/
│ │ ├── input/
│ │ │ ├── input-1.txt
│ │ │ ├── input-2.txt
│ │ │ └── input-subdir/
│ │ │ └── input-subdir-1.txt
│ │ ├── lib/
│ │ │ └── readme.txt
│ │ ├── output/
│ │ │ ├── expected-output-1.txt
│ │ │ └── expected-output-2.txt
│ │ ├── res/
│ │ │ ├── .empty.txt
│ │ │ ├── res file with spaces.txt
│ │ │ ├── resfile1.txt
│ │ │ ├── resfile2.doc
│ │ │ └── resfile3.html
│ │ ├── src/
│ │ │ ├── mainfunc.cpp
│ │ │ ├── multimain/
│ │ │ │ ├── mainfunc-biginteger.cpp
│ │ │ │ ├── mainfunc-functional.cpp
│ │ │ │ ├── mainfunc-iurlstream.cpp
│ │ │ │ ├── mainfunc-menu.cpp
│ │ │ │ ├── mainfunc-process.cpp
│ │ │ │ ├── mainfunc-qt-2dgraphics.cpp
│ │ │ │ ├── mainfunc-qt-console.cpp
│ │ │ │ ├── mainfunc-qt-diffimage.cpp
│ │ │ │ ├── mainfunc-qt-layout.cpp
│ │ │ │ ├── mainfunc-qt-table.cpp
│ │ │ │ ├── mainfunc-qt-widgets.cpp
│ │ │ │ ├── mainfunc2.cpp
│ │ │ │ └── mainfunc3.cpp
│ │ │ └── readme.txt
│ │ └── stanfordcpplib.pro
│ ├── autograder-empty-project/
│ │ ├── autograder-empty-project.pro
│ │ ├── lib/
│ │ │ └── StanfordCPPLib/
│ │ │ ├── autograder/
│ │ │ │ ├── assertions.h
│ │ │ │ ├── autograder.h
│ │ │ │ ├── autogradercompat.h
│ │ │ │ ├── autogradertest.h
│ │ │ │ ├── consoleautograder.h
│ │ │ │ ├── date.h
│ │ │ │ ├── gtest-marty.h
│ │ │ │ ├── gtest.h
│ │ │ │ ├── guiautograder.h
│ │ │ │ ├── ioutils.h
│ │ │ │ ├── stylecheck.h
│ │ │ │ ├── testresultprinter.h
│ │ │ │ ├── unittestdetails.h
│ │ │ │ └── versionautograder.h
│ │ │ ├── collections/
│ │ │ │ ├── basicgraph.h
│ │ │ │ ├── collections.h
│ │ │ │ ├── dawglexicon.h
│ │ │ │ ├── deque.h
│ │ │ │ ├── functional.h
│ │ │ │ ├── graph.h
│ │ │ │ ├── grid.h
│ │ │ │ ├── gridlocation.h
│ │ │ │ ├── hashcode.h
│ │ │ │ ├── hashmap.h
│ │ │ │ ├── hashset.h
│ │ │ │ ├── lexicon.h
│ │ │ │ ├── linkedhashmap.h
│ │ │ │ ├── linkedhashset.h
│ │ │ │ ├── linkedlist.h
│ │ │ │ ├── map.h
│ │ │ │ ├── pqueue.h
│ │ │ │ ├── priorityqueue.h
│ │ │ │ ├── queue.h
│ │ │ │ ├── set.h
│ │ │ │ ├── shuffle.h
│ │ │ │ ├── sparsegrid.h
│ │ │ │ ├── stack.h
│ │ │ │ ├── stl.h
│ │ │ │ └── vector.h
│ │ │ ├── graphics/
│ │ │ │ ├── console.h
│ │ │ │ ├── consoletext.h
│ │ │ │ ├── gbrowserpane.h
│ │ │ │ ├── gbufferedimage.h
│ │ │ │ ├── gbutton.h
│ │ │ │ ├── gcanvas.h
│ │ │ │ ├── gcheckbox.h
│ │ │ │ ├── gchooser.h
│ │ │ │ ├── gclipboard.h
│ │ │ │ ├── gcolor.h
│ │ │ │ ├── gcolorchooser.h
│ │ │ │ ├── gconsolewindow.h
│ │ │ │ ├── gcontainer.h
│ │ │ │ ├── gdiffgui.h
│ │ │ │ ├── gdiffimage.h
│ │ │ │ ├── gdownloader.h
│ │ │ │ ├── gdrawingsurface.h
│ │ │ │ ├── gevent.h
│ │ │ │ ├── geventqueue.h
│ │ │ │ ├── gevents.h
│ │ │ │ ├── gfilechooser.h
│ │ │ │ ├── gfont.h
│ │ │ │ ├── gfontchooser.h
│ │ │ │ ├── gformattedpane.h
│ │ │ │ ├── ginputpanel.h
│ │ │ │ ├── ginteractor.h
│ │ │ │ ├── ginteractors.h
│ │ │ │ ├── glabel.h
│ │ │ │ ├── glayout.h
│ │ │ │ ├── gobjects.h
│ │ │ │ ├── gobservable.h
│ │ │ │ ├── goptionpane.h
│ │ │ │ ├── gradiobutton.h
│ │ │ │ ├── gscrollbar.h
│ │ │ │ ├── gscrollpane.h
│ │ │ │ ├── gslider.h
│ │ │ │ ├── gspacer.h
│ │ │ │ ├── gtable.h
│ │ │ │ ├── gtextarea.h
│ │ │ │ ├── gtextfield.h
│ │ │ │ ├── gthread.h
│ │ │ │ ├── gtimer.h
│ │ │ │ ├── gtypes.h
│ │ │ │ ├── gwindow.h
│ │ │ │ └── qtgui.h
│ │ │ ├── io/
│ │ │ │ ├── base64.h
│ │ │ │ ├── bitstream.h
│ │ │ │ ├── filelib.h
│ │ │ │ ├── plainconsole.h
│ │ │ │ ├── rapidxml.h
│ │ │ │ ├── server.h
│ │ │ │ ├── simpio.h
│ │ │ │ ├── tokenscanner.h
│ │ │ │ ├── urlstream.h
│ │ │ │ └── xmlutils.h
│ │ │ ├── private/
│ │ │ │ ├── consolestreambuf.h
│ │ │ │ ├── echoinputstreambuf.h
│ │ │ │ ├── foreachpatch.h
│ │ │ │ ├── forwardingstreambuf.h
│ │ │ │ ├── headless.h
│ │ │ │ ├── init.h
│ │ │ │ ├── initstudent.h
│ │ │ │ ├── limitoutputstreambuf.h
│ │ │ │ ├── multimain.h
│ │ │ │ ├── precompiled.h
│ │ │ │ ├── randompatch.h
│ │ │ │ ├── static.h
│ │ │ │ └── version.h
│ │ │ ├── spl.cpp
│ │ │ ├── splautograder.cpp
│ │ │ ├── system/
│ │ │ │ ├── call_stack.h
│ │ │ │ ├── error.h
│ │ │ │ ├── exceptions.h
│ │ │ │ └── os.h
│ │ │ └── util/
│ │ │ ├── bigfloat.h
│ │ │ ├── biginteger.h
│ │ │ ├── complex.h
│ │ │ ├── diff.h
│ │ │ ├── direction.h
│ │ │ ├── foreach.h
│ │ │ ├── gmath.h
│ │ │ ├── intrange.h
│ │ │ ├── managed.h
│ │ │ ├── memory.h
│ │ │ ├── note.h
│ │ │ ├── observable.h
│ │ │ ├── point.h
│ │ │ ├── random.h
│ │ │ ├── recursion.h
│ │ │ ├── regexpr.h
│ │ │ ├── require.h
│ │ │ ├── sound.h
│ │ │ ├── stringutils.h
│ │ │ ├── strlib.h
│ │ │ └── timer.h
│ │ ├── output/
│ │ │ ├── expected-output-1.txt
│ │ │ └── input-1.txt
│ │ ├── res/
│ │ │ └── readme.txt
│ │ └── src/
│ │ ├── ArrayIntList.cpp
│ │ ├── ArrayIntList.h
│ │ ├── BinaryTree.cpp
│ │ ├── BinaryTree.h
│ │ ├── BinaryTreeMap.cpp
│ │ ├── BinaryTreeMap.h
│ │ ├── BinaryTreeMapNode.h
│ │ ├── BinaryTreeNode.h
│ │ ├── HashTableMap.h
│ │ ├── HashTableSet.cpp
│ │ ├── HashTableSet.h
│ │ ├── HeapPriorityQueue.cpp
│ │ ├── HeapPriorityQueue.h
│ │ ├── LinkedIntList.cpp
│ │ ├── LinkedIntList.h
│ │ ├── codestepbystep.cpp
│ │ ├── codestepbystep.h
│ │ ├── cppdoc.c
│ │ ├── cppdoc.css
│ │ ├── fillcomments.c
│ │ ├── graphsupport.cpp
│ │ ├── graphsupport.h
│ │ ├── mainfunc-biginteger.cpp
│ │ ├── mainfunc-functional.cpp
│ │ ├── mainfunc-iurlstream.cpp
│ │ ├── mainfunc-menu.cpp
│ │ ├── mainfunc-process.cpp
│ │ ├── mainfunc-qt-2dgraphics.cpp
│ │ ├── mainfunc-qt-console.cpp
│ │ ├── mainfunc-qt-layout.cpp
│ │ ├── mainfunc-qt-table.cpp
│ │ ├── mainfunc-qt-widgets.cpp
│ │ ├── mainfunc.cpp
│ │ ├── readme.txt
│ │ ├── searching.cpp
│ │ ├── searchingsorting.h
│ │ ├── sorting.cpp
│ │ ├── types.cpp
│ │ └── types.h
│ ├── bugs/
│ │ └── vector_race_condition_ali.txt
│ ├── cppdoc/
│ │ ├── BasicGraph-class.html
│ │ ├── DawgLexicon-class.html
│ │ ├── Deque-class.html
│ │ ├── Edge-class.html
│ │ ├── ErrorException-class.html
│ │ ├── G3DRect-class-old.html
│ │ ├── G3DRect-class.html
│ │ ├── GActionEvent-class-old.html
│ │ ├── GActionEvent.html
│ │ ├── GArc-class-old.html
│ │ ├── GArc-class.html
│ │ ├── GBufferedImage-class-old.html
│ │ ├── GBufferedImage-class.html
│ │ ├── GButton-class-old.html
│ │ ├── GButton-class.html
│ │ ├── GCheckBox-class-old.html
│ │ ├── GCheckBox-class.html
│ │ ├── GChooser-class-old.html
│ │ ├── GChooser-class.html
│ │ ├── GCompound-class-old.html
│ │ ├── GCompound-class.html
│ │ ├── GDimension-class-old.html
│ │ ├── GDimension-class.html
│ │ ├── GEvent-class-old.html
│ │ ├── GEvent-class.html
│ │ ├── GImage-class-old.html
│ │ ├── GImage-class.html
│ │ ├── GInteractor-class-old.html
│ │ ├── GInteractor-class.html
│ │ ├── GKeyEvent-class-old.html
│ │ ├── GKeyEvent-class.html
│ │ ├── GLabel-class-old.html
│ │ ├── GLabel-class.html
│ │ ├── GLine-class-old.html
│ │ ├── GLine-class.html
│ │ ├── GMouseEvent-class-old.html
│ │ ├── GMouseEvent-class.html
│ │ ├── GObject-class-old.html
│ │ ├── GObject-class.html
│ │ ├── GOptionPane-class-old.html
│ │ ├── GOptionPane-class.html
│ │ ├── GOval-class-old.html
│ │ ├── GOval-class.html
│ │ ├── GPoint-class-old.html
│ │ ├── GPoint-class.html
│ │ ├── GPolygon-class-old.html
│ │ ├── GPolygon-class.html
│ │ ├── GRect-class-old.html
│ │ ├── GRect-class.html
│ │ ├── GRectangle-class-old.html
│ │ ├── GRectangle-class.html
│ │ ├── GRoundRect-class-old.html
│ │ ├── GRoundRect-class.html
│ │ ├── GSlider-class-old.html
│ │ ├── GSlider-class.html
│ │ ├── GTable-class-old.html
│ │ ├── GTable-class.html
│ │ ├── GTableEvent-class-old.html
│ │ ├── GTableEvent-class.html
│ │ ├── GText-class.html
│ │ ├── GTextField-class-old.html
│ │ ├── GTextField-class.html
│ │ ├── GTimer-class-old.html
│ │ ├── GTimer-class.html
│ │ ├── GTimerEvent-class-old.html
│ │ ├── GTimerEvent-class.html
│ │ ├── GWindow-class-old.html
│ │ ├── GWindow-class.html
│ │ ├── GWindowEvent-class-old.html
│ │ ├── GWindowEvent-class.html
│ │ ├── Graph-class.html
│ │ ├── Grid-class.html
│ │ ├── HashMap-class.html
│ │ ├── HashSet-class.html
│ │ ├── Lexicon-class.html
│ │ ├── LinkedHashMap-class.html
│ │ ├── LinkedHashSet-class.html
│ │ ├── LinkedList-class.html
│ │ ├── Lock-class.html
│ │ ├── Makefile
│ │ ├── Map-class.html
│ │ ├── Point-class.html
│ │ ├── PriorityQueue-class.html
│ │ ├── Queue-class.html
│ │ ├── Set-class.html
│ │ ├── Sound-class.html
│ │ ├── SparseGrid-class.html
│ │ ├── Stack-class.html
│ │ ├── Thread-class.html
│ │ ├── Timer-class.html
│ │ ├── TokenScanner-class.html
│ │ ├── Vector-class.html
│ │ ├── Vertex-class.html
│ │ ├── basicgraph.html
│ │ ├── bitstream.html
│ │ ├── console.html
│ │ ├── cppdoc.css
│ │ ├── dawglexicon.html
│ │ ├── deque.html
│ │ ├── direction.html
│ │ ├── dist/
│ │ │ ├── CURRENTVERSION_CPPLIB.txt
│ │ │ ├── CURRENTVERSION_SPLJAR.txt
│ │ │ ├── autograder-empty-project.pro
│ │ │ ├── empty-project.pro
│ │ │ ├── sample-project.pro
│ │ │ └── spl.jar
│ │ ├── error.html
│ │ ├── filelib.html
│ │ ├── foreach.html
│ │ ├── functions.html
│ │ ├── gbufferedimage.html
│ │ ├── gevents.html
│ │ ├── ginteractors.html
│ │ ├── gmath.html
│ │ ├── gobjects.html
│ │ ├── goptionpane.html
│ │ ├── graph.html
│ │ ├── grid.html
│ │ ├── gtable.html
│ │ ├── gtimer.html
│ │ ├── gtypes.html
│ │ ├── gwindow.html
│ │ ├── hashmap.html
│ │ ├── hashset.html
│ │ ├── ibitstream-class.html
│ │ ├── ifbitstream-class.html
│ │ ├── index.html
│ │ ├── istringbitstream-class.html
│ │ ├── lexicon.html
│ │ ├── linkedhashmap.html
│ │ ├── linkedhashset.html
│ │ ├── linkedlist.html
│ │ ├── map.html
│ │ ├── modifications.html
│ │ ├── obitstream-class.html
│ │ ├── ofbitstream-class.html
│ │ ├── ostringbitstream-class.html
│ │ ├── point.html
│ │ ├── pqueue.html
│ │ ├── queue.html
│ │ ├── random.html
│ │ ├── rationale.css
│ │ ├── rationale.html
│ │ ├── regexpr.html
│ │ ├── set.html
│ │ ├── shuffle.html
│ │ ├── simpio.html
│ │ ├── sorttable.js
│ │ ├── sound.html
│ │ ├── sparsegrid.html
│ │ ├── spl.jar
│ │ ├── stack.html
│ │ ├── strlib.html
│ │ ├── thread.html
│ │ ├── timer.html
│ │ ├── tokenscanner.html
│ │ ├── variables.html
│ │ └── vector.html
│ ├── cpplib_old_eroberts/
│ │ ├── cppdoc/
│ │ │ ├── Makefile
│ │ │ ├── appsection.c
│ │ │ ├── cppdoc.c
│ │ │ ├── cppdoc.css
│ │ │ ├── doc/
│ │ │ │ ├── EnumRange-class.html
│ │ │ │ ├── ErrorException-class.html
│ │ │ │ ├── GActionEvent-class.html
│ │ │ │ ├── GArc-class.html
│ │ │ │ ├── GCompound-class.html
│ │ │ │ ├── GEvent-class.html
│ │ │ │ ├── GImage-class.html
│ │ │ │ ├── GKeyEvent-class.html
│ │ │ │ ├── GLabel-class.html
│ │ │ │ ├── GLine-class.html
│ │ │ │ ├── GMouseEvent-class.html
│ │ │ │ ├── GObject-class.html
│ │ │ │ ├── GOval-class.html
│ │ │ │ ├── GPoint-class.html
│ │ │ │ ├── GPolygon-class.html
│ │ │ │ ├── GRect-class.html
│ │ │ │ ├── GRectangle-class.html
│ │ │ │ ├── GTimerEvent-class.html
│ │ │ │ ├── GWindow-class.html
│ │ │ │ ├── GWindowEvent-class.html
│ │ │ │ ├── Graph-class.html
│ │ │ │ ├── Grid-class.html
│ │ │ │ ├── Lexicon-class.html
│ │ │ │ ├── Lock-class.html
│ │ │ │ ├── Map-class.html
│ │ │ │ ├── Point-class.html
│ │ │ │ ├── Queue-class.html
│ │ │ │ ├── Set-class.html
│ │ │ │ ├── Sound-class.html
│ │ │ │ ├── Stack-class.html
│ │ │ │ ├── Thread-class.html
│ │ │ │ ├── TokenScanner-class.html
│ │ │ │ ├── Vector-class.html
│ │ │ │ ├── cmpfn-h.html
│ │ │ │ ├── cmpfn.html
│ │ │ │ ├── console-h.html
│ │ │ │ ├── console.html
│ │ │ │ ├── cppdoc.css
│ │ │ │ ├── direction-h.html
│ │ │ │ ├── direction.html
│ │ │ │ ├── error-h.html
│ │ │ │ ├── error.html
│ │ │ │ ├── filelib-h.html
│ │ │ │ ├── filelib.html
│ │ │ │ ├── foreach-h.html
│ │ │ │ ├── foreach.html
│ │ │ │ ├── gevents-h.html
│ │ │ │ ├── gevents.html
│ │ │ │ ├── gobjects-h.html
│ │ │ │ ├── gobjects.html
│ │ │ │ ├── graph-h.html
│ │ │ │ ├── graph.html
│ │ │ │ ├── graphics-h.html
│ │ │ │ ├── graphics.html
│ │ │ │ ├── grid-h.html
│ │ │ │ ├── grid.html
│ │ │ │ ├── gtypes-h.html
│ │ │ │ ├── gtypes.html
│ │ │ │ ├── gwindow-h.html
│ │ │ │ ├── gwindow.html
│ │ │ │ ├── lexicon-h.html
│ │ │ │ ├── lexicon.html
│ │ │ │ ├── map-h.html
│ │ │ │ ├── map.html
│ │ │ │ ├── point-h.html
│ │ │ │ ├── point.html
│ │ │ │ ├── queue-h.html
│ │ │ │ ├── queue.html
│ │ │ │ ├── random-h.html
│ │ │ │ ├── random.html
│ │ │ │ ├── scanner-h.html
│ │ │ │ ├── scanner.html
│ │ │ │ ├── set-h.html
│ │ │ │ ├── set.html
│ │ │ │ ├── simpio-h.html
│ │ │ │ ├── simpio.html
│ │ │ │ ├── sound-h.html
│ │ │ │ ├── sound.html
│ │ │ │ ├── stack-h.html
│ │ │ │ ├── stack.html
│ │ │ │ ├── strlib-h.html
│ │ │ │ ├── strlib.html
│ │ │ │ ├── thread-h.html
│ │ │ │ ├── thread.html
│ │ │ │ ├── vector-h.html
│ │ │ │ └── vector.html
│ │ │ ├── fillcomments.c
│ │ │ ├── index.txt
│ │ │ ├── test.h
│ │ │ ├── test.html
│ │ │ └── testindex.html
│ │ └── cslib/
│ │ ├── Makefile
│ │ ├── bst.c
│ │ ├── bst.h
│ │ ├── charset.c
│ │ ├── charset.h
│ │ ├── cmdscan.c
│ │ ├── cmdscan.h
│ │ ├── cmpfn.c
│ │ ├── cmpfn.h
│ │ ├── cslib.c
│ │ ├── cslib.h
│ │ ├── cstest.c
│ │ ├── doc/
│ │ │ ├── Makefile
│ │ │ ├── bst-h.html
│ │ │ ├── bst.html
│ │ │ ├── charset-h.html
│ │ │ ├── charset.html
│ │ │ ├── cmdscan-h.html
│ │ │ ├── cmdscan.html
│ │ │ ├── cmpfn-h.html
│ │ │ ├── cmpfn.html
│ │ │ ├── cppdoc.css
│ │ │ ├── cslib-h.html
│ │ │ ├── cslib.html
│ │ │ ├── exception-h.html
│ │ │ ├── exception.html
│ │ │ ├── fastsexp-h.html
│ │ │ ├── fastsexp.html
│ │ │ ├── filelib-h.html
│ │ │ ├── filelib.html
│ │ │ ├── foreach-h.html
│ │ │ ├── foreach.html
│ │ │ ├── gcalloc-h.html
│ │ │ ├── gcalloc.html
│ │ │ ├── gcdebug-h.html
│ │ │ ├── gcdebug.html
│ │ │ ├── generic-h.html
│ │ │ ├── generic.html
│ │ │ ├── gevents-h.html
│ │ │ ├── gevents.html
│ │ │ ├── ginteractors-h.html
│ │ │ ├── ginteractors.html
│ │ │ ├── gmath-h.html
│ │ │ ├── gmath.html
│ │ │ ├── gobjects-h.html
│ │ │ ├── gobjects.html
│ │ │ ├── graph-h.html
│ │ │ ├── graph.html
│ │ │ ├── gtimer-h.html
│ │ │ ├── gtimer.html
│ │ │ ├── gtypes-h.html
│ │ │ ├── gtypes.html
│ │ │ ├── gwindow-h.html
│ │ │ ├── gwindow.html
│ │ │ ├── hashmap-h.html
│ │ │ ├── hashmap.html
│ │ │ ├── include/
│ │ │ │ └── package.html
│ │ │ ├── index.html
│ │ │ ├── iterator-h.html
│ │ │ ├── iterator.html
│ │ │ ├── itertype-h.html
│ │ │ ├── itertype.html
│ │ │ ├── lex-h.html
│ │ │ ├── lex.html
│ │ │ ├── loadobj-h.html
│ │ │ ├── loadobj.html
│ │ │ ├── map-h.html
│ │ │ ├── map.html
│ │ │ ├── options-h.html
│ │ │ ├── options.html
│ │ │ ├── pictures/
│ │ │ │ ├── GInteractorDiagrams/
│ │ │ │ │ ├── GCheckBox.html
│ │ │ │ │ ├── GChooser.html
│ │ │ │ │ └── GSlider.html
│ │ │ │ ├── GObjectDiagrams/
│ │ │ │ │ ├── GArcExamples.html
│ │ │ │ │ ├── GArcExamples.ps
│ │ │ │ │ ├── GArcGeometry.html
│ │ │ │ │ ├── GArcGeometry.ps
│ │ │ │ │ ├── GLabelGeometry.html
│ │ │ │ │ ├── GLabelGeometry.ps
│ │ │ │ │ ├── GPolygonExamples.ps
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── PacMan.html
│ │ │ │ │ ├── PacMan.ps
│ │ │ │ │ ├── StopSign.html
│ │ │ │ │ └── StopSign.ps
│ │ │ │ ├── HelloWorld/
│ │ │ │ │ ├── HelloWorld.ps
│ │ │ │ │ └── Makefile
│ │ │ │ └── TypeHierarchies/
│ │ │ │ ├── GEventHierarchy.html
│ │ │ │ ├── GEventHierarchy.ps
│ │ │ │ ├── GInteractorHierarchy.html
│ │ │ │ ├── GInteractorHierarchy.ps
│ │ │ │ ├── GObjectHierarchy.html
│ │ │ │ ├── GObjectHierarchy.ps
│ │ │ │ ├── Makefile
│ │ │ │ └── hierarchy.ps
│ │ │ ├── platform-h.html
│ │ │ ├── platform.html
│ │ │ ├── pqueue-h.html
│ │ │ ├── pqueue.html
│ │ │ ├── queue-h.html
│ │ │ ├── queue.html
│ │ │ ├── random-h.html
│ │ │ ├── random.html
│ │ │ ├── ref-h.html
│ │ │ ├── ref.html
│ │ │ ├── scanner-h.html
│ │ │ ├── scanner.html
│ │ │ ├── set-h.html
│ │ │ ├── set.html
│ │ │ ├── sexp-h.html
│ │ │ ├── sexp.html
│ │ │ ├── sexpcdt-h.html
│ │ │ ├── sexpcdt.html
│ │ │ ├── simpio-h.html
│ │ │ ├── simpio.html
│ │ │ ├── sound-h.html
│ │ │ ├── sound.html
│ │ │ ├── stack-h.html
│ │ │ ├── stack.html
│ │ │ ├── strlib-h.html
│ │ │ ├── strlib.html
│ │ │ ├── symtab-h.html
│ │ │ ├── symtab.html
│ │ │ ├── thread-h.html
│ │ │ ├── thread.html
│ │ │ ├── tokenscanner-h.html
│ │ │ ├── tokenscanner.html
│ │ │ ├── unittest-h.html
│ │ │ ├── unittest.html
│ │ │ ├── vector-h.html
│ │ │ └── vector.html
│ │ ├── exception.c
│ │ ├── exception.h
│ │ ├── filelib.c
│ │ ├── filelib.h
│ │ ├── foreach.c
│ │ ├── foreach.h
│ │ ├── gccx
│ │ ├── generic.c
│ │ ├── generic.h
│ │ ├── gevents.c
│ │ ├── gevents.h
│ │ ├── ginteractors.c
│ │ ├── ginteractors.h
│ │ ├── gmath.c
│ │ ├── gmath.h
│ │ ├── gobjects.c
│ │ ├── gobjects.h
│ │ ├── graph.c
│ │ ├── graph.h
│ │ ├── gtimer.c
│ │ ├── gtimer.h
│ │ ├── gtransform.c
│ │ ├── gtransform.h
│ │ ├── gtypes.c
│ │ ├── gtypes.h
│ │ ├── gwindow.c
│ │ ├── gwindow.h
│ │ ├── hashmap.c
│ │ ├── hashmap.h
│ │ ├── iterator.c
│ │ ├── iterator.h
│ │ ├── itertype.h
│ │ ├── loadobj.c
│ │ ├── loadobj.h
│ │ ├── map.c
│ │ ├── map.h
│ │ ├── options.c
│ │ ├── options.h
│ │ ├── platform.c
│ │ ├── platform.h
│ │ ├── posixthread.c
│ │ ├── pqueue.c
│ │ ├── pqueue.h
│ │ ├── private/
│ │ │ ├── randompatch.h
│ │ │ └── tokenpatch.h
│ │ ├── queue.c
│ │ ├── queue.h
│ │ ├── random.c
│ │ ├── random.h
│ │ ├── ref.c
│ │ ├── ref.h
│ │ ├── set.c
│ │ ├── set.h
│ │ ├── simpio.c
│ │ ├── simpio.h
│ │ ├── sound.c
│ │ ├── sound.h
│ │ ├── stack.c
│ │ ├── stack.h
│ │ ├── strbuf.c
│ │ ├── strbuf.h
│ │ ├── strlib.c
│ │ ├── strlib.h
│ │ ├── thread.c
│ │ ├── thread.h
│ │ ├── todo.txt
│ │ ├── tokenscanner.c
│ │ ├── tokenscanner.h
│ │ ├── unittest.c
│ │ ├── unittest.h
│ │ ├── unixfile.c
│ │ ├── unixfile.e
│ │ ├── vector.c
│ │ ├── vector.h
│ │ ├── winfile.c
│ │ └── winthread.c
│ ├── doc/
│ │ ├── customdoxygen.css
│ │ ├── doxygen.ini
│ │ └── postprocess-doc-file.pl
│ ├── docs/
│ │ └── _old/
│ │ ├── console-h.html
│ │ ├── direction-h.html
│ │ ├── error-h.html
│ │ ├── filelib-h.html
│ │ ├── foreach-h.html
│ │ ├── gevents-h.html
│ │ ├── ginteractors-h.html
│ │ ├── gmath-h.html
│ │ ├── gobjects-h.html
│ │ ├── graph-h.html
│ │ ├── grid-h.html
│ │ ├── gtimer-h.html
│ │ ├── gtypes-h.html
│ │ ├── gwindow-h.html
│ │ ├── hashmap-h.html
│ │ ├── hashset-h.html
│ │ ├── lexicon-h.html
│ │ ├── map-h.html
│ │ ├── point-h.html
│ │ ├── pqueue-h.html
│ │ ├── queue-h.html
│ │ ├── random-h.html
│ │ ├── set-h.html
│ │ ├── simpio-h.html
│ │ ├── sound-h.html
│ │ ├── stack-h.html
│ │ ├── strlib-h.html
│ │ ├── thread-h.html
│ │ ├── tokenscanner-h.html
│ │ └── vector-h.html
│ ├── sample-project/
│ │ ├── res/
│ │ │ └── readme.txt
│ │ ├── sample-project.pro
│ │ └── src/
│ │ ├── hello.cpp
│ │ └── hello.h
│ ├── spl.cpp
│ ├── spl.h
│ ├── spl_cpp_header_autograder_text.txt
│ └── spl_cpp_header_text.txt
├── BothLibraryWelcome.pro
├── DebugHelper/
│ ├── DebugHelper.pro
│ ├── README.md
│ ├── assign_uses.cpp
│ ├── bits.cpp
│ ├── bits.h
│ ├── generate_class_coverage.py
│ ├── main.cpp
│ ├── node_pair.cpp
│ ├── shared.cpp
│ ├── shared.h
│ ├── stanford_hash.cpp
│ ├── stanford_linear.cpp
│ ├── stanford_pq.cpp
│ ├── stanford_tree.cpp
│ └── stl.cpp
├── Docs/
│ ├── ErrorException.html
│ ├── GPoint.html
│ ├── Grid.html
│ ├── GridLocation.html
│ ├── GridLocationRange.html
│ ├── HashMap.html
│ ├── HashSet.html
│ ├── Lexicon.html
│ ├── Map.html
│ ├── PriorityQueue.html
│ ├── Queue.html
│ ├── Set.html
│ ├── Stack.html
│ ├── Vector.html
│ ├── _tokenscanner.html
│ ├── cppdoc.css
│ ├── direction.html
│ ├── error.html
│ ├── filelib.html
│ ├── gmath.html
│ ├── index.html
│ ├── random.html
│ ├── simpio.html
│ ├── strlib.html
│ └── timer.html
├── Library/
│ ├── Library.pro
│ ├── assume_install.mk
│ ├── collections/
│ │ ├── basicgraph.cpp
│ │ ├── basicgraph.h
│ │ ├── collections.cpp
│ │ ├── collections.h
│ │ ├── dawglexicon.cpp
│ │ ├── dawglexicon.h
│ │ ├── deque.h
│ │ ├── graph.h
│ │ ├── grid.h
│ │ ├── gridlocation.cpp
│ │ ├── gridlocation.h
│ │ ├── hashcode.cpp
│ │ ├── hashcode.h
│ │ ├── hashmap.h
│ │ ├── hashset.h
│ │ ├── lexicon.h
│ │ ├── linkedlist.h
│ │ ├── map.h
│ │ ├── optional.cpp
│ │ ├── optional.h
│ │ ├── priorityqueue.h
│ │ ├── queue.h
│ │ ├── set.h
│ │ ├── stack.h
│ │ ├── trielexicon.cpp
│ │ ├── trielexicon.h
│ │ └── vector.h
│ ├── console/
│ │ ├── console.cpp
│ │ ├── console.h
│ │ ├── consolestreambuf.h
│ │ ├── consoletext.h
│ │ ├── echoinputstreambuf.h
│ │ ├── forwardingstreambuf.h
│ │ ├── gconsolewindow.cpp
│ │ ├── gconsolewindow.h
│ │ ├── ioutils.cpp
│ │ ├── ioutils.h
│ │ ├── limitoutputstreambuf.h
│ │ ├── plainconsole.cpp
│ │ └── plainconsole.h
│ ├── graphics/
│ │ ├── gbrowserpane.cpp
│ │ ├── gbrowserpane.h
│ │ ├── gbutton.cpp
│ │ ├── gbutton.h
│ │ ├── gcanvas.cpp
│ │ ├── gcanvas.h
│ │ ├── gcheckbox.cpp
│ │ ├── gcheckbox.h
│ │ ├── gchooser.cpp
│ │ ├── gchooser.h
│ │ ├── gclipboard.cpp
│ │ ├── gclipboard.h
│ │ ├── gcolor.cpp
│ │ ├── gcolor.h
│ │ ├── gcolorchooser.cpp
│ │ ├── gcolorchooser.h
│ │ ├── gcontainer.cpp
│ │ ├── gcontainer.h
│ │ ├── gdiffimage.cpp
│ │ ├── gdiffimage.h
│ │ ├── gdownloader.cpp
│ │ ├── gdownloader.h
│ │ ├── gdrawingsurface.cpp
│ │ ├── gdrawingsurface.h
│ │ ├── gevent.cpp
│ │ ├── gevent.h
│ │ ├── geventqueue.cpp
│ │ ├── geventqueue.h
│ │ ├── gfilechooser.cpp
│ │ ├── gfilechooser.h
│ │ ├── gfont.cpp
│ │ ├── gfont.h
│ │ ├── gfontchooser.cpp
│ │ ├── gfontchooser.h
│ │ ├── ginteractor.cpp
│ │ ├── ginteractor.h
│ │ ├── ginteractors.h
│ │ ├── glabel.cpp
│ │ ├── glabel.h
│ │ ├── glayout.cpp
│ │ ├── glayout.h
│ │ ├── gobjects.cpp
│ │ ├── gobjects.h
│ │ ├── gobservable.cpp
│ │ ├── gobservable.h
│ │ ├── goptionpane.cpp
│ │ ├── goptionpane.h
│ │ ├── gradiobutton.cpp
│ │ ├── gradiobutton.h
│ │ ├── gscrollbar.cpp
│ │ ├── gscrollbar.h
│ │ ├── gscrollpane.cpp
│ │ ├── gscrollpane.h
│ │ ├── gslider.cpp
│ │ ├── gslider.h
│ │ ├── gspacer.cpp
│ │ ├── gspacer.h
│ │ ├── gtable.cpp
│ │ ├── gtable.h
│ │ ├── gtextarea.cpp
│ │ ├── gtextarea.h
│ │ ├── gtextfield.cpp
│ │ ├── gtextfield.h
│ │ ├── gthread.cpp
│ │ ├── gthread.h
│ │ ├── gtimer.cpp
│ │ ├── gtimer.h
│ │ ├── gtypes.cpp
│ │ ├── gtypes.h
│ │ ├── gwindow.cpp
│ │ ├── gwindow.h
│ │ ├── moc_unity.cpp
│ │ ├── qtgui.cpp
│ │ └── qtgui.h
│ ├── images.qrc
│ ├── io/
│ │ ├── filelib.cpp
│ │ ├── filelib.h
│ │ ├── simpio.cpp
│ │ ├── simpio.h
│ │ ├── tokenscanner.cpp
│ │ ├── tokenscanner.h
│ │ ├── urlstream.cpp
│ │ └── urlstream.h
│ ├── private/
│ │ ├── README.md
│ │ ├── build.h.in
│ │ ├── filelibunix.cpp
│ │ ├── filelibwindows.cpp
│ │ ├── headless.h
│ │ ├── init.cpp
│ │ ├── init.h
│ │ ├── librarymain.cpp
│ │ ├── mainwrapper.cpp
│ │ └── static.h
│ ├── resources/
│ │ ├── EnglishWords.txt
│ │ └── Makefile
│ ├── spl_version.in
│ ├── stanfordtypes.py
│ ├── system/
│ │ ├── error.cpp
│ │ ├── error.h
│ │ ├── exceptions.cpp
│ │ ├── exceptions.h
│ │ ├── os.cpp
│ │ └── os.h
│ ├── testing/
│ │ ├── MemoryDiagnostics.cpp
│ │ ├── MemoryDiagnostics.h
│ │ ├── README.txt
│ │ ├── SimpleTest.h
│ │ ├── TestDriver.cpp
│ │ ├── TestDriver.h
│ │ ├── TestingGUI.cpp
│ │ ├── TextUtils.cpp
│ │ ├── TextUtils.h
│ │ └── styles_css_h
│ └── util/
│ ├── direction.cpp
│ ├── direction.h
│ ├── gmath.cpp
│ ├── gmath.h
│ ├── observable.h
│ ├── random.cpp
│ ├── random.h
│ ├── require.cpp
│ ├── require.h
│ ├── sound.cpp
│ ├── sound.h
│ ├── splversion.cpp
│ ├── splversion.h
│ ├── strlib.cpp
│ ├── strlib.h
│ ├── timer.cpp
│ └── timer.h
├── README.md
├── RandomClientTests/
│ ├── BugFixes/
│ │ ├── BugFixes.pro
│ │ └── bugfixes.cpp
│ ├── CompileFlags/
│ │ ├── CompileFlags.pro
│ │ └── compile.cpp
│ ├── LexCrash/
│ │ ├── LexTest.pro
│ │ ├── README.md
│ │ ├── main.cpp
│ │ └── res/
│ │ └── EnglishWords.txt
│ └── ShadowTest/
│ ├── ShadowTest.pro
│ ├── again.h
│ ├── extra/
│ │ ├── NOTstrlib.h
│ │ ├── mine.h
│ │ └── vector.h
│ ├── main.cpp
│ ├── strlib.cpp
│ └── strlib.h
├── SPL-unit-tests/
│ ├── .gitignore
│ ├── README.md
│ ├── UnitTests.pro
│ ├── common.h
│ ├── main.cpp
│ ├── res/
│ │ ├── EnglishWords.txt
│ │ ├── end_cr
│ │ ├── end_crlf
│ │ └── end_lf
│ ├── test-collection-read.cpp
│ ├── test-collections.cpp
│ ├── test-console.cpp
│ ├── test-dawg.cpp
│ ├── test-deque.cpp
│ ├── test-error.cpp
│ ├── test-exceptions.cpp
│ ├── test-filelib.cpp
│ ├── test-graphics.cpp
│ ├── test-grid.cpp
│ ├── test-hashmap.cpp
│ ├── test-hashset.cpp
│ ├── test-lex.cpp
│ ├── test-linkedlist.cpp
│ ├── test-map.cpp
│ ├── test-pqueue.cpp
│ ├── test-queue.cpp
│ ├── test-set.cpp
│ ├── test-simpio.cpp
│ ├── test-simpletest.cpp
│ ├── test-sound.cpp
│ ├── test-stack.cpp
│ ├── test-strlib.cpp
│ ├── test-trie.cpp
│ ├── test-url.cpp
│ └── test-vector.cpp
├── SimpleTestGuide/
│ ├── SimpleTest.pro
│ ├── main.cpp
│ ├── simpletest.css
│ ├── simpletestguide.cpp
│ └── unittest.cpp
├── Welcome/
│ ├── Welcome.pro
│ └── welcome.cpp
└── Wizard/
├── README.md.in
├── file.pro.in
├── main.cpp.in
└── wizard.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# Editor droppings
*~
*.sw?
# MacOS droppings
.DS_Store
*.pro.user.*
*.pro.user
# Build products
build*/
*.app
*.exe
================================================
FILE: Archived/Autograder_QtCreatorProject/Autograder_QtCreatorProject.pro
================================================
#####################################################################
## Stanford CS 106 B/X Qt Creator project file ##
#####################################################################
#
# This file specifies the information about your project to Qt Creator.
# You should not need to modify this file to complete your assignment.
#
# @author Marty Stepp (past authors/support by Keith Schwarz, Reid Watson, etc.)
# @version 2019/04/23
# - revert copydata code for copying resource files
DEFINES += SPL_PROJECT_VERSION=20190423 # kludgy YYYYMMDD constant used by lib to know its version
# global Qt/project settings
TEMPLATE = app
PROJECT_FILTER =
QT += core gui multimedia network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
###############################################################################
# BEGIN SECTION FOR SPECIFYING SOURCE/LIBRARY/RESOURCE FILES OF PROJECT #
###############################################################################
# remove spaces from target executable for better Windows compatibility
TARGET = $$replace(TARGET, " ", _)
# checks to make sure we haven't accidentally opened the project
# from within a ZIP archive (common mistake on Windows)
win32 {
contains(PWD, .*\.zip.*) | contains(PWD, .*\.ZIP.*) {
message("")
message(*******************************************************************)
message(*** ERROR: You are trying to open this project from within a .ZIP archive:)
message(*** $$PWD)
message(*** You need to extract the files out of the ZIP file first.)
message(*** Open the ZIP in your file explorer and press the Extract button.)
message(*******************************************************************)
message("")
error(Exiting.)
}
}
# check for intl chars in path (common issue for intl students)
PWD_WITHOUT_BAD_CHARS = $$PWD
PWD_WITHOUT_BAD_CHARS ~= s|[^a-zA-Z0-9_ ().\/:;+-]+|???
BAD_CHARS = $$PWD
BAD_CHARS ~= s|[a-zA-Z0-9_ ().\/:;-]+|
!isEmpty(BAD_CHARS) {
message("")
message(*******************************************************************)
message(*** ERROR: Your project directory contains invalid characters:)
message(*** $$PWD)
message(***)
message(*** The characters that are invalid are: $$BAD_CHARS)
message(***)
message(*** You need to store your project in a directory without any punctuation)
message(*** marks such as commas, or international symbols such as)
message(*** Chinese or Korean symbols.)
message(*** If you keep seeing this error try creating a simple directory)
message(*** name such as "C:\Programs\Homework1.")
message(*******************************************************************)
message("")
error(Exiting.)
}
# checks to ensure that the Stanford C++ library is present in this project
!exists($$PWD/lib/StanfordCPPLib/private/version.h) {
message("")
message(*******************************************************************)
message(*** ERROR: Stanford C++ library not found!)
message(*** This project cannot run without the folder lib/StanfordCPPLib/.)
message(*** Place that folder into your project and try again.)
message(*******************************************************************)
message("")
error(Exiting.)
}
win64 {
!exists($$PWD/lib/addr2line64.exe) {
message("")
message(*******************************************************************)
message(*** ERROR: Stanford C++ library support file 'addr2line64.exe' not found!)
message(*** Our library needs this file present to produce stack traces.)
message(*** Place that file into your lib/ folder and try again.)
message(*******************************************************************)
message("")
warning(Exiting.)
}
}
win32 {
!exists($$PWD/lib/addr2line.exe) {
message("")
message(*******************************************************************)
message(*** ERROR: Stanford C++ library support file 'addr2line.exe' not found!)
message(*** Our library needs this file present to produce stack traces.)
message(*** Place that file into your lib/ folder and try again.)
message(*******************************************************************)
message("")
warning(Exiting.)
}
}
!exists($$PWD/lib/iconstrip.png) {
message("")
message(*******************************************************************)
message(*** ERROR: Stanford library cannot find image strip file:)
message(*** lib/iconstrip.png)
message(*** This project cannot run without this file present.)
message(*** Place the file into your lib/ folder and try again.)
message(*******************************************************************)
message("")
warning(Exiting.)
}
# precompiled header speeds up build times
!win32 {
PRECOMPILED_HEADER = $$files($$PWD/lib/StanfordCPPLib/private/precompiled.h)
}
# honeypot to trick Qt Creator so that adding files works from within IDE;
# Qt looks for first 'SOURCES *=' line and adds newly added .cpp/h files there.
# But then that causes the files to be added twice because of *.cpp/h rules below.
# To get around this, we follow the first 'SOURCES *=' line by a line that clears
# out SOURCES, so that the Qt Creator .pro modification is ineffectual.
DISTFILES *= ""
DISTFILES = ""
HEADERS *= ""
HEADERS = ""
SOURCES *= ""
SOURCES = ""
# include various source .cpp files and header .h files in the build process
# (student's source code can be put into project root, or src/ subfolder)
SOURCES *= $$files($$PWD/lib/StanfordCPPLib/*.cpp, true)
SOURCES *= $$files($$PWD/src/*.cpp, true)
exists($$PWD/$$PROJECT_FILTER*.cpp) {
SOURCES *= $$files($$PWD/$$PROJECT_FILTER*.cpp)
}
exists($$PWD/lib/StanfordCPPLib/*.h) {
HEADERS *= $$files($$PWD/lib/StanfordCPPLib/*.h)
}
HEADERS *= $$files($$PWD/lib/StanfordCPPLib/*.h, true)
HEADERS *= $$files($$PWD/src/*.h, true)
exists($$PWD/$$PROJECT_FILTER*.h) {
HEADERS *= $$files($$PWD/$$PROJECT_FILTER*.h)
}
# directories examined by Qt Creator when student writes an #include statement
INCLUDEPATH *= $$PWD/lib/StanfordCPPLib/
INCLUDEPATH *= $$PWD/lib/StanfordCPPLib/collections/
INCLUDEPATH *= $$PWD/lib/StanfordCPPLib/graphics/
INCLUDEPATH *= $$PWD/lib/StanfordCPPLib/io/
INCLUDEPATH *= $$PWD/lib/StanfordCPPLib/system/
INCLUDEPATH *= $$PWD/lib/StanfordCPPLib/util/
exists($$PWD/lib/StanfordCPPLib/autograder/*) {
INCLUDEPATH *= $$PWD/lib/StanfordCPPLib/autograder/
}
INCLUDEPATH *= $$PWD/src/
INCLUDEPATH *= $$PWD/
exists($$PWD/src/autograder/$$PROJECT_FILTER/*.h) {
INCLUDEPATH *= $$PWD/src/autograder/$$PROJECT_FILTER/
}
exists($$PWD/src/test/*.h) {
INCLUDEPATH *= $$PWD/src/test/
}
# directories listed as "Other files" in left Project pane of Qt Creator
exists($$PWD/res/*) {
OTHER_FILES *= $$files($$PWD/res/*, true)
}
exists($$PWD/*.txt) {
OTHER_FILES *= $$files($$PWD/*.txt)
}
exists($$PWD/input/*) {
OTHER_FILES *= $$files($$PWD/input/*, true)
}
exists($$PWD/output/*) {
OTHER_FILES *= $$files($$PWD/output/*, true)
}
###############################################################################
# END SECTION FOR SPECIFYING SOURCE/LIBRARY/RESOURCE FILES OF PROJECT #
###############################################################################
###############################################################################
# BEGIN SECTION FOR SPECIFYING COMPILER/LINKER FLAGS AND LIBRARIES #
###############################################################################
# set up flags for the C++ compiler
# (In general, many warnings/errors are enabled to tighten compile-time checking.
# A few overly pedantic/confusing errors are turned off for simplicity.)
CONFIG += no_include_pwd # make sure we do not accidentally #include files placed in 'resources'
CONFIG += sdk_no_version_check # removes spurious warnings on Mac OS X
# CONFIG += warn_off
# gives us a bit more precision about which errors are printed
QMAKE_CFLAGS_WARN_ON -= -Wall
QMAKE_CFLAGS_WARN_ON -= -Wextra
QMAKE_CFLAGS_WARN_ON -= -W
QMAKE_CXXFLAGS_WARN_ON -= -Wall
QMAKE_CXXFLAGS_WARN_ON -= -Wextra
QMAKE_CXXFLAGS_WARN_ON -= -W
win32 {
# some Windows systems have old MinGW compilers, so be safe and use C++11
CONFIG += c++11
} else {
# Mac/Linux should support the latest C++ features
CONFIG += c++14
}
# uncomment this if you want to dump the preprocessor output into the .o files
# (useful when debugging advanced preprocessor hacking)
# QMAKE_CXXFLAGS += -E
QMAKE_CXXFLAGS += -Wall
#QMAKE_CXXFLAGS += -Wextra
QMAKE_CXXFLAGS += -Wcast-align
#QMAKE_CXXFLAGS += -Wfloat-equal
QMAKE_CXXFLAGS += -Wformat=2
QMAKE_CXXFLAGS += -Wlogical-op
QMAKE_CXXFLAGS += -Wno-missing-field-initializers
QMAKE_CXXFLAGS += -Wno-old-style-cast
QMAKE_CXXFLAGS += -Wno-sign-compare
QMAKE_CXXFLAGS += -Wno-sign-conversion
QMAKE_CXXFLAGS += -Wno-write-strings
QMAKE_CXXFLAGS += -Wreturn-type
QMAKE_CXXFLAGS += -Werror=return-type
QMAKE_CXXFLAGS += -Werror=uninitialized
QMAKE_CXXFLAGS += -Wunreachable-code
QMAKE_CXXFLAGS += -Wunused-parameter
exists($$PWD/lib/autograder/*.h) | exists($$PWD/lib/StanfordCPPLib/autograder/$$PROJECT_FILTER/*.h) | exists($$PWD/lib/autograder/$$PROJECT_FILTER/*.cpp) {
# omit some warnings/errors in autograder projects
# (largely because the Google Test framework violates them a ton of times)
QMAKE_CXXFLAGS += -Wno-deprecated
QMAKE_CXXFLAGS += -Wno-reorder
QMAKE_CXXFLAGS += -Wno-unused-function
QMAKE_CXXFLAGS += -Wno-useless-cast
}
# additional flags for Windows
win32 {
LIBS += -lDbghelp
LIBS += -lbfd
LIBS += -limagehlp
cache()
} else {
# flags that don't work on Windows MinGW compiler
QMAKE_CXXFLAGS += -Wno-unused-const-variable
LIBS += -ldl
}
# additional flags for Mac OS X
macx {
# calling cache() reduces warnings on Mac OS X systems
cache()
QMAKE_MAC_SDK = macosx
}
# additional flags for Linux
unix:!macx {
cache()
}
# libraries for all OSes
LIBS += -lpthread
# additional flags for clang compiler (default on Mac)
COMPILERNAME = $$QMAKE_CXX
COMPILERNAME ~= s|.*/|
equals(COMPILERNAME, clang++) {
QMAKE_CXXFLAGS += -Wempty-init-stmt
QMAKE_CXXFLAGS += -Wignored-qualifiers
QMAKE_CXXFLAGS += -Winitializer-overrides
QMAKE_CXXFLAGS += -Wmissing-field-initializers
QMAKE_CXXFLAGS += -Wmissing-method-return-type
QMAKE_CXXFLAGS += -Wnull-pointer-arithmetic
QMAKE_CXXFLAGS += -Wsemicolon-before-method-body
QMAKE_CXXFLAGS += -Wno-format-nonliteral
QMAKE_CXXFLAGS += -Wno-inconsistent-missing-override
QMAKE_CXXFLAGS += -Wno-overloaded-virtual
QMAKE_CXXFLAGS += -Wno-unknown-warning-option
}
# set up configuration flags used internally by the Stanford C++ libraries
# These flags are all optional but can simplify project configuration.
# (setting x/y to 999999 centers the window)
# (see platform.cpp/h for descriptions of some of these flags)
# wrapper name for 'main' function (needed so student can write 'int main'
# but our library can grab the actual main function to initialize itself)
DEFINES += SPL_REPLACE_MAIN_FUNCTION=1
DEFINES += main=qMain
# x/y location and w/h of the graphical console window; set to -1 to center
DEFINES += SPL_CONSOLE_X=-1
DEFINES += SPL_CONSOLE_Y=-1
DEFINES += SPL_CONSOLE_WIDTH=900
DEFINES += SPL_CONSOLE_HEIGHT=550
# font size of the font in the graphical console window; can also be set via window menu
#DEFINES += SPL_CONSOLE_FONTSIZE=18
# echo graphical console onto the plain text console as well?
DEFINES += SPL_CONSOLE_ECHO
# quit the C++ program when the graphical console is closed?
DEFINES += SPL_CONSOLE_EXIT_ON_CLOSE
# crash if the .pro is older than the minimum specified in version.h? (SPL_PROJECT_VERSION)
DEFINES += SPL_VERIFY_PROJECT_VERSION
# allow clients to access the internal data inside the heap of PriorityQueue?
# (used for some practice exam exercises/demos)
DEFINES += SPL_PQUEUE_ALLOW_HEAP_ACCESS
# should toString / << of a PriorityQueue display the elements in sorted order,
# or in heap internal order? the former is more expected by client; the latter
# is faster and avoids a deep-copy
DEFINES += SPL_PQUEUE_PRINT_IN_HEAP_ORDER
# flag to throw exceptions when a collection iterator is used after it has
# been invalidated (e.g. if you remove from a Map while iterating over it)
DEFINES += SPL_THROW_ON_INVALID_ITERATOR
# flag to add members like 'cost', 'visited', etc. to BasicGraph Vertex/Edge
# (we are going to disable these to force more interesting implementations)
# DEFINES += SPL_BASICGRAPH_VERTEX_EDGE_RICH_MEMBERS
# should we throw an error() when operator >> fails on a collection?
# for years this was true, but the C++ standard says you should just silently
# set the fail bit on the stream and exit, so that has been made the default.
# DEFINES += SPL_ERROR_ON_STREAM_EXTRACT
# scale up the console window on high-DPI screens?
# DEFINES += SPL_SCALE_HIGH_DPI_SCREEN
# is the .cpp portion of the library merged into a single .cpp file
# to speed up compilation?
DEFINES += SPL_MERGED_LIBRARY_SINGLE_FILE
# should we attempt to precompile the Qt moc_*.cpp files for speed?
DEFINES += SPL_PRECOMPILE_QT_MOC_FILES
# build-specific options (debug vs release)
# options for the 'debug' target (default):
# use no optimization, generate debugger symbols,
# and catch/print to console any uncaught exceptions thrown by the program
CONFIG(debug, debug|release) {
QMAKE_CXXFLAGS += -g3
QMAKE_CXXFLAGS += -fno-inline
QMAKE_CXXFLAGS += -fno-omit-frame-pointer
unix:!macx {
equals(COMPILERNAME, g++) {
# on Linux g++, these flags help us gather line numbers for stack traces
QMAKE_CXXFLAGS += -rdynamic
QMAKE_CXXFLAGS += -export-dynamic
QMAKE_CXXFLAGS += -Wl,--export-dynamic
QMAKE_LFLAGS += -export-dynamic
QMAKE_LFLAGS += -rdynamic
}
}
unix:macx {
equals(COMPILERNAME, clang++) {
QMAKE_CXXFLAGS += -Wno-unused-command-line-argument
QMAKE_CXXFLAGS += -Wl,-export_dynamic
QMAKE_CXXFLAGS += -Wl,-export-dynamic
QMAKE_CXXFLAGS += -Wl,--export-dynamic
QMAKE_LFLAGS += -rdynamic
QMAKE_LFLAGS += -Wl,-no_pie
}
}
# print details about uncaught exceptions with red error text / stack trace
DEFINES += SPL_CONSOLE_PRINT_EXCEPTIONS
}
# options for the 'release' target:
# enable some compiler optimizations, and
# make it statically linked so it is a stand-alone executable
CONFIG(release, debug|release) {
QMAKE_CXXFLAGS += -O2
# commenting out -static because it doesn't link to Qt libraries properly
#QMAKE_LFLAGS += -static
macx {
QMAKE_POST_LINK += 'macdeployqt $${OUT_PWD}/$${TARGET}.app'
}
unix:!macx {
QMAKE_LFLAGS += -static-libgcc
QMAKE_LFLAGS += -static-libstdc++
}
win32 {
TARGET_PATH = $${OUT_PWD}/release/$${TARGET}.exe
TARGET_PATH ~= s,/,\\,g
OUT_PATH = $${OUT_PWD}/
OUT_PATH ~= s,/,\\,g
QMAKE_LFLAGS += -static-libgcc
QMAKE_LFLAGS += -static-libstdc++
QMAKE_POST_LINK += copy '"'$${TARGET_PATH}'"' '"'$${OUT_PATH}'"'
}
}
###############################################################################
# END SECTION FOR SPECIFYING COMPILER/LINKER FLAGS AND LIBRARIES #
###############################################################################
###############################################################################
# BEGIN SECTION FOR CS 106B/X AUTOGRADER PROGRAMS #
###############################################################################
# settings specific to CS 106 B/X auto-grading programs; do not modify
exists($$PWD/lib/autograder/*.h) | exists($$PWD/lib/StanfordCPPLib/autograder/*.h) | exists($$PWD/src/autograder/$$PROJECT_FILTER/*.cpp) {
# include the various autograder source code and libraries in the build process
exists($$PWD/lib/autograder/*.cpp) {
SOURCES *= $$files($$PWD/lib/autograder/*.cpp, true)
}
exists($$PWD/lib/autograder/*.h) {
HEADERS *= $$files($$PWD/lib/autograder/*.h, true)
}
exists($$PWD/lib/autograder/*) {
INCLUDEPATH *= $$PWD/lib/autograder/
}
exists($$PWD/lib/StanfordCPPLib/autograder/*) {
INCLUDEPATH *= $$PWD/lib/StanfordCPPLib/autograder/
}
exists($$PWD/src/autograder/*.h) {
INCLUDEPATH *= $$PWD/src/autograder/
}
exists($$PWD/src/autograder/$$PROJECT_FILTER/*.h) {
INCLUDEPATH *= $$PWD/src/autograder/$$PROJECT_FILTER/
}
DEFINES += SPL_AUTOGRADER_MODE
# define the style of autograder you want to use (GUI vs console)
DEFINES += SPL_GRAPHICAL_AUTOGRADER
# DEFINES += SPL_CONSOLE_AUTOGRADER
# a check to ensure that required autograder resources are present in this project
!exists($$PWD/lib/iconstrip-autograder.png) {
message("")
message(*******************************************************************)
message(*** ERROR: Stanford library cannot find autograder image strip file:)
message(*** lib/iconstrip-autograder.png)
message(*** This project cannot run without this file present.)
message(*** Place the file into your lib/ folder and try again.)
message(*******************************************************************)
message("")
error(Exiting.)
}
}
###############################################################################
# END SECTION FOR CS 106B/X AUTOGRADER PROGRAMS #
###############################################################################
###############################################################################
# BEGIN SECTION FOR DEFINING HELPER FUNCTIONS FOR RESOURCE COPYING #
###############################################################################
COPY_RESOURCE_FILES_INPUT = ""
win32 {
# copy addr2line exe program(s) to capture stack traces on Windows
exists($$PWD/lib/*.exe) {
COPY_RESOURCE_FILES_INPUT += $$files($$PWD/lib/*.exe)
}
# optional .dll files for network features on Windows
exists($$PWD/lib/*.dll) {
COPY_RESOURCE_FILES_INPUT += $$files($$PWD/lib/*.dll)
}
}
# copy icons and image strips for library GUI/console windows
exists($$PWD/lib/*.png) {
COPY_RESOURCE_FILES_INPUT += $$files($$PWD/lib/*.png)
}
exists($$PWD/*.txt) {
COPY_RESOURCE_FILES_INPUT += $$files($$PWD/*.txt)
}
exists($$PWD/res/*) {
win32 {
exists($$PWD/res/*/*) {
# this will preserve the nested res/ directory structure on Windows,
# at the unfortunate cost of copying res/ to build dir on every run;
# recommended: avoid res subfolders to avoid this penalty on Windows
COPY_RESOURCE_FILES_INPUT += $$files($$PWD/res)
} else {
# res/ with no subdirectories will properly be copied only on modification
COPY_RESOURCE_FILES_INPUT += $$files($$PWD/res/*.*)
}
} else {
# Mac/Linux have proper recursive file-copying semantics in all cases
COPY_RESOURCE_FILES_INPUT += $$files($$PWD/res/*, true)
}
}
# input/ and output/ have same nested subfolder issue as res/
exists($$PWD/input/*) {
win32 {
exists($$PWD/input/*/*) {
COPY_RESOURCE_FILES_INPUT += $$files($$PWD/input)
} else {
COPY_RESOURCE_FILES_INPUT += $$files($$PWD/input/*.*)
}
} else {
COPY_RESOURCE_FILES_INPUT += $$files($$PWD/input, true)
}
}
exists($$PWD/output/*) {
win32 {
exists($$PWD/output/*/*) {
COPY_RESOURCE_FILES_INPUT += $$files($$PWD/output)
} else {
COPY_RESOURCE_FILES_INPUT += $$files($$PWD/output/*.*)
}
} else {
COPY_RESOURCE_FILES_INPUT += $$files($$PWD/output, true)
}
}
exists($$PWD/lib/autograder/*.h) | exists($$PWD/lib/StanfordCPPLib/autograder/*.h) | exists($$PWD/src/autograder/$$PROJECT_FILTER/*.cpp) {
# in autograder projects, copy over student's .cpp and .h files for possible style checking
exists($$PWD/*.cpp) {
COPY_RESOURCE_FILES_INPUT += $$files($$PWD/*.cpp)
}
exists($$PWD/*.h) {
COPY_RESOURCE_FILES_INPUT += $$files($$PWD/*.h)
}
}
# platform-specific commands to copy files and folders to build directory
copy_resource_files.name = Copy resource files to the build directory
win32 {
# https://support.microsoft.com/en-us/help/289483/switches-that-you-can-use-with-xcopy-and-xcopy32-commands
# /s - copy subfolders
# /q - quiet (no verbose output)
# /y - overwrite without prompting
# /i - if destination does not exist and copying more than one file, assumes destination is a folder
copy_resource_files.commands = xcopy /s /q /y ${QMAKE_FILE_IN}
} else {
copy_resource_files.commands = cp -rf ${QMAKE_FILE_IN} .
}
# copy_resource_files.commands = ${COPY_FILE} ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
copy_resource_files.input = COPY_RESOURCE_FILES_INPUT
copy_resource_files.output = $${OUT_PWD}/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}
copy_resource_files.CONFIG = no_link no_clean target_predeps
QMAKE_EXTRA_COMPILERS += copy_resource_files
###############################################################################
# END SECTION FOR DEFINING HELPER FUNCTIONS FOR RESOURCE COPYING #
###############################################################################
# END OF FILE (this should be line #560; if not, your .pro has been changed!)
================================================
FILE: Archived/Autograder_QtCreatorProject/lateDays.txt
================================================
student_submission_time: 13/Oct/2014 10:31:15
assignment_due_time: 13/Oct/2014 23:59:00
calendar_days_late: 0
================================================
FILE: Archived/Autograder_QtCreatorProject/lib/readme.txt
================================================
This directory contains any libraries that should be
linked to your project when it is built.
The most common library we will link to is the
Stanford C++ library (cpplib).
================================================
FILE: Archived/Autograder_QtCreatorProject/res/inputpanel-mainfunc.xml
================================================
================================================
FILE: Archived/Autograder_QtCreatorProject/res/myinput.txt
================================================
EMPTY DEFAULT FILE CONTENTS (replace with the student's!)
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
================================================
FILE: Archived/Autograder_QtCreatorProject/res/stylecheck-mainfunc-cpp.xml
================================================
================================================
FILE: Archived/Autograder_QtCreatorProject/src/mainfunc.cpp
================================================
/*
* Test file for verifying the Stanford C++ autograder lib functionality.
*/
#include
#include
#include
#include "autograder.h"
#include "consoletext.h"
#include "gtest-marty.h"
#include "queue.h"
#include "simpio.h"
#include "stack.h"
#include "stl.h"
#include "stylecheck.h"
#include "vector.h"
#include "testcases.h"
#include "private/version.h"
#include "exceptions.h"
using namespace std;
//TEST_CATEGORY(PassFailTests, "standard pass/fail tests");
//void bar() {
// // error("oooooops");
// int* n = nullptr;
// n[28583275] = 17; // segfault
//}
//void foo() {
// bar();
//}
//TIMED_TEST(PassFailTests, test_exception_after_easy_assert, TEST_TIMEOUT_DEFAULT) {
// // assertTrue("Brussel sprouts are yummy", true);
// foo();
// // assertTrue("Pie is yummy", true);
//}
//TIMED_TEST(PassFailTests, test_diffs_strict_FAIL, TEST_TIMEOUT_DEFAULT) {
// string expected = "Hello!\nhow are you?\n";
// string student = "hello!\nhow ARE you?\n";
// assertDiffFlags("message goes here", expected, student, diff::IGNORE_NONE);
//}
//TIMED_TEST(PassFailTests, test_ints_PASS, TEST_TIMEOUT_DEFAULT) {
// assertEquals("compare ints", 42, 42);
//}
//TIMED_TEST(PassFailTests, test_ints_FAIL, TEST_TIMEOUT_DEFAULT) {
// assertEquals("compare ints", 42, 69);
//}
//TIMED_TEST(PassFailTests, test_doubles_near_PASS, TEST_TIMEOUT_DEFAULT) {
// assertDoubleNear("hi there", 3.14, 3.1415, 0.1);
//}
//TIMED_TEST(PassFailTests, test_doubles_near_FAIL, TEST_TIMEOUT_DEFAULT) {
// assertDoubleNear("hi there", 3.14, 2.718, 0.1);
//}
//TIMED_TEST(PassFailTests, test_string_PASS, TEST_TIMEOUT_DEFAULT) {
// assertEquals("hi there", string("a"), string("a"));
//}
//TIMED_TEST(PassFailTests, test_string_FAIL, TEST_TIMEOUT_DEFAULT) {
// assertEquals("hi there", string("a"), string("b"));
//}
//TIMED_TEST(PassFailTests, test_cstring_PASS, TEST_TIMEOUT_DEFAULT) {
// assertEqualsCString("hi there", "a", "a");
//}
//TIMED_TEST(PassFailTests, test_cstring_FAIL, TEST_TIMEOUT_DEFAULT) {
// assertEqualsCString("hi there", "xxx", "yy");
//}
//TIMED_TEST(PassFailTests, test_char_PASS, TEST_TIMEOUT_DEFAULT) {
// assertEquals("hi there", 'a', 'a');
//}
//TIMED_TEST(PassFailTests, test_char_FAIL, TEST_TIMEOUT_DEFAULT) {
// assertEquals("hi there", 'a', 'b');
//}
//TIMED_TEST(PassFailTests, test_multiple_assertions_PASS, TEST_TIMEOUT_DEFAULT) {
// assertEquals("some test 1", string("abc"), string("abc"));
// assertEquals("some test 2", string("abc2"), string("abc2"));
// assertEquals("some test 3", 42, 42);
// assertEquals("some test 4", 123, 123);
//}
//TIMED_TEST(PassFailTests, test_multiple_assertions_FAIL1, TEST_TIMEOUT_DEFAULT) {
// assertEquals("some test 1", string("abc"), string("abc"));
// assertEquals("some test 2", string("abc"), string("def")); // <-- should show this
// assertEquals("some test 3", string("abc2"), string("def2"));
//}
//TIMED_TEST(PassFailTests, test_multiple_assertions_FAIL2, TEST_TIMEOUT_DEFAULT) {
// assertEquals("some test 1", string("abc"), string("abc"));
// assertEquals("some test 2", string("abc"), string("def")); // <-- should show this
// assertEquals("some test 3", string("abc2"), string("def2"));
// assertEquals("some test 4", string("abc"), string("abc"));
// assertEquals("some test 5", 42, 42);
//}
//TIMED_TEST(PassFailTests, test_reeeeeeeeeeeeeeally_long_name_FAIL, TEST_TIMEOUT_DEFAULT) {
// assertEquals("some failed test 1", string("abc"), string("oops"));
// assertEquals("some failed test 2", string("abc2"), string("oops2"));
// assertEquals("some later test that passes 1", string("same1"), string("same1"));
// assertEquals("some later test that passes 2", string("same2"), string("same2"));
//}
//TEST_CATEGORY(InfiniteLoops, "infinite loops");
//TIMED_TEST(InfiniteLoops, test_infinite_loop1, TEST_TIMEOUT_DEFAULT/2) {
// while (1) { /* lolol */ }
//}
//TIMED_TEST(InfiniteLoops, test_infinite_loop2, TEST_TIMEOUT_DEFAULT) {
// while (1) { sleep(1); }
//}
//TIMED_TEST(InfiniteLoops, test_notInfiniteButExceedsTimeout, TEST_TIMEOUT_DEFAULT) {
// string exp = "a\nb\nc";
// string stu = "a\nb\nc";
// assertDiff("some diffs", exp, stu);
// sleep(5);
//}
//TEST_CATEGORY(Crashes, "crashes and exceptions");
//TIMED_TEST(Crashes, test_exception, TEST_TIMEOUT_DEFAULT) {
// Vector v;
// v[29] = 42; // boom
// assertDiff("a diff", 42, 42);
//}
//TIMED_TEST(Crashes, test_sigfpe, TEST_TIMEOUT_DEFAULT) {
// int y = 0 + 0;
// int x = 1 / y; // boom
// assertEquals("a diff", 42, x);
//}
//TIMED_TEST(Crashes, test_segfault, TEST_TIMEOUT_DEFAULT) {
// int* p = NULL;
// int x = *p; // boom
// assertEquals("a diff", 42, x);
//}
//TEST_CATEGORY(PassFailTestsEnd, "standard pass/fail tests at end");
//TIMED_TEST(PassFailTestsEnd, test_ints_again_PASS, TEST_TIMEOUT_DEFAULT) {
// assertEquals("compare ints", 42, 42);
//}
//TIMED_TEST(PassFailTestsEnd, test_ints_again_2_PASS, TEST_TIMEOUT_DEFAULT) {
// sleep(1);
// assertEquals("compare doubles", 42.0, 42.0);
//}
//TIMED_TEST(PassFailTestsEnd, test_ints_again_3_PASS, TEST_TIMEOUT_DEFAULT) {
// assertEquals("compare ints", 42, 42);
//}
//TIMED_TEST(PassFailTestsEnd, test_ints_again_4_FAIL, TEST_TIMEOUT_DEFAULT) {
// sleep(1);
// assertEquals("compare ints", 42, 43);
//}
//TIMED_TEST(PassFailTestsEnd, test_ints_again_5_PASS, TEST_TIMEOUT_DEFAULT) {
// assertEqualsCString("compare strings", "42", "42");
//}
int f() {
if (2 % 2 == 1) {
return 42;
} else {
return 43;
}
}
/*
* A custom autograder UI button to show the student's creative input file.
*/
void showMyInputTxt() {
// empty
autograder::showStudentTextFile("myinput.txt", /* maxWidth */ 75, /* maxHeight */ 30);
}
// this just needs to be here so that it will become studentMain()
int main() {
cout << "Hello, world!" << endl;
cout << "f is: " << f() << endl;
int x = getInteger("Type x: ");
cout << "You typed " << x << endl;
return 0;
}
void autograderMain() {
// autograder::setAssignmentName("Stanford C++ Library Test");
stanfordcpplib::autograder::Autograder* autograder = stanfordcpplib::autograder::Autograder::instance();
autograder->setAboutMessage("Stanford C++ library tester by Marty Stepp");
autograder->setGraphicalUI(true);
autograder->setTestNameWidth(static_cast(std::string("test02_abc_oops_real_long_name_gonnaFail").length()));
autograder->setStartMessage("my COOL start message yay! "
"lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum "
"lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum ");
//stylecheck::setStyleCheckMergedWithUnitTests(true);
//autograder::styleCheckAddFile("mainfunc.cpp");
autograder::addCallbackButton(showMyInputTxt, "View\nmyinput.txt", "textfile.gif");
}
================================================
FILE: Archived/Autograder_QtCreatorProject/src/readme.txt
================================================
This directory contains the source code files (*.cpp, *.h)
that you will write as you complete the assignment.
We will also put any instructor-provided code here.
================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/_collectionTests.cp_
================================================
/*
* Test file for verifying the Stanford C++ lib collection functionality.
*/
// all collections:
// BasicGraph, DawgLexicon, Graph, Grid, HashMap, HashSet, Lexicon, LinkedList,
// Map, PriorityQueue, Queue, Set, SparseGrid, Stack, Vector
#include "testcases.h"
#include "basicgraph.h"
#include "dawglexicon.h"
#include "deque.h"
#include "graph.h"
#include "grid.h"
#include "hashcode.h"
#include "hashmap.h"
#include "hashset.h"
#include "lexicon.h"
#include "linkedhashmap.h"
#include "linkedhashset.h"
#include "linkedlist.h"
#include "map.h"
#include "pqueue.h"
#include "queue.h"
#include "set.h"
#include "sparsegrid.h"
#include "stack.h"
#include "vector.h"
#include "assertions.h"
#include "gtest-marty.h"
#include
#include
#include
using namespace std;
#define TEST_TIMEOUT_DEFAULT 3000
TEST_CATEGORY(CollectionTests, "collection tests");
// for testing collections with non- ==, < elements
class Student {
public:
std::string name;
};
// for testing Graph class
struct DumbNode;
struct DumbEdge;
struct DumbNode {
std::string name;
Set arcs;
double cost;
};
struct DumbEdge {
DumbNode* start;
DumbNode* finish;
double cost;
};
template
static void compareTestHelper(const T& o1, const T& o2, std::string type = "",
int compareTo = 0) {
assertEqualsBool(type + o1.toString() + " < " + o2.toString(), compareTo < 0, o1 < o2);
assertEqualsBool(type + o1.toString() + " <= " + o2.toString(), compareTo <= 0, o1 <= o2);
assertEqualsBool(type + o1.toString() + " > " + o2.toString(), compareTo > 0, o1 > o2);
assertEqualsBool(type + o1.toString() + " >= " + o2.toString(), compareTo >= 0, o1 >= o2);
assertEqualsBool(type + o1.toString() + " == " + o2.toString(), compareTo == 0, o1 == o2);
assertEqualsBool(type + o1.toString() + " != " + o2.toString(), compareTo != 0, o1 != o2);
}
void randomElementTest() {
std::cout << "randomElement/Key test:" << std::endl;
Map counts;
int RUNS = 200;
std::cout << "Grid: ";
Grid grid;
grid.resize(2, 3);
grid[0][0] = "a";
grid[0][1] = "b";
grid[0][2] = "c";
grid[1][0] = "d";
grid[1][1] = "e";
grid[1][2] = "f";
for (int i = 0; i < RUNS; i++) {
std::string s = randomElement(grid);
std::cout << s << " ";
counts[s]++;
}
std::cout << std::endl;
std::cout << "HashMap: ";
HashMap hmap;
hmap["a"] = 50;
hmap["b"] = 40;
hmap["c"] = 30;
hmap["d"] = 20;
hmap["e"] = 10;
hmap["f"] = 0;
for (int i = 0; i < RUNS; i++) {
std::string s = randomKey(hmap);
std::cout << s << " ";
counts[s]++;
}
std::cout << std::endl;
std::cout << "HashSet: ";
HashSet hset;
hset += "a", "b", "c", "d", "e", "f";
for (int i = 0; i < RUNS; i++) {
std::string s = randomElement(hset);
std::cout << s << " ";
counts[s]++;
}
std::cout << std::endl;
std::cout << "LinkedList: ";
LinkedList list;
list += "a", "b", "c", "d", "e", "f";
for (int i = 0; i < RUNS; i++) {
std::string s = randomElement(list);
std::cout << s << " ";
counts[s]++;
}
std::cout << std::endl;
std::cout << "Map: ";
Map map;
map["a"] = 50;
map["b"] = 40;
map["c"] = 30;
map["d"] = 20;
map["e"] = 10;
map["f"] = 0;
for (int i = 0; i < RUNS; i++) {
std::string s = randomKey(map);
std::cout << s << " ";
counts[s]++;
}
std::cout << std::endl;
std::cout << "Set: ";
Set set;
set += "a", "b", "c", "d", "e", "f";
for (int i = 0; i < RUNS; i++) {
std::string s = randomElement(set);
std::cout << s << " ";
counts[s]++;
}
std::cout << std::endl;
std::cout << "SparseGrid: ";
SparseGrid sgrid;
sgrid.resize(4, 3);
sgrid[0][0] = "a";
sgrid[0][1] = "b";
sgrid[1][2] = "c"; // row 2 is blank
sgrid[3][0] = "d";
sgrid[1][1] = "e";
sgrid[1][2] = "f";
for (int i = 0; i < RUNS; i++) {
std::string s = randomElement(sgrid);
std::cout << s << " ";
counts[s]++;
}
std::cout << std::endl;
std::cout << "Vector: ";
Vector v;
v += "a", "b", "c", "d", "e", "f";
for (int i = 0; i < RUNS; i++) {
std::string s = randomElement(v);
std::cout << s << " ";
counts[s]++;
}
std::cout << std::endl;
std::cout << "counts:" << counts << std::endl << std::endl;
}
TIMED_TEST(CollectionTests, shuffleTest, TEST_TIMEOUT_DEFAULT) {
Vector v {10, 20, 30, 40, 50};
Map > valueIndexCount;
// shuffle 100 times
for (int i = 0; i < 100; i++) {
shuffle(v);
for (int j = 0; j < v.size(); j++) {
valueIndexCount[v[j]][j]++;
}
}
// make sure each value appeared at each index at least once
for (int n : v) {
for (int j = 0; j < v.size(); j++) {
assertNotEqualsInt("", 0, valueIndexCount[n][j]);
}
}
}
TIMED_TEST(CollectionTests, streamExtractTest_HashMap, TEST_TIMEOUT_DEFAULT) {
istringstream hmstream("{1:10, 2:20, 3:30}");
HashMap hm;
hmstream >> hm;
assertEqualsString("hm", "{1:10, 2:20, 3:30}", hm.toString());
}
TIMED_TEST(CollectionTests, streamExtractTest_HashMap2bad, TEST_TIMEOUT_DEFAULT) {
HashMap hm;
istringstream hmstreambad("1:1, 2, 33}");
bool result = bool(hmstreambad >> hm);
assertFalse("operator >> on bad hashmap", result);
}
TIMED_TEST(CollectionTests, streamExtractTest_Vector, TEST_TIMEOUT_DEFAULT) {
istringstream vstream("{1, 2, 3}");
Vector v;
vstream >> v;
assertEqualsString("v", "{1, 2, 3}", v.toString());
}
TIMED_TEST(CollectionTests, streamExtractTest_Vector2bad, TEST_TIMEOUT_DEFAULT) {
Vector v;
istringstream vstreambad("1, 2, 3}");
bool result = bool(vstreambad >> v);
assertFalse("operator >> on bad vector", result);
}
TIMED_TEST(CollectionTests, compareTest_BasicGraph, TEST_TIMEOUT_DEFAULT) {
BasicGraph bgraph;
bgraph.addNode("a");
bgraph.addNode("b");
bgraph.addNode("c");
bgraph.addNode("d");
bgraph.addNode("e");
bgraph.addArc("a", "b");
bgraph.addArc("a", "d");
bgraph.addArc("b", "c");
bgraph.addArc("b", "d");
bgraph.addArc("c", "b");
bgraph.addArc("c", "e");
BasicGraph bgraph2;
bgraph2.addNode("a");
bgraph2.addNode("b");
bgraph2.addNode("c");
bgraph2.addNode("d");
bgraph2.addNode("e");
bgraph2.addNode("f");
bgraph2.addArc("a", "b");
bgraph2.addArc("a", "d");
bgraph2.addArc("b", "c");
bgraph2.addArc("b", "d");
bgraph2.addArc("c", "b");
bgraph2.addArc("b", "e");
BasicGraph bgraph3;
compareTestHelper(bgraph, bgraph2, "BasicGraph", /* compareTo */ -1);
compareTestHelper(bgraph, bgraph3, "BasicGraph", /* compareTo */ 1);
compareTestHelper(bgraph2, bgraph, "BasicGraph", /* compareTo */ 1);
compareTestHelper(bgraph, bgraph, "BasicGraph", /* compareTo */ 0);
Set sbgraph {bgraph, bgraph2, bgraph3};
assertEqualsString("sbgraph", "{{}, {a, b, c, d, e, a -> b, a -> d, b -> c, b -> d, c -> b, c -> e}, {a, b, c, d, e, f, a -> b, a -> d, b -> c, b -> d, b -> e, c -> b}}", sbgraph.toString());
}
TIMED_TEST(CollectionTests, compareTest_DawgLexicon, TEST_TIMEOUT_DEFAULT) {
DawgLexicon dawg;
dawg.add("a");
dawg.add("b");
dawg.add("c");
DawgLexicon dawg2;
dawg2.add("a");
dawg2.add("ab");
dawg2.add("bc");
DawgLexicon dawg3;
compareTestHelper(dawg, dawg2, "DawgLexicon", /* compareTo */ 1);
compareTestHelper(dawg2, dawg, "DawgLexicon", /* compareTo */ -1);
compareTestHelper(dawg, dawg, "DawgLexicon", /* compareTo */ 0);
Set sdlex {dawg, dawg2, dawg3};
assertEqualsString("sdlex", "{{}, {\"a\", \"ab\", \"bc\"}, {\"a\", \"b\", \"c\"}}", sdlex.toString());
}
TIMED_TEST(CollectionTests, compareTest_Deque, TEST_TIMEOUT_DEFAULT) {
Deque deq;
deq.add("a");
deq.add("b");
deq.add("c");
Deque deq2;
deq2.add("a");
deq2.add("ab");
deq2.add("bc");
Deque deq3;
compareTestHelper(deq, deq2, "Deque", /* compareTo */ 1);
compareTestHelper(deq2, deq, "Deque", /* compareTo */ -1);
compareTestHelper(deq, deq, "Deque", /* compareTo */ 0);
Set > sdeque {deq, deq2, deq3};
assertEqualsString("sdeque", "{{}, {\"a\", \"ab\", \"bc\"}, {\"a\", \"b\", \"c\"}}", sdeque.toString());
}
TIMED_TEST(CollectionTests, compareTest_Graph, TEST_TIMEOUT_DEFAULT) {
Graph graph;
graph.addNode("a");
graph.addNode("b");
graph.addNode("c");
graph.addNode("d");
graph.addNode("e");
graph.addArc("a", "b");
graph.addArc("a", "d");
graph.addArc("b", "c");
graph.addArc("b", "d");
graph.addArc("c", "b");
graph.addArc("c", "e");
Graph graph2;
graph2.addNode("a");
graph2.addNode("b");
graph2.addNode("c");
graph2.addNode("d");
graph2.addNode("e");
graph2.addNode("f");
graph2.addArc("a", "b");
graph2.addArc("a", "d");
graph2.addArc("b", "c");
graph2.addArc("b", "d");
graph2.addArc("c", "b");
graph2.addArc("b", "e");
Graph graph3;
compareTestHelper(graph, graph2, "Graph", /* compareTo */ -1);
compareTestHelper(graph, graph3, "Graph", /* compareTo */ 1);
compareTestHelper(graph2, graph, "Graph", /* compareTo */ 1);
compareTestHelper(graph, graph, "Graph", /* compareTo */ 0);
Set > sgraph {graph, graph2, graph3};
assertEqualsString("sgraph", "{{}, {a, b, c, d, e, a -> b, a -> d, b -> c, b -> d, c -> b, c -> e}, {a, b, c, d, e, f, a -> b, a -> d, b -> c, b -> d, b -> e, c -> b}}", sgraph.toString());
}
TIMED_TEST(CollectionTests, compareTest_Grid, TEST_TIMEOUT_DEFAULT) {
Grid grid1;
grid1.resize(2, 2);
Grid grid2;
grid2.resize(2, 3);
Grid grid3;
grid3.resize(3, 2);
Grid grid4;
compareTestHelper(grid1, grid2, "Grid", /* compareTo */ -1);
compareTestHelper(grid2, grid1, "Grid", /* compareTo */ 1);
compareTestHelper(grid1, grid3, "Grid", /* compareTo */ -1);
compareTestHelper(grid3, grid1, "Grid", /* compareTo */ 1);
compareTestHelper(grid2, grid3, "Grid", /* compareTo */ 1);
compareTestHelper(grid3, grid2, "Grid", /* compareTo */ -1);
compareTestHelper(grid1, grid1, "Grid", /* compareTo */ 0);
Set > sgrid {grid1, grid2, grid3, grid4};
assertEqualsString("sgrid", "{{}, {{0, 0}, {0, 0}}, {{0, 0}, {0, 0}, {0, 0}}, {{0, 0, 0}, {0, 0, 0}}}", sgrid.toString());
}
TIMED_TEST(CollectionTests, compareTest_Lexicon, TEST_TIMEOUT_DEFAULT) {
Lexicon lex;
lex.add("a");
lex.add("ab");
lex.add("bc");
Lexicon lex2;
lex2.add("a");
lex2.add("b");
lex2.add("c");
Lexicon lex3;
compareTestHelper(lex, lex2, "Lexicon", /* compareTo */ -1);
compareTestHelper(lex2, lex, "Lexicon", /* compareTo */ 1);
compareTestHelper(lex, lex, "Lexicon", /* compareTo */ 0);
Set slex {lex, lex2, lex3};
assertEqualsString("slex", "{{}, {\"a\", \"ab\", \"bc\"}, {\"a\", \"b\", \"c\"}}", slex.toString());
}
TIMED_TEST(CollectionTests, compareTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
LinkedList ll1;
ll1 += 1, 2, 4, 5;
LinkedList ll2;
ll2 += 1, 3, 1, 4, 8;
LinkedList ll3;
ll3 += 1, 1, 7;
LinkedList ll4; // empty
compareTestHelper(ll1, ll2, "LinkedList", /* compareTo */ -1);
compareTestHelper(ll1, ll3, "LinkedList", /* compareTo */ 1);
compareTestHelper(ll1, ll4, "LinkedList", /* compareTo */ 1);
compareTestHelper(ll2, ll3, "LinkedList", /* compareTo */ 1);
compareTestHelper(ll2, ll4, "LinkedList", /* compareTo */ 1);
compareTestHelper(ll3, ll4, "LinkedList", /* compareTo */ 1);
compareTestHelper(ll2, ll2, "LinkedList", /* compareTo */ 0);
Set > sll {ll1, ll2, ll3, ll4};
assertEqualsString("sll", "{{}, {1, 1, 7}, {1, 2, 4, 5}, {1, 3, 1, 4, 8}}", sll.toString());
}
TIMED_TEST(CollectionTests, compareTest_Queue, TEST_TIMEOUT_DEFAULT) {
Queue q1;
q1.add(1);
q1.add(2);
q1.add(1);
q1.add(5);
Queue q2;
q2.add(1);
q2.add(2);
q2.add(1);
q2.add(4);
q2.add(7);
compareTestHelper(q1, q2, "Queue", /* compareTo */ 1);
compareTestHelper(q2, q1, "Queue", /* compareTo */ -1);
compareTestHelper(q1, q1, "Queue", /* compareTo */ 0);
Set > sq {q1, q2};
assertEqualsString("sq", "{{1, 2, 1, 4, 7}, {1, 2, 1, 5}}", sq.toString());
}
TIMED_TEST(CollectionTests, compareTest_Set, TEST_TIMEOUT_DEFAULT) {
Set set1;
set1 += 7, 5, 1, 2, 8;
Set set2;
set2 += 1, 2, 3, 4;
Set set3;
compareTestHelper(set1, set2, "Set", /* compareTo */ 1);
compareTestHelper(set2, set1, "Set", /* compareTo */ -1);
compareTestHelper(set1, set3, "Set", /* compareTo */ 1);
compareTestHelper(set2, set3, "Set", /* compareTo */ 1);
Set > sset {set1, set2, set3};
assertEqualsString("sset", "{{}, {1, 2, 3, 4}, {1, 2, 5, 7, 8}}", sset.toString());
}
TIMED_TEST(CollectionTests, compareTest_SparseGrid, TEST_TIMEOUT_DEFAULT) {
SparseGrid sgrid1;
sgrid1.resize(2, 2);
SparseGrid sgrid2;
sgrid2.resize(2, 3);
SparseGrid sgrid3;
sgrid3.resize(3, 2);
compareTestHelper(sgrid1, sgrid2, "SparseGrid", /* compareTo */ -1);
compareTestHelper(sgrid2, sgrid1, "SparseGrid", /* compareTo */ 1);
compareTestHelper(sgrid1, sgrid3, "SparseGrid", /* compareTo */ -1);
compareTestHelper(sgrid3, sgrid1, "SparseGrid", /* compareTo */ 1);
compareTestHelper(sgrid2, sgrid3, "SparseGrid", /* compareTo */ 1);
compareTestHelper(sgrid3, sgrid2, "SparseGrid", /* compareTo */ -1);
compareTestHelper(sgrid1, sgrid1, "SparseGrid", /* compareTo */ 0);
Set > ssgrid {sgrid1, sgrid2, sgrid3};
assertEqualsString("ssgrid", "{{}, 2 x 2, {}, 3 x 2, {}, 2 x 3}", ssgrid.toString());
}
TIMED_TEST(CollectionTests, compareTest_Vector, TEST_TIMEOUT_DEFAULT) {
Vector v1 {1, 2, 4, 5};
Vector v2 {1, 3, 1, 4, 8};
Vector v3 {1, 1, 7};
Vector v4 {2, 0};
Vector v5 {1, 2, 4, 5, 6, 7};
Vector v6; // empty
compareTestHelper(v1, v2, "Vector", /* compareTo */ -1);
compareTestHelper(v1, v3, "Vector", /* compareTo */ 1);
compareTestHelper(v1, v4, "Vector", /* compareTo */ -1);
compareTestHelper(v1, v5, "Vector", /* compareTo */ -1);
compareTestHelper(v1, v6, "Vector", /* compareTo */ 1);
compareTestHelper(v2, v3, "Vector", /* compareTo */ 1);
compareTestHelper(v2, v4, "Vector", /* compareTo */ -1);
compareTestHelper(v2, v5, "Vector", /* compareTo */ 1);
compareTestHelper(v2, v6, "Vector", /* compareTo */ 1);
compareTestHelper(v3, v4, "Vector", /* compareTo */ -1);
compareTestHelper(v3, v5, "Vector", /* compareTo */ -1);
compareTestHelper(v3, v6, "Vector", /* compareTo */ 1);
compareTestHelper(v4, v5, "Vector", /* compareTo */ 1);
compareTestHelper(v4, v6, "Vector", /* compareTo */ 1);
compareTestHelper(v5, v6, "Vector", /* compareTo */ 1);
Set > sv {v1, v2, v3, v4, v5, v6};
assertEqualsString("sv", "{{}, {1, 1, 7}, {1, 2, 4, 5}, {1, 2, 4, 5, 6, 7}, {1, 3, 1, 4, 8}, {2, 0}}", sv.toString());
}
void foreachTest() {
std::cout << "foreach test: " << std::endl;
Vector v1;
v1 += 1, 2, 3;
cout << "v1: " << v1 << endl;
Vector v2;
v2 += "a", "b", "c";
cout << "v2: " << v2 << endl;
Stack s1;
s1.push(1);
s1.push(2);
s1.push(3);
cout << "s1: " << s1 << endl;
Stack s2;
s2.push("a");
s2.push("b");
s2.push("c");
cout << "s2: " << s2 << endl;
Queue q1;
q1.enqueue(1);
q1.enqueue(2);
q1.enqueue(3);
cout << "q1: " << q1 << endl;
Queue q2;
q2.enqueue("a");
q2.enqueue("b");
q2.enqueue("c");
cout << "q2: " << q2 << endl;
BasicGraph bgraph;
bgraph.addNode("a");
bgraph.addNode("b");
bgraph.addNode("c");
bgraph.addNode("d");
bgraph.addNode("e");
bgraph.addArc("a", "b");
bgraph.addArc("a", "d");
bgraph.addArc("b", "c");
bgraph.addArc("b", "d");
bgraph.addArc("c", "b");
bgraph.addArc("c", "e");
std::cout << "basicgraph: " << bgraph << std::endl;
for (Vertex* node : bgraph) {
std::cout << node->name << std::endl;
}
DawgLexicon dlex;
dlex.add("a");
dlex.add("cc");
dlex.add("bbb");
std::cout << "dawglexicon: " << dlex << std::endl;
for (std::string n : dlex) {
std::cout << n << std::endl;
}
Graph graph;
graph.addNode("a");
graph.addNode("b");
graph.addNode("c");
graph.addNode("d");
graph.addNode("e");
graph.addArc("a", "b");
graph.addArc("a", "d");
graph.addArc("b", "c");
graph.addArc("b", "d");
graph.addArc("c", "b");
graph.addArc("c", "e");
std::cout << "graph: " << graph << std::endl;
for (DumbNode* node : graph) {
std::cout << node->name << std::endl;
}
Grid grid(4, 2);
grid.fill(42);
std::cout << "grid: " << grid << std::endl;
for (int n : grid) {
std::cout << n << std::endl;
}
HashMap hmap;
hmap["a"] = 1;
hmap["bbbb"] = 2;
hmap["zz"] = 26;
std::cout << "hashmap: " << hmap << std::endl;
for (std::string k : hmap) {
std::cout << k << " => " << hmap[k] << std::endl;
}
HashSet hset;
hset += 10, 20, 30, 40;
std::cout << "hashset: " << hset << std::endl;
for (int n : hset) {
std::cout << n << std::endl;
}
Lexicon lex;
lex.add("a");
lex.add("cc");
lex.add("bbb");
std::cout << "lexicon: " << lex << std::endl;
for (std::string n : lex) {
std::cout << n << std::endl;
}
std::cout << std::endl;
LinkedHashMap lhmap;
// lhmap["zz"] = 26;
// lhmap["a"] = 1;
// lhmap["ss"] = 97;
// lhmap["bbbb"] = 2;
// lhmap["E"] = 4;
// lhmap["yZ44"] = 33;
lhmap.put("zz", 26);
lhmap.put("a", 1);
lhmap.put("ss", 97);
lhmap.put("bbbb", 2);
lhmap.put("E", 4);
lhmap.put("yZ44", 33);
std::cout << "linkedhashmap: " << lhmap << std::endl;
for (std::string k : lhmap) {
std::cout << k << " => " << lhmap[k] << std::endl;
}
lhmap.remove("ss");
lhmap.remove("zz");
lhmap.remove("yZ44");
lhmap.remove("notfound");
std::cout << "after removes:" << std::endl;
std::cout << "linkedhashmap: " << lhmap << std::endl;
for (std::string k : lhmap) {
std::cout << k << " => " << lhmap[k] << std::endl;
}
std::cout << std::endl;
LinkedHashSet lhset;
lhset += 30, 10, 40, 66, -1, 42, 99;
std::cout << "linkedhashset: " << lhset << std::endl;
for (int n : lhset) {
std::cout << n << std::endl;
}
lhset -= 40, 30, 99;
std::cout << "linkedhashset: " << lhset << std::endl;
for (int n : lhset) {
std::cout << n << std::endl;
}
std::cout << std::endl;
LinkedList ll;
ll += 10, 20, 30, 40;
std::cout << "linkedlist: " << ll << std::endl;
for (int n : ll) {
std::cout << n << std::endl;
}
Map map;
map["a"] = 1;
map["bbbb"] = 2;
map["zz"] = 26;
std::cout << "map: " << map << std::endl;
for (std::string k : map) {
std::cout << k << " => " << map[k] << std::endl;
}
PriorityQueue pq;
pq.add("a", 4);
pq.add("bb", 3);
pq.add("c", 1);
pq.add("ddd", 6);
pq.add("e", 5);
pq.add("ffff", 2);
// dupe priorities
pq.add("ffff-2nd", 2);
pq.add("a-2nd", 4);
pq.add("e-2nd", 5);
std::cout << "pq: " << pq << std::endl;
// this should not compile since PQ has no public iterator
// std::cout << "foreach loop: " << std::endl;
// for (std::string str : pq) {
// std::cout << "next element: " << str << std::endl;
// }
Queue q;
q.add("a");
q.add("bb");
q.add("c");
q.add("ddd");
q.add("e");
q.add("ffff");
std::cout << "q: " << q << std::endl;
// this should not compile since PQ has no public iterator
// std::cout << "foreach loop: " << std::endl;
// for (std::string str : q) {
// std::cout << "next element: " << str << std::endl;
// }
}
TIMED_TEST(CollectionTests, forEachTest_Set, TEST_TIMEOUT_DEFAULT) {
Set set {10, 20, 30, 40};
Queue expected {10, 20, 30, 40};
for (int n : set) {
int exp = expected.dequeue();
assertEqualsInt("set foreach", exp, n);
}
}
TIMED_TEST(CollectionTests, forEachTest_SparseGrid, TEST_TIMEOUT_DEFAULT) {
SparseGrid sgrid(4, 2);
sgrid.fill(42);
std::cout << "sparsegrid: " << sgrid << std::endl;
for (int n : sgrid) {
std::cout << n << std::endl;
}
Vector v;
v += 10, 20, 30, 40;
std::cout << "vector: " << v << std::endl;
for (int n : v) {
std::cout << n << std::endl;
}
std::cout << "done!" << std::endl;
}
void hashCodeTest() {
std::cout << "================= BEGIN HASHCODE TESTS =================" << std::endl;
// BasicGraph
BasicGraph bgraph;
bgraph.addNode("a");
bgraph.addNode("b");
bgraph.addNode("c");
bgraph.addNode("d");
bgraph.addNode("e");
bgraph.addArc("a", "b");
bgraph.addArc("a", "d");
bgraph.addArc("b", "c");
bgraph.addArc("b", "d");
bgraph.addArc("c", "b");
bgraph.addArc("c", "e");
BasicGraph bgraph2;
bgraph2.addNode("a");
bgraph2.addNode("b");
bgraph2.addNode("c");
bgraph2.addNode("d");
bgraph2.addNode("e");
bgraph2.addNode("f");
bgraph2.addArc("a", "b");
bgraph2.addArc("a", "d");
bgraph2.addArc("b", "c");
bgraph2.addArc("b", "d");
bgraph2.addArc("c", "b");
bgraph2.addArc("b", "e");
HashSet hashbgraph;
hashbgraph.add(bgraph);
hashbgraph.add(bgraph2);
std::cout << "hashset of basicgraph: " << hashbgraph << std::endl;
// DawgLexicon
HashSet hashdawg;
DawgLexicon dlex;
dlex.add("a");
dlex.add("abc");
hashdawg.add(dlex);
std::cout << "hashset of dawglexicon: " << hashdawg << std::endl;
// Deque
HashSet > hashdeq;
Deque deq;
deq.addBack(1);
deq.addFront(2);
deq.addBack(3);
deq.addFront(4);
hashdeq.add(deq);
std::cout << "hashset of deque: " << hashdeq << std::endl;
// Graph
Graph graph;
graph.addNode("a");
graph.addNode("b");
graph.addNode("c");
graph.addNode("d");
graph.addNode("e");
graph.addArc("a", "b");
graph.addArc("a", "d");
graph.addArc("b", "c");
graph.addArc("b", "d");
graph.addArc("c", "b");
graph.addArc("c", "e");
Graph graph2;
graph2.addNode("a");
graph2.addNode("b");
graph2.addNode("c");
graph2.addNode("d");
graph2.addNode("e");
graph2.addNode("f");
graph2.addArc("a", "b");
graph2.addArc("a", "d");
graph2.addArc("b", "c");
graph2.addArc("b", "d");
graph2.addArc("c", "b");
graph2.addArc("b", "e");
//graph2.addArc("c", "e");
HashSet > hashgraph;
hashgraph.add(graph);
hashgraph.add(graph2);
std::cout << "hashset of graph: " << hashgraph << std::endl;
// Grid
HashSet > hashgrid;
Grid grid(2, 3);
grid.fill(42);
hashgrid.add(grid);
std::cout << "hashset of grid: " << hashgrid << std::endl;
// HashMap
HashSet > hashhashmap;
HashMap hmap;
hmap.add(69, 96);
hmap.add(42, 24);
hashhashmap.add(hmap);
std::cout << "hashset of hashmap: " << hashhashmap << std::endl;
// HashSet
HashSet > hashhashset;
HashSet hset;
hset.add(69);
hset.add(42);
hashhashset.add(hset);
std::cout << "hashset of hashset: " << hashhashset << std::endl;
// Lexicon
HashSet hashlex;
Lexicon lex;
lex.add("a");
lex.add("abc");
hashlex.add(lex);
std::cout << "hashset of lexicon: " << hashlex << std::endl;
// LinkedList
HashSet > hashlink;
LinkedList llist;
llist.add(69);
llist.add(42);
hashlink.add(llist);
std::cout << "hashset of linkedlist: " << hashlink << std::endl;
// Map
HashSet