├── .github └── workflows │ └── pypi-publish.yml ├── .gitignore ├── .readthedocs.yml ├── CITATION.cff ├── CONTRIBUTING.md ├── Dockerfile ├── Dockerfile_old ├── LICENSE ├── MANIFEST.in ├── README.md ├── docs ├── images │ ├── code_inspector_json_viewer.png │ ├── data_flow.png │ ├── logo.png │ ├── logo_old.png │ ├── visual_code.png │ └── visual_code_inspector.png ├── index.md ├── install.md ├── output.md ├── requirements.txt └── usage.md ├── evaluation ├── software_invocation_deprecated │ ├── README.md │ ├── evaluation_summary.csv │ ├── execution_commands_python_benchmark.csv │ └── execution_commands_python_old.csv └── software_type │ ├── README.md │ ├── evaluation_summary.csv │ ├── evaluation_summary_scripts_ndcg.csv │ ├── evaluation_summary_scripts_precision_recall.csv │ └── software_type_benchmark.csv ├── inspect4py ├── __init__.py ├── build.py ├── cli.py ├── evaluation │ ├── readme.md │ ├── run_software_invocation_evaluation_deprecated.py │ └── run_software_type_evaluation.py ├── licenses │ ├── 0bsd.txt │ ├── afl-3.0.txt │ ├── agpl-3.0.txt │ ├── apache-2.0.txt │ ├── artistic-2.0.txt │ ├── bsd-2-clause.txt │ ├── bsd-3-clause-clear.txt │ ├── bsd-3-clause.txt │ ├── bsd-4-clause.txt │ ├── bsl-1.0.txt │ ├── cc-by-4.0.txt │ ├── cc-by-sa-4.0.txt │ ├── cc0-1.0.txt │ ├── cecill-2.1.txt │ ├── cern-ohl-p-2.0.txt │ ├── cern-ohl-s-2.0.txt │ ├── cern-ohl-w-2.0.txt │ ├── ecl-2.0.txt │ ├── epl-1.0.txt │ ├── epl-2.0.txt │ ├── eupl-1.1.txt │ ├── eupl-1.2.txt │ ├── gpl-2.0.txt │ ├── gpl-3.0.txt │ ├── isc.txt │ ├── lgpl-2.1.txt │ ├── lgpl-3.0.txt │ ├── lppl-1.3c.txt │ ├── mit-0.txt │ ├── mit.txt │ ├── mpl-2.0.txt │ ├── ms-pl.txt │ ├── ms-rl.txt │ ├── mulanpsl-2.0.txt │ ├── ncsa.txt │ ├── odbl-1.0.txt │ ├── ofl-1.1.txt │ ├── osl-3.0.txt │ ├── postgresql.txt │ ├── unlicense.txt │ ├── upl-1.0.txt │ ├── vim.txt │ ├── wtfpl.txt │ └── zlib.txt ├── old │ └── code_visualization.py ├── parse_setup_files.py ├── resources │ ├── python_mac.so │ ├── python_unix.so │ └── python_win.so ├── staticfg │ ├── __init__.py │ ├── builder.py │ └── model.py ├── structure_tree.py └── utils.py ├── inspect4py_pycg ├── README.md └── pycg_convert.py ├── mkdocs.yml ├── pyproject.toml ├── requirements.txt ├── requirements_eval.txt ├── setup.py └── test ├── __init__.py ├── test_files ├── BoostingMonocularDepth │ ├── .gitignore │ ├── Boostmonoculardepth.ipynb │ ├── LICENSE │ ├── README.md │ ├── dataset_prepare │ │ ├── create_crops.m │ │ ├── generatecrops.m │ │ ├── ibims1_prepare.m │ │ ├── ibims1_selected.mat │ │ ├── mergenet_dataset_prepare.md │ │ └── midas │ │ │ ├── models │ │ │ ├── base_model.py │ │ │ ├── blocks.py │ │ │ ├── midas_net.py │ │ │ └── transforms.py │ │ │ ├── run.py │ │ │ └── utils.py │ ├── demo.py │ ├── evaluation │ │ ├── D3R.m │ │ ├── evaluatedataset.m │ │ ├── extractD3Rpoints.m │ │ ├── index2index.m │ │ └── ord.m │ ├── lib │ │ ├── Resnet.py │ │ ├── Resnext_torch.py │ │ ├── __init__.py │ │ ├── multi_depth_model_woauxi.py │ │ ├── net_tools.py │ │ ├── network_auxi.py │ │ ├── spvcnn_classsification.py │ │ ├── spvcnn_utils.py │ │ └── test_utils.py │ ├── midas │ │ ├── models │ │ │ ├── base_model.py │ │ │ ├── blocks.py │ │ │ ├── midas_net.py │ │ │ └── transforms.py │ │ └── utils.py │ ├── pix2pix │ │ ├── data │ │ │ ├── __init__.py │ │ │ ├── base_dataset.py │ │ │ ├── depthmerge_dataset.py │ │ │ └── image_folder.py │ │ ├── models │ │ │ ├── __init__.py │ │ │ ├── base_model.py │ │ │ ├── base_model_hg.py │ │ │ ├── networks.py │ │ │ └── pix2pix4depth_model.py │ │ ├── options │ │ │ ├── __init__.py │ │ │ ├── base_options.py │ │ │ ├── test_options.py │ │ │ └── train_options.py │ │ ├── test.py │ │ ├── train.py │ │ └── util │ │ │ ├── __init__.py │ │ │ ├── get_data.py │ │ │ ├── guidedfilter.py │ │ │ ├── html.py │ │ │ ├── image_pool.py │ │ │ ├── util.py │ │ │ └── visualizer.py │ ├── requirements.txt │ ├── run.py │ ├── structuredrl │ │ └── models │ │ │ ├── DepthNet.py │ │ │ ├── networks.py │ │ │ ├── resnet.py │ │ │ └── syncbn │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── make_ext.sh │ │ │ ├── modules │ │ │ ├── __init__.py │ │ │ ├── functional │ │ │ │ ├── __init__.py │ │ │ │ ├── _syncbn │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── _ext │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── syncbn │ │ │ │ │ │ │ └── __init__.py │ │ │ │ │ ├── build.py │ │ │ │ │ └── src │ │ │ │ │ │ ├── common.h │ │ │ │ │ │ ├── syncbn.cpp │ │ │ │ │ │ ├── syncbn.cu │ │ │ │ │ │ ├── syncbn.cu.h │ │ │ │ │ │ ├── syncbn.cu.o │ │ │ │ │ │ └── syncbn.h │ │ │ │ └── syncbn.py │ │ │ └── nn │ │ │ │ ├── __init__.py │ │ │ │ └── syncbn.py │ │ │ ├── requirements.txt │ │ │ └── test.py │ └── utils.py ├── Chowlk │ ├── LICENSE │ ├── README.md │ ├── app.py │ ├── config.py │ ├── converter.py │ ├── data │ │ ├── aio.xml │ │ ├── building.xml │ │ ├── building_failing.xml │ │ ├── cogito-onto.xml │ │ ├── discovery.xml │ │ ├── example.xml │ │ ├── example2.xml │ │ ├── final_ontology_cesar.xml │ │ ├── forecasting1.xml │ │ ├── jhon.xml │ │ ├── jon.xml │ │ ├── occupancy_profile.xml │ │ ├── prueba.xml │ │ ├── prueba_fallo.xml │ │ ├── renovation_processes.xml │ │ ├── saref4building.xml │ │ ├── test-data.xml │ │ ├── test.data.drawio │ │ └── wot-discovery-chowlk.xml │ ├── output │ │ └── occupancy_profile.owl │ ├── pyproject.toml │ ├── source │ │ └── chowlk │ │ │ ├── __init__.py │ │ │ ├── associations.py │ │ │ ├── finding.py │ │ │ ├── geometry.py │ │ │ ├── transformations.py │ │ │ ├── utils.py │ │ │ └── writer.py │ ├── static │ │ ├── css │ │ │ ├── poster.css │ │ │ └── style.css │ │ ├── js │ │ │ └── sketch.js │ │ └── resources │ │ │ ├── architecture.png │ │ │ ├── bimerr-logo.jpg │ │ │ ├── example.png │ │ │ ├── fi-logo.png │ │ │ ├── input-gui.png │ │ │ ├── logo.png │ │ │ ├── logo.svg │ │ │ ├── notation_v2.svg │ │ │ ├── oeg-logo.gif │ │ │ ├── output.png │ │ │ └── upm-logo.png │ ├── templates │ │ ├── chowlk_poster.html │ │ ├── home.html │ │ └── output.html │ └── tests │ │ ├── inputs │ │ ├── test_attributes_1.xml │ │ ├── test_attributes_10.xml │ │ ├── test_attributes_11.xml │ │ ├── test_attributes_12.xml │ │ ├── test_attributes_13.xml │ │ ├── test_attributes_2.xml │ │ ├── test_attributes_3.xml │ │ ├── test_attributes_4.xml │ │ ├── test_attributes_5.xml │ │ ├── test_attributes_6.xml │ │ ├── test_attributes_7.xml │ │ ├── test_attributes_8.xml │ │ ├── test_attributes_9.xml │ │ ├── test_disjoint_1.xml │ │ ├── test_disjoint_2.xml │ │ ├── test_equivalence_1.xml │ │ ├── test_equivalence_2.xml │ │ ├── test_individuals_1.xml │ │ ├── test_individuals_2.xml │ │ ├── test_intersection_1.xml │ │ ├── test_intersection_2.xml │ │ ├── test_relations_1.xml │ │ ├── test_relations_10.xml │ │ ├── test_relations_11.xml │ │ ├── test_relations_12.xml │ │ ├── test_relations_13.xml │ │ ├── test_relations_14.xml │ │ ├── test_relations_15.xml │ │ ├── test_relations_16.xml │ │ ├── test_relations_17.xml │ │ ├── test_relations_18.xml │ │ ├── test_relations_19.xml │ │ ├── test_relations_2.xml │ │ ├── test_relations_20.xml │ │ ├── test_relations_21.xml │ │ ├── test_relations_22.xml │ │ ├── test_relations_23.xml │ │ ├── test_relations_24.xml │ │ ├── test_relations_3.xml │ │ ├── test_relations_4.xml │ │ ├── test_relations_5.xml │ │ ├── test_relations_6.xml │ │ ├── test_relations_7.xml │ │ ├── test_relations_8.xml │ │ ├── test_relations_9.xml │ │ ├── test_subclass_1.xml │ │ ├── test_subclass_2.xml │ │ ├── test_union_1.xml │ │ └── test_union_2.xml │ │ ├── outputs │ │ ├── test_attributes_1.owl │ │ ├── test_attributes_10.owl │ │ ├── test_attributes_11.owl │ │ ├── test_attributes_12.owl │ │ ├── test_attributes_13.owl │ │ ├── test_attributes_2.owl │ │ ├── test_attributes_3.owl │ │ ├── test_attributes_4.owl │ │ ├── test_attributes_5.owl │ │ ├── test_attributes_6.owl │ │ ├── test_attributes_7.owl │ │ ├── test_attributes_8.owl │ │ ├── test_attributes_9.owl │ │ ├── test_disjoint_1.owl │ │ ├── test_disjoint_2.owl │ │ ├── test_equivalence_1.owl │ │ ├── test_equivalence_2.owl │ │ ├── test_individuals_1.owl │ │ ├── test_individuals_2.owl │ │ ├── test_intersection_1.owl │ │ ├── test_intersection_2.owl │ │ ├── test_relations_1.owl │ │ ├── test_relations_10.owl │ │ ├── test_relations_11.owl │ │ ├── test_relations_12.owl │ │ ├── test_relations_13.owl │ │ ├── test_relations_14.owl │ │ ├── test_relations_15.owl │ │ ├── test_relations_16.owl │ │ ├── test_relations_17.owl │ │ ├── test_relations_18.owl │ │ ├── test_relations_19.owl │ │ ├── test_relations_2.owl │ │ ├── test_relations_20.owl │ │ ├── test_relations_21.owl │ │ ├── test_relations_22.owl │ │ ├── test_relations_23.owl │ │ ├── test_relations_24.owl │ │ ├── test_relations_3.owl │ │ ├── test_relations_4.owl │ │ ├── test_relations_5.owl │ │ ├── test_relations_6.owl │ │ ├── test_relations_7.owl │ │ ├── test_relations_8.owl │ │ ├── test_relations_9.owl │ │ ├── test_subclass_1.owl │ │ ├── test_subclass_2.owl │ │ ├── test_union_1.owl │ │ └── test_union_2.owl │ │ └── test_finding.py ├── __init__.py ├── demo │ ├── __init__.py │ ├── demo_20_password │ │ ├── Makefile │ │ ├── README.md │ │ ├── __init__.py │ │ ├── all_test.sh │ │ ├── const │ │ │ ├── adjs.txt │ │ │ ├── nouns.txt │ │ │ └── verbs.txt │ │ ├── harvest.py │ │ ├── inputs │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── const.txt │ │ │ ├── dickinson.txt │ │ │ ├── fox.txt │ │ │ ├── gettysburg.txt │ │ │ ├── issa.txt │ │ │ ├── nobody.txt │ │ │ ├── now.txt │ │ │ ├── out.txt │ │ │ ├── preamble.txt │ │ │ ├── scarlet.txt │ │ │ ├── sonnet-29.txt │ │ │ ├── sonnets.txt │ │ │ ├── spiders.txt │ │ │ ├── the-bustle.txt │ │ │ ├── usdeclar.txt │ │ │ └── words.txt.zip │ │ ├── password.py │ │ ├── scarlet │ │ │ ├── adjs.txt │ │ │ ├── nouns.txt │ │ │ └── verbs.txt │ │ ├── sonnets │ │ │ ├── adjs.txt │ │ │ ├── nouns.txt │ │ │ └── verbs.txt │ │ ├── test.py │ │ └── unit.py │ ├── demo_example_argparse.py │ ├── demo_example_class.py │ ├── demo_example_func_main.py │ └── demo_example_inheritance.py ├── pylops │ ├── .coveragerc │ ├── .gitignore │ ├── .travis.yml │ ├── CHANGELOG.md │ ├── CODE_OF_CONDUCT.md │ ├── CONTRIBUTING.md │ ├── LICENSE.md │ ├── MANIFEST.in │ ├── Makefile │ ├── README.md │ ├── azure-pipelines.yml │ ├── docs │ │ ├── Makefile │ │ └── source │ │ │ ├── _static │ │ │ ├── favicon.ico │ │ │ ├── pylops.png │ │ │ ├── pylops_b.png │ │ │ └── style.css │ │ │ ├── _templates │ │ │ ├── autosummary │ │ │ │ ├── base.rst │ │ │ │ ├── class.rst │ │ │ │ ├── exception.rst │ │ │ │ ├── function.rst │ │ │ │ └── module.rst │ │ │ ├── breadcrumbs.html │ │ │ └── layout.html │ │ │ ├── adding.rst │ │ │ ├── api │ │ │ ├── index.rst │ │ │ └── others.rst │ │ │ ├── changelog.rst │ │ │ ├── citing.rst │ │ │ ├── conf.py │ │ │ ├── contributing.rst │ │ │ ├── credits.rst │ │ │ ├── extensions.rst │ │ │ ├── faq.rst │ │ │ ├── gpu.rst │ │ │ ├── index.rst │ │ │ ├── installation.rst │ │ │ ├── papers.rst │ │ │ ├── performance.rst │ │ │ └── roadmap.rst │ ├── environment-dev.yml │ ├── environment.yml │ ├── examples │ │ ├── README.txt │ │ ├── plot_avo.py │ │ ├── plot_bilinear.py │ │ ├── plot_causalintegration.py │ │ ├── plot_cgls.py │ │ ├── plot_chirpradon.py │ │ ├── plot_conj.py │ │ ├── plot_convolve.py │ │ ├── plot_derivative.py │ │ ├── plot_diagonal.py │ │ ├── plot_fft.py │ │ ├── plot_flip.py │ │ ├── plot_identity.py │ │ ├── plot_imag.py │ │ ├── plot_ista.py │ │ ├── plot_linearregr.py │ │ ├── plot_matrixmult.py │ │ ├── plot_mdc.py │ │ ├── plot_multiproc.py │ │ ├── plot_pad.py │ │ ├── plot_patching.py │ │ ├── plot_phaseshift.py │ │ ├── plot_prestack.py │ │ ├── plot_radon.py │ │ ├── plot_real.py │ │ ├── plot_regr.py │ │ ├── plot_restriction.py │ │ ├── plot_roll.py │ │ ├── plot_seislet.py │ │ ├── plot_seismicevents.py │ │ ├── plot_sliding.py │ │ ├── plot_slopeest.py │ │ ├── plot_smoothing1d.py │ │ ├── plot_smoothing2d.py │ │ ├── plot_stacking.py │ │ ├── plot_sum.py │ │ ├── plot_symmetrize.py │ │ ├── plot_tapers.py │ │ ├── plot_transpose.py │ │ ├── plot_tvreg.py │ │ ├── plot_wavelet.py │ │ ├── plot_wavest.py │ │ └── plot_zero.py │ ├── pylops │ │ ├── LinearOperator.py │ │ ├── __init__.py │ │ ├── avo │ │ │ ├── __init__.py │ │ │ ├── avo.py │ │ │ ├── poststack.py │ │ │ └── prestack.py │ │ ├── basicoperators │ │ │ ├── Block.py │ │ │ ├── BlockDiag.py │ │ │ ├── CausalIntegration.py │ │ │ ├── Conj.py │ │ │ ├── Diagonal.py │ │ │ ├── DirectionalDerivative.py │ │ │ ├── FirstDerivative.py │ │ │ ├── Flip.py │ │ │ ├── FunctionOperator.py │ │ │ ├── Gradient.py │ │ │ ├── HStack.py │ │ │ ├── Identity.py │ │ │ ├── Imag.py │ │ │ ├── Kronecker.py │ │ │ ├── Laplacian.py │ │ │ ├── LinearRegression.py │ │ │ ├── MatrixMult.py │ │ │ ├── MemoizeOperator.py │ │ │ ├── Pad.py │ │ │ ├── Real.py │ │ │ ├── Regression.py │ │ │ ├── Restriction.py │ │ │ ├── Roll.py │ │ │ ├── SecondDerivative.py │ │ │ ├── Smoothing1D.py │ │ │ ├── Smoothing2D.py │ │ │ ├── Spread.py │ │ │ ├── Sum.py │ │ │ ├── Symmetrize.py │ │ │ ├── Transpose.py │ │ │ ├── VStack.py │ │ │ ├── Zero.py │ │ │ ├── _Spread_numba.py │ │ │ └── __init__.py │ │ ├── optimization │ │ │ ├── __init__.py │ │ │ ├── eigs.py │ │ │ ├── leastsquares.py │ │ │ ├── solver.py │ │ │ └── sparsity.py │ │ ├── signalprocessing │ │ │ ├── Bilinear.py │ │ │ ├── ChirpRadon2D.py │ │ │ ├── ChirpRadon3D.py │ │ │ ├── Convolve1D.py │ │ │ ├── Convolve2D.py │ │ │ ├── ConvolveND.py │ │ │ ├── DWT.py │ │ │ ├── DWT2D.py │ │ │ ├── FFT.py │ │ │ ├── FFT2D.py │ │ │ ├── FFTND.py │ │ │ ├── Fredholm1.py │ │ │ ├── Interp.py │ │ │ ├── Patch2D.py │ │ │ ├── Radon2D.py │ │ │ ├── Radon3D.py │ │ │ ├── Seislet.py │ │ │ ├── Sliding1D.py │ │ │ ├── Sliding2D.py │ │ │ ├── Sliding3D.py │ │ │ ├── _ChirpRadon2D.py │ │ │ ├── _ChirpRadon3D.py │ │ │ ├── _Radon2D_numba.py │ │ │ ├── _Radon3D_numba.py │ │ │ └── __init__.py │ │ ├── utils │ │ │ ├── __init__.py │ │ │ ├── backend.py │ │ │ ├── deps.py │ │ │ ├── dottest.py │ │ │ ├── multiproc.py │ │ │ ├── seismicevents.py │ │ │ ├── signalprocessing.py │ │ │ ├── tapers.py │ │ │ ├── utils.py │ │ │ └── wavelets.py │ │ └── waveeqprocessing │ │ │ ├── __init__.py │ │ │ ├── lsm.py │ │ │ ├── marchenko.py │ │ │ ├── mdd.py │ │ │ ├── oneway.py │ │ │ ├── seismicinterpolation.py │ │ │ └── wavedecomposition.py │ ├── pytests │ │ ├── test_avo.py │ │ ├── test_basicoperators.py │ │ ├── test_causalintegration.py │ │ ├── test_chirpradon.py │ │ ├── test_combine.py │ │ ├── test_convolve.py │ │ ├── test_derivative.py │ │ ├── test_diagonal.py │ │ ├── test_directwave.py │ │ ├── test_dwts.py │ │ ├── test_eigs.py │ │ ├── test_ffts.py │ │ ├── test_fredholm.py │ │ ├── test_functionoperator.py │ │ ├── test_interpolation.py │ │ ├── test_kronecker.py │ │ ├── test_leastsquares.py │ │ ├── test_linearoperator.py │ │ ├── test_lsm.py │ │ ├── test_marchenko.py │ │ ├── test_memoizeoperator.py │ │ ├── test_oneway.py │ │ ├── test_pad.py │ │ ├── test_patching.py │ │ ├── test_poststack.py │ │ ├── test_prestack.py │ │ ├── test_radon.py │ │ ├── test_restriction.py │ │ ├── test_seislet.py │ │ ├── test_seismicevents.py │ │ ├── test_seismicinterpolation.py │ │ ├── test_signalutils.py │ │ ├── test_sliding.py │ │ ├── test_smoothing.py │ │ ├── test_solver.py │ │ ├── test_sparsity.py │ │ ├── test_tapers.py │ │ ├── test_transpose.py │ │ ├── test_utils.py │ │ ├── test_wavedecomposition.py │ │ ├── test_waveeqprocessing.py │ │ └── test_wavelets.py │ ├── readthedocs.yml │ ├── requirements-dev.txt │ ├── requirements.txt │ ├── setup.cfg │ ├── setup.py │ ├── testdata │ │ ├── optimization │ │ │ └── shepp_logan_phantom.npy │ │ ├── python.png │ │ └── sigmoid.npz │ └── tutorials │ │ ├── README.txt │ │ ├── bayesian.py │ │ ├── ctscan.py │ │ ├── deblurring.py │ │ ├── deghosting.py │ │ ├── dottest.py │ │ ├── interpolation.py │ │ ├── linearoperator.py │ │ ├── lsm.py │ │ ├── marchenko.py │ │ ├── mdd.py │ │ ├── poststack.py │ │ ├── prestack.py │ │ ├── radonfiltering.py │ │ ├── realcomplex.py │ │ ├── seismicinterpolation.py │ │ ├── solvers.py │ │ └── wavefielddecomposition.py ├── somef │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── docs │ │ ├── index.md │ │ ├── install.md │ │ ├── links.csv │ │ ├── objective.md │ │ ├── output.md │ │ ├── paper.pdf │ │ ├── requirements.txt │ │ └── usage.md │ ├── mkdocs.yml │ ├── setup.py │ └── src │ │ ├── somef.egg-info │ │ ├── PKG-INFO │ │ ├── SOURCES.txt │ │ ├── dependency_links.txt │ │ ├── entry_points.txt │ │ ├── not-zip-safe │ │ ├── requires.txt │ │ └── top_level.txt │ │ └── somef │ │ ├── LICENSE │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── cli.py │ │ ├── configuration.py │ │ ├── createExcerpts.py │ │ ├── data_to_graph.py │ │ ├── evaluation │ │ ├── create_header_corpus.py │ │ ├── header_evaluation_interactive.py │ │ ├── output_header_evaluation_summary.py │ │ └── update_evaluation.py │ │ ├── header_analysis.py │ │ ├── models │ │ ├── citation.sk │ │ ├── description.sk │ │ ├── installation.sk │ │ └── invocation.sk │ │ ├── schema │ │ ├── __init__.py │ │ └── software_schema.py │ │ └── test │ │ ├── __init__.py │ │ ├── test_cli.py │ │ ├── test_data_to_graph.py │ │ ├── test_get_data.py │ │ ├── test_header_analysis.py │ │ ├── test_utils.py │ │ ├── utils_for_tests.py │ │ └── widoco_readme.md ├── test_basic │ ├── test_basic_body.py │ ├── test_basic_function.py │ ├── test_basic_function_return.py │ └── test_basic_method.py ├── test_data_flow.py ├── test_docstring_parser │ ├── __init__.py │ ├── google_docstring_test.py │ ├── numpy_docstring_test.py │ ├── sphinx_docstring_test.py │ └── sphinx_docstring_test_v2.py ├── test_dynamic │ ├── argument_call.py │ ├── test_dynamic.py │ ├── test_dynamic_class_import.py │ ├── test_dynamic_from_import.py │ ├── test_dynamic_from_import_alias.py │ ├── test_dynamic_from_import_start.py │ ├── test_dynamic_func.py │ ├── test_dynamic_func_from_import_start.py │ ├── test_dynamic_import.py │ ├── test_dynamic_import_alias.py │ ├── test_dynamic_method.py │ ├── test_dynamic_method_variable.py │ ├── test_dynamic_method_variable_body.py │ └── test_pycg_paper.py ├── test_inheritance │ ├── __init__.py │ ├── nested_call.py │ ├── super_nested_call.py │ ├── super_test.py │ ├── super_test_2.py │ ├── super_test_3.py │ ├── super_test_4.py │ ├── super_test_5.py │ ├── test_classes.py │ ├── test_functions.py │ ├── test_import.py │ ├── test_pycg_paper_2.py │ └── test_self_variable.py ├── test_license_extraction │ └── LICENSE ├── test_multiple_mains │ ├── __init__.py │ ├── bar.py │ ├── foo.py │ ├── lalo.py │ └── test.py ├── test_multiple_mains_indirect │ ├── __init__.py │ ├── bar.py │ ├── foo.py │ └── test.py ├── test_no_main │ ├── __init__.py │ └── foo.py ├── test_random.py └── test_readme │ ├── README.md │ └── subdir │ ├── README.txt │ └── subsubdir │ └── README.rst ├── test_inspect4py.py └── test_utils.py /.github/workflows/pypi-publish.yml: -------------------------------------------------------------------------------- 1 | # This workflows will upload a Python Package using Twine when a release is created 2 | # For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries 3 | 4 | name: Publish Inspect4py package to PyPi 5 | 6 | on: 7 | release: 8 | types: [created] 9 | 10 | jobs: 11 | deploy: 12 | 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | - uses: actions/checkout@v2 17 | - name: Set up Python 18 | uses: actions/setup-python@v2 19 | with: 20 | python-version: '3.9' 21 | - name: Install dependencies 22 | run: | 23 | python -m pip install --upgrade pip 24 | pip install setuptools wheel twine 25 | - name: Build and publish 26 | env: 27 | TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} 28 | TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} 29 | run: | 30 | python setup.py sdist bdist_wheel 31 | twine upload dist/* 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/* 2 | dist/* 3 | env/* 4 | .vscode/ 5 | .idea/ 6 | .ipynb_checkpoints/ 7 | config.json 8 | __pycache__/ 9 | .DS_Store 10 | Lib/* 11 | Scripts/* 12 | .idea/* 13 | *.json 14 | *.ttl 15 | OutputDir/ 16 | output_dir/ 17 | defoe/* 18 | env_* 19 | inspect4py.egg-info/* 20 | test/test_files/hellogitworld 21 | -------------------------------------------------------------------------------- /.readthedocs.yml: -------------------------------------------------------------------------------- 1 | # Required 2 | version: 2 3 | 4 | # Build documentation with MkDocs 5 | mkdocs: 6 | configuration: mkdocs.yml 7 | 8 | # Optionally build your docs in additional formats such as PDF and ePub 9 | formats: all 10 | 11 | # Optionally set the version of Python and requirements required to build your docs 12 | python: 13 | install: 14 | - requirements: docs/requirements.txt 15 | 16 | build: 17 | os: ubuntu-22.04 18 | tools: 19 | python: "3.7" 20 | -------------------------------------------------------------------------------- /CITATION.cff: -------------------------------------------------------------------------------- 1 | title: "Inspect4py: A Knowledge Extraction Framework for Python Code Repositories" 2 | license: BSD-3-Clause license 3 | authors: 4 | - family-names: Filgueira 5 | given-names: Rosa 6 | orcid: "0000-0002-5715-3046" 7 | - family-names: Garijo 8 | given-names: Daniel 9 | orcid: "http://orcid.org/0000-0003-0454-7145" 10 | cff-version: 1.2.0 11 | message: "If you use this software, please cite both the article from preferred-citation and the software itself." 12 | preferred-citation: 13 | authors: 14 | - family-names: Filgueira 15 | given-names: Rosa 16 | - family-names: Garijo 17 | given-names: Daniel 18 | title: "Inspect4py: A Knowledge Extraction Framework for Python Code Repositories" 19 | type: article 20 | year: 2022 21 | doi: 10.1145/3524842.3528497 22 | identifiers: 23 | - description: "Collection of archived snapshots for Inspect4py" 24 | type: doi 25 | value: 10.5281/zenodo.5907936 26 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Contribution guidelines 2 | Contributions to address any of the current issues are welcome. In order to push your contribution, just **push your pull request to the development branch (dev)**. The master branch has only the code associated to the latest release. 3 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.7 2 | 3 | RUN apt update &&\ 4 | apt install -y git &&\ 5 | apt install -y graphviz 6 | 7 | RUN pip install --upgrade pip 8 | 9 | RUN git clone https://github.com/SoftwareUnderstanding/inspect4py 10 | RUN cd inspect4py && pip install -e . 11 | -------------------------------------------------------------------------------- /Dockerfile_old: -------------------------------------------------------------------------------- 1 | FROM python:3.7 2 | 3 | 4 | RUN apt update &&\ 5 | apt install -y git &&\ 6 | apt install -y graphviz 7 | 8 | RUN pip install --upgrade pip 9 | RUN pip install graphviz 10 | RUN pip install cdmcfparser==2.3.2 11 | RUN pip install docstring_parser==0.7 12 | RUN pip install astor 13 | RUN pip install click 14 | 15 | RUN useradd -ms /bin/bash code_user 16 | 17 | ENV USER code_user 18 | ENV HOME /home/code_user 19 | 20 | WORKDIR ${HOME} 21 | 22 | COPY ./inspect4py.py ${HOME}/. 23 | COPY ./code_visualization.py ${HOME}/. 24 | RUN mkdir ${HOME}/staticfg 25 | ADD ./staticfg ${HOME}/staticfg/. 26 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include inspect4py/licenses/* 2 | -------------------------------------------------------------------------------- /docs/images/code_inspector_json_viewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/docs/images/code_inspector_json_viewer.png -------------------------------------------------------------------------------- /docs/images/data_flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/docs/images/data_flow.png -------------------------------------------------------------------------------- /docs/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/docs/images/logo.png -------------------------------------------------------------------------------- /docs/images/logo_old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/docs/images/logo_old.png -------------------------------------------------------------------------------- /docs/images/visual_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/docs/images/visual_code.png -------------------------------------------------------------------------------- /docs/images/visual_code_inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/docs/images/visual_code_inspector.png -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- 1 | mkdocs-material -------------------------------------------------------------------------------- /inspect4py/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = '0.0.8' 2 | -------------------------------------------------------------------------------- /inspect4py/build.py: -------------------------------------------------------------------------------- 1 | from tree_sitter import Language 2 | 3 | Language.build_library( 4 | # Store the library in the `build` directory 5 | 'my-languages.so', 6 | 7 | # Include one or more languages 8 | [ 9 | 'tree-sitter-python' 10 | ] 11 | ) 12 | -------------------------------------------------------------------------------- /inspect4py/evaluation/readme.md: -------------------------------------------------------------------------------- 1 | ## Evaluation 2 | 3 | Simply cd into the right directory and run it. You can do so with the following commands 4 | 5 | ``` 6 | cd src/main_command_evaluation 7 | python3 run_directory_type_evaluation.py 8 | ``` 9 | 10 | Note: this will take some time to execute, as it needs to download > 90 GitHub repositories. 11 | -------------------------------------------------------------------------------- /inspect4py/licenses/wtfpl.txt: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Do What The F*ck You Want To Public License" 3 | spdx-id: WTFPL 4 | 5 | description: The easiest license out there. It gives the user permissions to do whatever they want with your code. 6 | 7 | how: Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file. 8 | 9 | using: 10 | 11 | permissions: 12 | - commercial-use 13 | - modifications 14 | - distribution 15 | - private-use 16 | 17 | conditions: [] 18 | 19 | limitations: [] 20 | 21 | --- 22 | 23 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 24 | Version 2, December 2004 25 | 26 | Copyright (C) 2004 Sam Hocevar 27 | 28 | Everyone is permitted to copy and distribute verbatim or modified 29 | copies of this license document, and changing it is allowed as long 30 | as the name is changed. 31 | 32 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 33 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 34 | 35 | 0. You just DO WHAT THE FUCK YOU WANT TO. 36 | -------------------------------------------------------------------------------- /inspect4py/resources/python_mac.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/inspect4py/resources/python_mac.so -------------------------------------------------------------------------------- /inspect4py/resources/python_unix.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/inspect4py/resources/python_unix.so -------------------------------------------------------------------------------- /inspect4py/resources/python_win.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/inspect4py/resources/python_win.so -------------------------------------------------------------------------------- /inspect4py/staticfg/__init__.py: -------------------------------------------------------------------------------- 1 | from .builder import CFGBuilder 2 | from .model import Block, Link, CFG 3 | -------------------------------------------------------------------------------- /inspect4py_pycg/README.md: -------------------------------------------------------------------------------- 1 | ## Pycg format converter 2 | 3 | `pycg_convert.py` converts the call list generated by inspect4py to be in the format used by pycg. 4 | 5 | Usage: 6 | ``` 7 | python3 pycg_convert.py 8 | ``` 9 | 10 | where `` is the path to a repository directory or the path to 11 | a script. 12 | 13 | This will create an directory `output_dir` including `pycg_call_graph.json` that have the pycg format call list, along with other temporary json files. -------------------------------------------------------------------------------- /mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: inspect4py 2 | nav: 3 | - Home: index.md 4 | - Install: install.md 5 | - Usage: usage.md 6 | - Output: output.md 7 | theme: 8 | name: material 9 | 10 | markdown_extensions: 11 | - admonition 12 | - codehilite: 13 | guess_lang: false 14 | - toc: 15 | permalink: true 16 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = [ 3 | "bs4==0.0.1", 4 | "docstring_parser==0.7", 5 | "astor", 6 | "graphviz", 7 | "click", 8 | "pigar", 9 | "setuptools==54.2.0", 10 | "json2html", 11 | "configparser", 12 | "tree-sitter", 13 | "requests" 14 | ] 15 | build-backend = "setuptools.build_meta" 16 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | docstring_parser==0.7 2 | astor 3 | graphviz 4 | click 5 | pigar 6 | setuptools==54.2.0 7 | json2html 8 | configparser 9 | bigcode_astgen 10 | GitPython 11 | tree-sitter 12 | requests 13 | -------------------------------------------------------------------------------- /requirements_eval.txt: -------------------------------------------------------------------------------- 1 | docstring_parser==0.7 2 | astor 3 | graphviz 4 | click 5 | pigar 6 | setuptools==54.2.0 7 | json2html 8 | configparser 9 | bigcode_astgen 10 | GitPython 11 | tree-sitter 12 | requests 13 | pytest 14 | -------------------------------------------------------------------------------- /test/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/__init__.py -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | /pix2pix/checkpoints 3 | /midas/model-f46da743.pt 4 | /midas/model.pt 5 | /structuredrl/model.pth.tar 6 | dataset_prepare/midas/model.pt 7 | /results 8 | /result 9 | /__pycache__ 10 | */*.pyc 11 | */**/*.pyc 12 | */**/**/*.pyc 13 | */**/**/**/*.pyc 14 | */**/**/**/**/*.pyc 15 | */*.so* 16 | */**/*.so* 17 | */**/*.dylib* 18 | */**/__pycache__ -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2021, Seyed Mahdi Hosseini Miangoleh, Sebastian Dille, Computational Photography Laboratory. All rights reserved. 2 | 3 | This software is for academic use only. A redistribution of this 4 | software, with or without modifications, has to be for academic 5 | use only, while giving the appropriate credit to the original 6 | authors of the software. The methods implemented as a part of 7 | this software may be covered under patents or patent applications. 8 | 9 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED 10 | WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 11 | FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR 12 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 13 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 14 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 15 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 16 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 17 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/dataset_prepare/create_crops.m: -------------------------------------------------------------------------------- 1 | clc 2 | clear 3 | %% 4 | 5 | generatecrops('middleburry',1800/2,100,'train',0) 6 | generatecrops('middleburry',1800/2,100,'test',0) 7 | 8 | generatecrops('middleburry',1400/2,150,'train',100) 9 | generatecrops('middleburry',1400/2,150,'test',100) 10 | 11 | generatecrops('middleburry',1000/2,250,'train',200) 12 | generatecrops('middleburry',1000/2,250,'test',200) 13 | 14 | 15 | generatecrops('ibims1',480/2,70,'train',0) 16 | generatecrops('ibims1',360/2,80,'train',100) 17 | generatecrops('ibims1',280/2,50,'train',200) 18 | -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/dataset_prepare/ibims1_prepare.m: -------------------------------------------------------------------------------- 1 | clc 2 | clear 3 | %% 4 | 5 | load('ibims1_selected.mat'); 6 | 7 | root_dir = ''; 8 | 9 | ibims1_all_files = dir(sprintf('%s/ibims1/rgb/*.png',root_dir)); 10 | 11 | for i=1:numel(ibims1_all_files) 12 | current_name = ibims1_all_files(i).name; 13 | if ismember(current_name,files) 14 | fprintf('%d - %s \n',i,current_name) 15 | else 16 | delete(fullfile(ibims1_all_files(i).folder,ibims1_all_files(i).name)) 17 | end 18 | end -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/dataset_prepare/ibims1_selected.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/BoostingMonocularDepth/dataset_prepare/ibims1_selected.mat -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/dataset_prepare/midas/models/base_model.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import torch.nn as nn 3 | 4 | 5 | class BaseModel(torch.nn.Module): 6 | def load(self, path): 7 | """Load model from file. 8 | 9 | Args: 10 | path (str): file path 11 | """ 12 | parameters = torch.load(path) 13 | 14 | if "optimizer" in parameters: 15 | parameters = parameters["model"] 16 | 17 | self.load_state_dict(parameters) 18 | -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/evaluation/extractD3Rpoints.m: -------------------------------------------------------------------------------- 1 | function [centers,neightbouring_rel,random_rel]=extractD3Rpoints(gt,samples) 2 | % Inputs 3 | % gt: ground truth image to exctact the superpixels from 4 | % samples: expected number of samples (actual number of samples might be slightly different) 5 | 6 | % Outputs: 7 | % centers: superpixel centers to be used within D3R function 8 | % neightbouring_rel: neighbouring point pair relations to be used within D3R function 9 | % random_rel: randomly selected point pair relations to be used within D3R function 10 | 11 | gt(isnan(gt))=0; 12 | [L,NumLabels]=superpixels(gt,samples,'Compactness',20); 13 | 14 | idx = label2idx(L); 15 | [height, width, ~] = size(gt); 16 | neightbouring_rel = cell(NumLabels,1); 17 | random_rel = cell(NumLabels,1); 18 | centers = zeros(NumLabels,1); 19 | for i = 1:NumLabels 20 | mask = L == i; 21 | neightbouring_rel{i} = unique(L(bwdist(mask ,'euclidean')==1)); 22 | random_rel{i} = randi([1,NumLabels],3,1); 23 | a = idx{i}; 24 | center = computeCenter(a,height); 25 | centers(i) = center; 26 | end 27 | 28 | end 29 | 30 | function center = computeCenter(cluster,imgheight) 31 | sumx=0; 32 | sumy=0; 33 | for i=1:length(cluster) 34 | [x,y] = index2index(cluster(i),imgheight); 35 | sumx = sumx + x; 36 | sumy = sumy + y; 37 | end 38 | center = floor(sumx/length(cluster)) + (floor(sumy/length(cluster))-1)*imgheight; 39 | end -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/evaluation/index2index.m: -------------------------------------------------------------------------------- 1 | function [x,y] = index2index(index,rows) 2 | x=mod(index,rows); 3 | y=floor(index/rows)+1; 4 | if x == 0 5 | x = rows; 6 | y = y-1; 7 | end 8 | end -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/evaluation/ord.m: -------------------------------------------------------------------------------- 1 | function out = ord(val1,val2,delta) 2 | ratio = (val1+eps)/(val2+eps); 3 | if ratio > delta 4 | out = 1; 5 | elseif ratio < 1/delta 6 | out = -1; 7 | else 8 | out = 0; 9 | end 10 | end -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/lib/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/lib/multi_depth_model_woauxi.py: -------------------------------------------------------------------------------- 1 | from lib import network_auxi as network 2 | from lib.net_tools import get_func 3 | import torch 4 | import torch.nn as nn 5 | 6 | class RelDepthModel(nn.Module): 7 | def __init__(self, backbone='resnet50'): 8 | super(RelDepthModel, self).__init__() 9 | if backbone == 'resnet50': 10 | encoder = 'resnet50_stride32' 11 | elif backbone == 'resnext101': 12 | encoder = 'resnext101_stride32x8d' 13 | self.depth_model = DepthModel(encoder) 14 | 15 | def inference(self, rgb): 16 | with torch.no_grad(): 17 | input = rgb.cuda() 18 | depth = self.depth_model(input) 19 | #pred_depth_out = depth - depth.min() + 0.01 20 | return depth #pred_depth_out 21 | 22 | 23 | class DepthModel(nn.Module): 24 | def __init__(self, encoder): 25 | super(DepthModel, self).__init__() 26 | backbone = network.__name__.split('.')[-1] + '.' + encoder 27 | self.encoder_modules = get_func(backbone)() 28 | self.decoder_modules = network.Decoder() 29 | 30 | def forward(self, x): 31 | lateral_out = self.encoder_modules(x) 32 | out_logit = self.decoder_modules(lateral_out) 33 | return out_logit -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/midas/models/base_model.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import torch.nn as nn 3 | 4 | 5 | class BaseModel(torch.nn.Module): 6 | def load(self, path): 7 | """Load model from file. 8 | 9 | Args: 10 | path (str): file path 11 | """ 12 | parameters = torch.load(path) 13 | 14 | if "optimizer" in parameters: 15 | parameters = parameters["model"] 16 | 17 | self.load_state_dict(parameters) 18 | -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/pix2pix/options/__init__.py: -------------------------------------------------------------------------------- 1 | """This package options includes option modules: training options, test options, and basic options (used in both training and test).""" 2 | -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/pix2pix/options/test_options.py: -------------------------------------------------------------------------------- 1 | from .base_options import BaseOptions 2 | 3 | 4 | class TestOptions(BaseOptions): 5 | """This class includes test options. 6 | 7 | It also includes shared options defined in BaseOptions. 8 | """ 9 | 10 | def initialize(self, parser): 11 | parser = BaseOptions.initialize(self, parser) # define shared options 12 | parser.add_argument('--aspect_ratio', type=float, default=1.0, help='aspect ratio of result images') 13 | parser.add_argument('--phase', type=str, default='test', help='train, val, test, etc') 14 | # Dropout and Batchnorm has different behavioir during training and test. 15 | parser.add_argument('--eval', action='store_true', help='use eval mode during test time.') 16 | parser.add_argument('--num_test', type=int, default=50, help='how many test images to run') 17 | # rewrite devalue values 18 | parser.set_defaults(model='pix2pix4depth') 19 | # To avoid cropping, the load_size should be the same as crop_size 20 | parser.set_defaults(load_size=parser.get_default('crop_size')) 21 | self.isTrain = False 22 | return parser 23 | -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/pix2pix/util/__init__.py: -------------------------------------------------------------------------------- 1 | """This package includes a miscellaneous collection of useful helper functions.""" 2 | -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/requirements.txt: -------------------------------------------------------------------------------- 1 | torch==1.2 2 | torchvision 3 | cudnnenv 4 | gradio 5 | matplotlib 6 | opencv-python 7 | scikit-image 8 | scipy 9 | gdown 10 | 11 | -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Tamaki Kojima 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/make_ext.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | PYTHON_CMD=${PYTHON_CMD:=python} 4 | CUDA_PATH=/usr/local/cuda-8.0 5 | CUDA_INCLUDE_DIR=/usr/local/cuda-8.0/include 6 | GENCODE="-gencode arch=compute_61,code=sm_61 \ 7 | -gencode arch=compute_52,code=sm_52 \ 8 | -gencode arch=compute_52,code=compute_52" 9 | NVCCOPT="-std=c++11 -x cu --expt-extended-lambda -O3 -Xcompiler -fPIC" 10 | 11 | ROOTDIR=$PWD 12 | echo "========= Build BatchNorm2dSync =========" 13 | if [ -z "$1" ]; then TORCH=$($PYTHON_CMD -c "import os; import torch; print(os.path.dirname(torch.__file__))"); else TORCH="$1"; fi 14 | cd modules/functional/_syncbn/src 15 | $CUDA_PATH/bin/nvcc -c -o syncbn.cu.o syncbn.cu $NVCCOPT $GENCODE -I $CUDA_INCLUDE_DIR 16 | cd ../ 17 | $PYTHON_CMD build.py 18 | cd $ROOTDIR 19 | 20 | # END 21 | echo "========= Build Complete =========" 22 | -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/modules/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/modules/__init__.py -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/modules/functional/__init__.py: -------------------------------------------------------------------------------- 1 | from .syncbn import batchnorm2d_sync 2 | -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/modules/functional/_syncbn/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/modules/functional/_syncbn/__init__.py -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/modules/functional/_syncbn/_ext/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/modules/functional/_syncbn/_ext/__init__.py -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/modules/functional/_syncbn/_ext/syncbn/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | from torch.utils.ffi import _wrap_function 3 | from ._syncbn import lib as _lib, ffi as _ffi 4 | 5 | __all__ = [] 6 | def _import_symbols(locals): 7 | for symbol in dir(_lib): 8 | fn = getattr(_lib, symbol) 9 | if callable(fn): 10 | locals[symbol] = _wrap_function(fn, _ffi) 11 | else: 12 | locals[symbol] = fn 13 | __all__.append(symbol) 14 | 15 | _import_symbols(locals()) 16 | -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/modules/functional/_syncbn/build.py: -------------------------------------------------------------------------------- 1 | import os 2 | from torch.utils.ffi import create_extension 3 | 4 | sources = ['src/syncbn.cpp'] 5 | headers = ['src/syncbn.h'] 6 | extra_objects = ['src/syncbn.cu.o'] 7 | with_cuda = True 8 | 9 | this_file = os.path.dirname(os.path.realpath(__file__)) 10 | extra_objects = [os.path.join(this_file, fname) for fname in extra_objects] 11 | 12 | ffi = create_extension( 13 | '_ext.syncbn', 14 | headers=headers, 15 | sources=sources, 16 | relative_to=__file__, 17 | with_cuda=with_cuda, 18 | extra_objects=extra_objects, 19 | extra_compile_args=["-std=c++11"] 20 | ) 21 | 22 | if __name__ == '__main__': 23 | ffi.build() 24 | -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/modules/functional/_syncbn/src/common.h: -------------------------------------------------------------------------------- 1 | #ifndef __COMMON__ 2 | #define __COMMON__ 3 | #include 4 | 5 | /* 6 | * General settings 7 | */ 8 | const int WARP_SIZE = 32; 9 | const int MAX_BLOCK_SIZE = 512; 10 | 11 | /* 12 | * Utility functions 13 | */ 14 | template 15 | __device__ __forceinline__ T WARP_SHFL_XOR( 16 | T value, int laneMask, int width = warpSize, unsigned int mask = 0xffffffff) { 17 | #if CUDART_VERSION >= 9000 18 | return __shfl_xor_sync(mask, value, laneMask, width); 19 | #else 20 | return __shfl_xor(value, laneMask, width); 21 | #endif 22 | } 23 | 24 | __device__ __forceinline__ int getMSB(int val) { return 31 - __clz(val); } 25 | 26 | static int getNumThreads(int nElem) { 27 | int threadSizes[5] = {32, 64, 128, 256, MAX_BLOCK_SIZE}; 28 | for (int i = 0; i != 5; ++i) { 29 | if (nElem <= threadSizes[i]) { 30 | return threadSizes[i]; 31 | } 32 | } 33 | return MAX_BLOCK_SIZE; 34 | } 35 | 36 | 37 | #endif -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/modules/functional/_syncbn/src/syncbn.cu.h: -------------------------------------------------------------------------------- 1 | #ifndef __SYNCBN__ 2 | #define __SYNCBN__ 3 | 4 | /* 5 | * Exported functions 6 | */ 7 | extern "C" int _syncbn_sum_sqsum_cuda(int N, int C, int S, const float *x, 8 | float *sum, float *sqsum, 9 | cudaStream_t stream); 10 | extern "C" int _syncbn_forward_cuda( 11 | int N, int C, int S, float *z, const float *x, 12 | const float *gamma, const float *beta, const float *mean, const float *var, 13 | float eps, cudaStream_t stream); 14 | extern "C" int _syncbn_backward_xhat_cuda( 15 | int N, int C, int S, const float *dz, const float *x, 16 | const float *mean, const float *var, float *sum_dz, float *sum_dz_xhat, 17 | float eps, cudaStream_t stream); 18 | extern "C" int _syncbn_backward_cuda( 19 | int N, int C, int S, const float *dz, const float *x, 20 | const float *gamma, const float *beta, const float *mean, const float *var, 21 | const float *sum_dz, const float *sum_dz_xhat, 22 | float *dx, float *dweight, float *dbias, 23 | float eps, cudaStream_t stream); 24 | 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/modules/functional/_syncbn/src/syncbn.cu.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/modules/functional/_syncbn/src/syncbn.cu.o -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/modules/functional/_syncbn/src/syncbn.h: -------------------------------------------------------------------------------- 1 | int syncbn_sum_sqsum_cuda( 2 | const THCudaTensor *x, THCudaTensor *sum, THCudaTensor *sqsum); 3 | int syncbn_forward_cuda( 4 | THCudaTensor *z, const THCudaTensor *x, 5 | const THCudaTensor *gamma, const THCudaTensor *beta, 6 | const THCudaTensor *mean, const THCudaTensor *var, float eps); 7 | int syncbn_backward_xhat_cuda( 8 | const THCudaTensor *dz, const THCudaTensor *x, 9 | const THCudaTensor *mean, const THCudaTensor *var, 10 | THCudaTensor *sum_dz, THCudaTensor *sum_dz_xhat, 11 | float eps); 12 | int syncbn_backard_cuda( 13 | const THCudaTensor *dz, const THCudaTensor *x, 14 | const THCudaTensor *gamma, const THCudaTensor *beta, 15 | const THCudaTensor *mean, const THCudaTensor *var, 16 | const THCudaTensor *sum_dz, const THCudaTensor *sum_dz_xhat, 17 | THCudaTensor *dx, THCudaTensor *dgamma, THCudaTensor *dbeta, float eps); 18 | -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/modules/nn/__init__.py: -------------------------------------------------------------------------------- 1 | from .syncbn import * 2 | -------------------------------------------------------------------------------- /test/test_files/BoostingMonocularDepth/structuredrl/models/syncbn/requirements.txt: -------------------------------------------------------------------------------- 1 | future 2 | cffi 3 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/config.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | class Config: 4 | SECRET_KEY = os.environ.get("SECRET_KEY") or "hard to guess string" 5 | TEMPORAL_FOLDER = os.environ.get("TEMPORAL_FOLER") or "tmp" 6 | TEMPLATES_AUTORELOAD = True 7 | 8 | class DevelopmentConfig(Config): 9 | DEBUG = True 10 | 11 | class ProductionConfig(Config): 12 | DEBUG = False 13 | 14 | config = { 15 | "development": DevelopmentConfig, 16 | "production": ProductionConfig, 17 | "default": DevelopmentConfig 18 | } -------------------------------------------------------------------------------- /test/test_files/Chowlk/converter.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | 3 | from source.chowlk.transformations import transform_ontology 4 | from source.chowlk.utils import read_drawio_xml 5 | 6 | 7 | def main(diagram_path, output_path, type, format): 8 | 9 | root = read_drawio_xml(diagram_path) 10 | ontology_turtle, ontology_xml, namespaces, errors = transform_ontology(root) 11 | 12 | file = open(output_path, mode="w") 13 | 14 | if format == "ttl": 15 | file.write(ontology_turtle) 16 | elif format == "xml": 17 | file.write(ontology_xml) 18 | 19 | file.close() 20 | 21 | 22 | 23 | if __name__ == "__main__": 24 | 25 | parser = argparse.ArgumentParser(description="Convert an xml conceptualization into an ontology.") 26 | parser.add_argument("diagram_path", type=str, help="the path where the diagram is located") 27 | parser.add_argument("output_path", type=str, help="the desired location for the generated ontology") 28 | parser.add_argument("--type", type=str, default="ontology", help="ontology or rdf data") 29 | parser.add_argument("--format", type=str, default="ttl", help="file format: ttl or xml") 30 | args = parser.parse_args() 31 | 32 | main(args.diagram_path, args.output_path, args.type, args.format) 33 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = [ 3 | "setuptools>=42", 4 | "wheel" 5 | ] 6 | 7 | build-backend = "setuptools.build_meta" -------------------------------------------------------------------------------- /test/test_files/Chowlk/source/chowlk/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/Chowlk/source/chowlk/__init__.py -------------------------------------------------------------------------------- /test/test_files/Chowlk/source/chowlk/geometry.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | def get_corners(x, y, width, height): 4 | 5 | p1 = (x, y) 6 | p2 = (x, y+height) 7 | p3 = (x+width, y) 8 | p4 = (x+width, y+height) 9 | 10 | return p1, p2, p3, p4 11 | 12 | 13 | def get_corners_rect_child(child_element): 14 | 15 | geometry = child_element[0] 16 | x = float(geometry.attrib["x"]) if "x" in geometry.attrib else 0 17 | y = float(geometry.attrib["y"]) if "y" in geometry.attrib else 0 18 | width, height = float(geometry.attrib["width"]), float(geometry.attrib["height"]) 19 | p1, p2, p3, p4 = get_corners(x, y, width, height) 20 | 21 | return p1, p2, p3, p4 22 | 23 | 24 | def proximity_to_shape(point, xml_shape, thr): 25 | 26 | p1, _, _, p4 = get_corners_rect_child(xml_shape) 27 | 28 | if abs(p1[0] - point[0]) <= thr and p1[1] <= point[1] <= p4[1]: 29 | near = True 30 | elif abs(p1[1] - point[1]) <= thr and p1[0] <= point[0] <= p4[0]: 31 | near = True 32 | elif abs(p4[0] - point[0]) <= thr and p1[1] <= point[1] <= p4[1]: 33 | near = True 34 | elif abs(p4[1] - point[1]) <= thr and p1[0] <= point[0] <= p4[0]: 35 | near = True 36 | else: 37 | near = False 38 | 39 | return near -------------------------------------------------------------------------------- /test/test_files/Chowlk/static/js/sketch.js: -------------------------------------------------------------------------------- 1 | var pFilename = document.getElementById("filename"); 2 | var inputFile = document.getElementById("file"); 3 | var resetButtton = document.getElementById("reset"); 4 | var submitButton = document.getElementById("submit"); 5 | var errorMessage = document.getElementById("error-message"); 6 | 7 | inputFile.addEventListener("change", ()=>{ 8 | var filepath = inputFile.value 9 | var filename_array = filepath.split("\\") 10 | pFilename.innerText = filename_array[filename_array.length - 1] 11 | errorMessage.style.visibility = "hidden" 12 | }) 13 | 14 | resetButtton.addEventListener("click", ()=>{ 15 | pFilename.innerText = "" 16 | errorMessage.style.visibility = "hidden" 17 | }) -------------------------------------------------------------------------------- /test/test_files/Chowlk/static/resources/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/Chowlk/static/resources/architecture.png -------------------------------------------------------------------------------- /test/test_files/Chowlk/static/resources/bimerr-logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/Chowlk/static/resources/bimerr-logo.jpg -------------------------------------------------------------------------------- /test/test_files/Chowlk/static/resources/example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/Chowlk/static/resources/example.png -------------------------------------------------------------------------------- /test/test_files/Chowlk/static/resources/fi-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/Chowlk/static/resources/fi-logo.png -------------------------------------------------------------------------------- /test/test_files/Chowlk/static/resources/input-gui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/Chowlk/static/resources/input-gui.png -------------------------------------------------------------------------------- /test/test_files/Chowlk/static/resources/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/Chowlk/static/resources/logo.png -------------------------------------------------------------------------------- /test/test_files/Chowlk/static/resources/oeg-logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/Chowlk/static/resources/oeg-logo.gif -------------------------------------------------------------------------------- /test/test_files/Chowlk/static/resources/output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/Chowlk/static/resources/output.png -------------------------------------------------------------------------------- /test/test_files/Chowlk/static/resources/upm-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/Chowlk/static/resources/upm-logo.png -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_attributes_1.xml: -------------------------------------------------------------------------------- 1 | 7VbLbpwwFP0apHaRkR8DE5YZ8tpEE2kqdVk54IIVg5HxPOjX1wYzwEVpG6lVN5FY3HOuX8fXxyagSXl+0KwunlTGZUBQdg7obUAIXhMSuA9lbc9cr6OeyLXIfKOR2Isf3JPIsweR8WbW0CgljajnZKqqiqdmxjGt1Wne7LuS81lrlvMFsU+ZXLJfRWYKr4JsRv6Ri7wYZsZR3GdKNjT2SpqCZeo0oehdQBOtlOmj8pxw6TZv2Je+3/0b2cvCNK/Mn3TYPTZX33ZtKGSSRu1To+OCX9F+lCOTBy/4E5Pys6Uqu3E3GTPMtDV/1qrm2tga3rhaetbrMu2wWVodqoy7+VBAt6dCGL6vWeqyJ3s8LFeYUlqEbdhUrP6inpXolu+Y2sVdvcKt/dDKakxQENqhkw4TgCnAa4BDgCOANwBfAxzPsUN2TXNMAQ4B3gAcT8Z3+jDQh4E+DPRhoA8DfRjow0AfBvpGjIE+DPRhoA8DfXjUZz+6zVhTdIfB1XZ5Wv0BPtpzxc8Typ/eB65KbnRrmwzZjbeWv0pI7K+S02hMgv19U0xMSb0Dmb8L8svQo11s4B3zDvesF+7pXJNI1jQf5vgwxy/M8S/8EP1vP4QLPwQkksbdBeJow9x0ynvqZSCsZzxlJ72w/VNTGFN30b3LsYavKlbyxvlmlaoyIHTSdzYJcJ99fWsXVsrw39vvhaWveWfY3cFIUXHPZ0y/7mwv4Z7CW7RC4V8q5RrNSokRWpYyRstSXhq+o5YWjn8dXW7y70bvfgI= -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_attributes_12.xml: -------------------------------------------------------------------------------- 1 | 7VZdb5swFP01SNtDImwHUh4Jazpp7dIpk/o4edgFVoM9cL7663dNTADTaXvY+tTIUu45vr72uR8SHknK401NVX4nGRce9tnRIx88jNECY88sn53OzNUiPBNZXTDr1BPb4plb0rfsrmC8GTlqKYUu1JhMZVXxVI84WtfyMHZ7lGJ8q6IZnxDblIop+1AwnVsVeNnzH3mR5d3NKIzOOyXtnK2SJqdMHgYUufZIUkupz1Z5TLgwyevycj63/s3u5WE1r/TfHLgTX5b7x+gh/pyushgr8fPT7cxG2VOxs4I9HAqIt2LFHszMmB31vSOqpqPgugvrkRhC5Vqr1lqbPdrweUVL3iia8nkqSw+TwdnRJW2S9KnLPORLGbOSGv5Wh7zQfGvCAHeAZgMu16UAhMzbaPqU1XJXsc1Oi6Lilme0ftrAqUKbBvTnfnC5a5i6Lg+81vw4oGwqb7gsua5P4NLtRrastq9RYPGh7xLc+eTDDvEtSW1nZpfYffHAsPV7uZbRc7WO4h+h3mS3u+NsO/tGXqrlu/V7IKBaJGZUU31S/L6WCkSeJuluc8dNfP/P2W4qqr7Ke1m0+TOMMnarKFjB8ufwmsT3AgidtBg7mDh44eDAwaGDlw6+cnA0xgbBm8aYODhw8NLB0SC+0YccfcjRhxx9yNGHHH3I0YccfcjR12Pk6EOOPuToQ44+1OuD9U8mBIfL0YSQBUzf4Icm84JIOJ0X8r/GBU/GpR2URNCmeZuOt+l45elArzUdAPuPjnZv8OlGrn8B -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_attributes_13.xml: -------------------------------------------------------------------------------- 1 | 7VZdb9owFP01eQTFNiHwCAyotPVjaqtKe5lM4iZRHTs4poH9+tmJQxIHBtPWt6IIfI7ta59770Fx0CLdrwXO4lseEupAN9w76IsD4dj31bcmDhUxclFFRCIJKwo0xGPyixjSNewuCUneWSg5pzLJumTAGSOB7HBYCF50l71y2j01wxHpEY8Bpn32JQllXLET6Df8DUmiuD4ZjKfVTIrrxUZJHuOQFy0KLR20EJzLapTuF4Tq3NV5qfatzsweLyYIk9dsuKXf/ffX6cvsLphHM5jR7ddvAxPlHdOdEezAMVXx5mHyroaRHtbUpiZYXlPquCProJkKFUuZlaOVnsM5GTKckjzDARkGPHUgau3tHFImSR7qzKt8ZXrIuFQ/8yJOJHnUYRRXqF5TXCxTqhDQd8PBWyT4joX3O0kTRgwfYvF2r3YlUjegO3S941nt1NV5IEKSfYsyqVwTnhIpDmpJPTs1ZTV9DTyDi6ZLYL0mbneIa0hsOjM6xm6Kpwamfqdr+UzX+QztKXvaT+62gx/3PoZX1xKnOne0j3ihzputdiyQCWeYPgieqYQcjqu6EQxyVTegWYglloeMtPZUPSPsLrpQdhHzdLPLL1f8PxQRQq9TRARVg7Q+oF9SeKKkvvfvFV2Otj+LDfMHYopu+HYyeJ74Jyp6Jtd2DrUPiI7sXs5jznD2xB94UqZRM5kel1q8uXrcobrHwnU8FXpRYmhhZOGRhT0Ljy3sW3hi4WkXa6Tu1MXIwp6FfQtPW/G1PmDpA5Y+YOkDlj5g6QOWPmDpA5a+BgNLH7D0AUsfsPSBRp969F9gHpfN0LimZ5ETRjrrGn/UNY3nD72eUQAa940ygsOPsgo8bZUFxXn+6Y9Pf/zBHx9gCXi1JdDfvw0o2Lw1lnOtV2+0/A0= -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_attributes_2.xml: -------------------------------------------------------------------------------- 1 | 7VZdb9sgFP01SN1DIsB24jw2TtJp6pROmdS9EpvZXm3jYfLh/vqBjWP7pvuotO2pkpVwDly4BzgAcoL8fCdZmXwUEc8QxdEZOStEKXEpRebDUd0yvjtriVimkW3UE7v0mVsSW/aQRrwaNVRCZCotx2QoioKHasQxKcVp3OyryMajlizmV8QuZNk1+5hGKrEq6Lzn3/M0TrqRyWzR1uSsa2yVVAmLxGlAOWvkBFII1Zbyc8AzM3ndvLRxm5/UXhKTvFB/EnC/TU71t03mPsylSEp3oXZfJk7by5FlByv4BtFZpjtcViUrTNqqtnMx+34wuS73LHyKpTgU0SQUmZDIudXtZLy/oZ6HTBaB/gXld328LsXN/5oi30c+7kbUubeDtvU6BBd6+W4jppiqS/4gRcmlqtsBO9bO7iVN2qTGjWqsezklqeK7koWm9qQ3qeYSlWcaEaOyYOVn8SDSZhINU5pys2u8pf7wVM90gJG3MloMpgA7ALsAewDPAJ4D7AO8GGODdE5j7ADsATwHeDHo3+gjQB8B+gjQR4A+AvQRoI8AfQTo6zEB+gjQR4A+AvSRXp/+nGXEqqTZDKTZYdAz1kZHva/4eUBZD91xkXMla92kq/UXRrEJskca9a3DT/0BoQ+ClksGh4Nj2zF7JsWXznvb6oJ17itc7F65uPFNkLGqerPHmz1+YY9/4wjvPzpiLlLC7tfsk5rg7XO4/HDk8Qv3WnfJROnxcgFZat8R2jX9VXRh2+smUapsShtTxyo+LVjOK+OcaShyRJ1B7GgQ4D/9DihNsRCK/96A/WW7PagsLbjlIyaftjoqNdfhCk+x95cWs1u6unvQvLCUC3y9lAS/fi017N8/Td3gFemsfwA= -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_attributes_3.xml: -------------------------------------------------------------------------------- 1 | 7VbbjpswEP0apPahEbYD2Txu6O62lbbJbipV6puLXUABjIxz26/vGEyAQb1JzdtKSMw5tsecmTkSHouK04PmVfqohMw96ouTx957lJI5pZ59fHFumZt52BKJzoTb1BPb7EU60nfsPhOyHm00SuUmq8ZkrMpSxmbEca3Vcbzth8rHt1Y8kRNiG/N8yn7NhEmdCrro+Q8yS9LuZhIu25WCd5udkjrlQh0HFLvzWKSVMm1UnCKZ2+J1dWnP3f9i9fJhWpbmbw58Wnx+fN6s493u+enjt3K7fXo5vQvaLAee751gj4Y55FuJ7ABhYsOO+t4RZd1RcN2F9dgtpEqNqZro3q7xWs5KXsi64rGcxarwKBucHV3SFMmcu8pDvSoblsrAa3VMMyO3Ng1wRxg24FJT5ICI/TYe7xKt9qVY702eldLxguvdGk5lxg6gP/ODy13D0rlqHqQ28jSgXCkfpCqk0WfY0q2Grq1urknX5mM/JXTpuHQ4Ib4juZvM5JK7bx4Ern//0Mtw0ss3NaR+Cxw0jN0Kbrg5V3KjVQU6z22/OnZS/6aY0l7o/7n8dcmrL2qjsqaglqls3EgMVvD4M6hn5HsBpI4aTBFmCM8RDhAOEV4gfIPwcowtgm8aY4ZwgPAC4eUgv9VHkD6C9BGkjyB9BOkjSB9B+gjS12OC9BGkjyB9BOkjvT54rI/qtBkG8n/8Q3068s/FK0P/EDr1D7uWfRYT+zSuiXJe16/meDXHb8xxDT+E1/MDwP63o1kb/Lyxu58= -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_attributes_4.xml: -------------------------------------------------------------------------------- 1 | 7VbJbtswEP0aAukhBhdLso+x46SHFknhAD0GtMhKaihRoegtX19SojaqK1DfAgjwvMdl+N7MAAZknZ/uFS3Tz5JxATBkJ0BuAcZojjGwH2TnhlnMw4ZIVMbcpp7YZm/ckdCx+4zxarRRSyl0Vo7JWBYFj/WIo0rJ43jbNynGWUua8AmxjamYsl8zplOnAkc9/5FnSdpmRuGyWclpu9kpqVLK5HFAkQ0gayWlbqL8tObCmtf60py7+8Vq9zDFC/03B1ISfWJvh51+ll9E8MrZ96ftNWluOVCxd4IBDoW5b8WygwkTG7bUriWKqqVMuo4F5MZclWpd1tGdXaMVnxU051VJYz6LZQ4wGZwdJalN0ufWeeNXacNCavOzOqaZ5lt7jeGOptkMl+pcGITs22j8kii5L9jDXous4I5nVL08mFOZtg0IZzDocg2tc24euNL8NKCclfdc5lyrs9nSrkaurK6vEXH42HcJXjouHXYIdCR1nZl0d/fFM4Gr3z/UMpzU8qq12thfjNwNX/dSj2y7jqWQqqmhSnZXOAiA7SjzFujFH/rzXfU2GCwWYDEsbpO0WTdHoOkacsOopvpc8kclS2P2uUnYspMmqJ/GrWr45x6oClo+yUeZ1VW1TGnj2udgZT44M0VdQxDcWi0WYw8TD889HHg49HDk4YWHl2NskXnTGBMPBx6OPLwc3G/1IU8f8vQhTx/y9CFPH/L0IU8f8vT1GHn6kKcPefqQpw/1+sxnh7lK62ZA/2eIMVyOhpjAnwwxwtMhJpea4Wgyw/XUrAWtqvfheB+O3wzHBeYBR5ebBwP7/z712uAfJNn8AA== -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_attributes_5.xml: -------------------------------------------------------------------------------- 1 | 7VZNj5swEP01SO2hiLGTEI4bupteql0pVXusvNgLbgymxvnqr68NJoCz7W6l5rYSSuY922PemxmJAKflca1IXXyWlIkARfQY4I8BQngWm19LnDoCwawjcsVpR8FAbPgv5sjIsTtOWTPZqKUUmtdTMpNVxTI94YhS8jDd9iTF9Naa5OyC2GREXLLfONVFxy5RPPCfGM+L/mZYJN1KSfrNTklTECoPIwrfBjhVUuouKo8pE9a73pfu3N0fVs8vplilX3Pg+9en5Oc6oT+Q2J+O8VbGW/iAuyx7InZOcIAWwuRbUb43YW7DnnrsiarpKXPdmQ3wjUlVaF230Z1dIw0LK1KypiYZCzNZBgiPzk4uaU3Sp95541dtw0pq87c6FFyzjU1juIPpNcMVuhQGgX03km1zJXcVvd9pwSvmeErU9t6c4to2YBRG8/NdY+ucm3umNDuOKGflmsmSaXUyW/rVpSur62uYOXwYugQljivGHRI5krjOzM+5h+KZwNXvH2q5uKilqRO+oUQTfarZg5K1kWc1vIMwxO8vHG/tY/aK6GXDm4rUX+SD5K2Flqlt3Iqar8wThcbBNArmJnXaYuRh7OGZh+ceXng49vDSw8kUW2TeaYqxh+cejj2cjPJbfeDpA08fePrA0weePvD0gacPPH0DBk8fePrA0weePhj0mcdOTlO0zQD/Z2LQbDoxGC4nBuJnJgZfa2Di5wcmFaRp3objbTj+MhxXmAe0vN48GDh8aLRro681fPsb -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_attributes_6.xml: -------------------------------------------------------------------------------- 1 | 7VZdb9sgFP01flxkIHaax8Trh9R17ZRJfaaG2qjYMEy+9usHDo7t631Ky1slpNxzgAvncK/iiGTV4dZQXT4oxmWEY3aIyMcIYzTHOPIjZscTczVPT0RhBAuLemIjvvNAxoHdCsab0UKrlLRCj8lc1TXP7Yijxqj9eNmrkuNTNS34hNjkVE7ZZ8FsGVTgRc/fcVGU3ckoXZ5mKtotDkqakjK1H1DkOiKZUcqeouqQcenN63w57bv5xez5YobX9m82PMgvi93r8nn1OV8XK6zlt/tPH0KWHZXbIDjCqXT51kzsXFj4sKNeOqJuOsodd2YjsnKpSmt1G934OdrwWU0r3mia81muqgiTwd7RIa1J9tg57/zSPqyVdT/rfSks3/g0jtu7YnNcaSvpEPJ3o/lbYdS2Zo9bK0XNA8+oeXt0u4T1BRjP4uR81tC6zgduLD8MqGDlLVcVt+bolnSzy/Csoa5REvC+rxLcrSmHFRIHkobKLM65+8dzQXi/f3jL+eQt3TuRFaOW2qPmT0ZpJ+84Mbp1jfvM8Z99bmqqv6onJVrnPKN93GpJ1m7EM2dcFkeJS521GANMAJ4DnACcArwA+Arg5Rh75O40xgTgBOAFwMtBfq8PAX0I6ENAHwL6ENCHgD4E9CGgr8cI6ENAHwL6ENCHen1u+IZpyrYY0P9pFJwuRo1C8LRREEmnjUIu1SfJz/skk7Rp3pvjvTl+0xwX6Ifzn8QF+sHB/vuinRt8pZHrHw== -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_attributes_7.xml: -------------------------------------------------------------------------------- 1 | 7VZdb9sgFP01flxkIHbqx8RLMm3t0qmVsldmiI2KDcPkq79+YOPYJpm2h3VPlZByzwHu5dwPxQFKy9NaYVk8CEJ5AENyCtDHAEIwhTCwKyTnlrmbxi2RK0bcoZ54Yq/UkaFj94zQenRQC8E1k2MyE1VFMz3isFLiOD62E3wcVeKcXhFPGebX7JYRXTgVcNbznyjLiy4yiJN2p8TdYaekLjARxwGFlgFKlRC6tcpTSrlNXpeX9t7qN7uXhyla6b+58MC/zQ67ZDv/mi3yOZT855f7D87LAfO9ExzAmBt/C8IOxsyt2VE/OqKqO8qEu7ABmhtXhdaysVZ2D9d0UuGS1hJndJKJMoBocHcUpEmSPneZN/mS1qyENj+LY8E0fbJuDHc0zWa4QpfcIGDfhrOXXIl9RTZ7zVlFHU+wetmYW0zbBgwnYXSJNUxdlweqND0NKJfKNRUl1epsjnS7iSur62sQOXzsuwR2Z4phh4SOxK4z84vvvnjGcPW7XUv1OTytULnZfV8zfr99fo3l8kYtTZ3QnGCN9VnSRyWkkXduy9SxV2lvckhtnPDPWa8rLJ/Fo2BNHi0jrd0oixZmhRPzqjQMIuM6bTD0MPLw1MORh2MPzzx85+FkjC0ybxpj5OHIwzMPJwP/Vh/w9AFPH/D0AU8f8PQBTx/w9AFPX4+Bpw94+oCnD3j6QK/PrH8yKTAeTwqC15MCZsn1pKC3GhR4e1BSjuv6fR7e5+H/zsPlX+IN5sHA/gOj2Rt8pqHlLw== -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_attributes_8.xml: -------------------------------------------------------------------------------- 1 | 7VZbb5swFP41PC7CdiDlMaGXSVvXTpnU9WlysAtWDfbAubBfP5uYACettod1T5Us5Xyfj4/9nYtCQNLycFNTXdwqxmWAQ3YIyGWAMZpjHLgVsvbIXMzjI5HXgnmngViLX9yToWe3gvFm4miUkkboKZmpquKZmXC0rtV+6vak5PRWTXN+RqwzKs/ZB8FM4VXgxcB/5CIv+ptRnBx3Sto7eyVNQZnajyhyFZC0VsocrfKQcumS1+fleO76ld3Tw2pemb85cCu/LnZPycPyS7bKl1jLn58+f/BRdlRuveAAx9LGWzGxs2buzJ7a9ETV9JS97sQGZGlDFcbozrp2e7Ths4qWvNE047NMlQEmo7OTS7okmbbPvM2XdmaljP1Z7Qth+NqFsdzeNpvlClNKi5B7G82e81ptK3a3NVJU3POM1s939pQwrgHDWRid7hqnrs8Drw0/jCifyhuuSm7q1rr0u4kvq+9rFHm8H7oE9z7FuENCT1Lfmfkp9lA8a/j6vVLLhJvH7/rhR/t4ua026yLNNi/U0taJLBk11LSa39dKW3ntWaK7rHEXOfxznpuK6m/qXokuc47Rzu60RCu7wpl9RxoGkQ2ddhgDTACeAxwBHAO8APgC4GSKHbJvmmICcATwAuBkFN/pQ0AfAvoQ0IeAPgT0IaAPAX0I6BswAvoQ0IeAPgT0oUGfXf9kNnC8mMwGweezgUh8PhvkrUYDvzwaqaRN8z4P7/Pwf+fh9L/wBvNg4fBJ0e2NPszI1W8= -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_attributes_9.xml: -------------------------------------------------------------------------------- 1 | 7VbLctsgFP0aLesRYNnR0laT9BE3adyZTJdUEIkGCSJhy87XFySwJOykXdS7zDDjew5wL+c+xgpQUuyuKyzzlSCUBzAkuwB9DCAEUwgDs0Ky75iL6awjsooRe6gn1uyFWjK07IYRWo8OKiG4YnJMpqIsaapGHK4q0YyPPQo+jipxRo+IdYr5MfvAiMqtCjjv+U+UZbmLDGZxt1Ngd9gqqXNMRDOg0GWAkkoI1VnFLqHcJM/lpbt39cru4WEVLdW/XFjx7/PtY/yw+JYuswWU/PnrzQfrZYv5xgoO4Ixrf0vCttrMjOmoX44oa0fpcAc2QAvtKldKttaV2cM1nZS4oLXEKZ2kogggGtwdBWmTpPYu8zpf0pilUPpn2eRM0bVxo7lGN5vmclVwjYB5G06fskpsSnK7UZyV1PIEV0+3+hZTpgHDSRgdYg1T5/JAK0V3A8qm8pqKgqpqr4+43diW1fY1iCxu+i6B7kw+7JDQkth2Znbw3RdPG7Z+p2v5efvl5n4F7l9+P9c/C5KDZiVO1FLXCS0IVljtJb2rhNTy9l2ZHHuU9jaH1MQJ/571usTyh7gTrM2jYaSxW2XRUq9wol+VhEGkXScthh5GHp56OPLwzMNzD194OB5jg/Sbxhh5OPLw3MPxwL/RBzx9wNMHPH3A0wc8fcDTBzx9wNPXY+DpA54+4OkDnj7Q69PLjE+dt80A/s/YwGlkFA8GB8HjwQHz+Hhw0LnmBp6em4Tjun4fj/fxeGM8zjIRh7+NM0yEhv0XR7s3+G5Dl38A -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_disjoint_1.xml: -------------------------------------------------------------------------------- 1 | 7VfbktwmEP0aPXpKwGg0epyL164kju1sqnb9yApGIkZCQcxl/fUBCUmAZjaplNdPVm3Vco6ahtN0N5oI7arLO4mb8oMglEcwJpcI7SMIwRLCyPzF5Lln1stVTxSSEWs0EffsG7VkbNkjI7T1DJUQXLHGJ3NR1zRXHoelFGff7CC4v2qDCzoj7nPM5+wDI6q0KmA68e8pK8phZbDK+jcVHoytkrbERJwdCr2N0E4KofpRddlRboI3xKWfd3fj7bgxSWv1XyZ84J/T0yF72Pyeb4sNbPjfv/72xno5YX60giO44trflrCTHhZmOFBPA1G3A6WXG9kIbbSrUqmmG92Zd7ilixpXtG1wThe5qCKInLneIl2Q1PMQeR2vxgxrofS/7blkit4bN5o762TTXKkqrhEwe8P510KKY00+HhVnNbU8wfLrRz2LKZOA8SJOxrXc0A1xoFLRi0PZUL6joqJKPmuT4W1mj9XmNUgsPk9ZAgeb0s2Q2JLYZmYx+p4OTw/s+V0/S5x/+VTsf/mctX/UVQ7A+6fH09WzDGJKa7IxRaGRaGjth/AgarUTXMjOFsX6yTLN0wtTj9bGjL90gUws2puAxAN4HkBN7pjZfocIbktKBhe1Fvs42mngODRw8tghx6VtD2uNWoWlCrR0nLNsh505WOYWxWMSUDKr/1lWtOIoc/pC5Je2MWFZUPWCHbqeUk7KJFcyZuAk5Vixk7/da1lkV/gkmBYyZiyMoZexKE18F71MO8ttJIEjtFotsvFZZ8h3u14vYueB/iJ9jGaLdAk/huT/1wC81s9wZZqF7TkuEmftfENY+5fZzwPTpzC8Lzzr6x1KtwrllxDmrNCZuM91ClFdR1vTUJi+TTb2RcUIMdO3krbsG37iQzY2ZgddjJJtlOyvl2NsLDl+onw7tjvH5NA9405nzWy8Je26093kJv3t3nKzGb6JFwim6XdJU7RcgNSfJA6Hlr5KuqBZuuirDW12HLftvHt28e76WPzvF1Jb4+ZP0YvrGf+It/FCx2YXm8OGuw7DAKMALwOcBHgV4DTA6wBnPjZI78nHKMBJgNMAZ45/ow8E+kCgDwT6QKAPBPpAoA8E+kCgb8Ig0AcCfSDQBwJ9YNLX1efNIpvdIDfrZomC3gnmHxHj94J7JaDX+oZYvlAQ4GdB/CyI1y0IgNIfVhAaTj+++gtl+gmL3v4D -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_disjoint_2.xml: -------------------------------------------------------------------------------- 1 | 7VhdT9swFP01eVwV203bPLYpMAkYm4rE4M0kbpLhxFnitul+/ezE+bATBkIwNgkUCZ8T+9r3+NzYYCEvKc9ynEWXLCDUgnZQWmhtQQimEFrysYNjzSyms5oI8zhQnTpiE/8iirQVu4sDUmgdOWOUx5lO+ixNic81Duc5O+jdtozqs2Y4JANi42M6ZG/igEcqCzjv+M8kDqNmZjBz6zcJbjqrTIoIB+zQo9CJhbycMV63ktIjVIrX6FKPO33kbbuwnKT8OQMu6bf5fuveLL/4q3AJM/rz/OKTirLHdKcStuCMinirIN6LZiibDXXfEGnRUGK6lrXQUoSKOM+q1ql8hwsySXFCigz7ZOKzxIKoN1abpBKJHxvlhV6ZbKaMi1+rQxRzspFhBHcQZhNcxBMqEJBrw/5DmLNdGlztOI1TovgA5w9XYlTMpQHtie20c/Wla3QgOSdlj1JSnhGWEJ4fRZfmrau2VfkaOAofOpfApk/Ud4itSKycGbaxu80TDbV/43u5Lq93d3RTXJwnuKT35d2PcjW2lyfQWiytpTMQV4QTFfQMXXGR1WW1jUsiZl9tWcpVmYJ5q+VAuBF5H9USQV1LZA+1RCNSordSEg6UFI5HS4/iogADLSvXSW3W9tN6FinOrtlXFlfSSCaT7SoDZyUeeyJm8GzLEaG9CkMDIwNPDewYeGbguYEXBnZ1LJFYk46RgR0Dzw3s9uLL/ICRHzDyA0Z+wMgPGPkBIz9g5AeM/DoMjPyAkR8w8gNGfqDLTzyvUg/QrIeRb0v7GfkrBYH+UBDwoyA+CuJtC6ItgH+mIKYj9ybziE2DpbyACsQykuqul6eoxyjLq77iwLNt1xW8GHQay6VUpRPgIqrqCNSv1Lm7qJBI43t1pXEaeKuGVWBdaujYoDLmvWEC3TbxRbsbJEEzBue+mtlu95MEg3vz4DZVsF3uk6dvLBznIeFPncdDd/R23xnZ/IbLCcU83uvLHXOEmqH+FnXmm4GJ2/txHN2LpsfqrFWQ/n3ciAsB1ANNjUC1LINAlV9bFV5uYec9LPxC0+rW/x8tjN7TwlMw160GZy/zLJpNjUDOK3lWwO5P4bp79w8FdPIb -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_equivalence_1.xml: -------------------------------------------------------------------------------- 1 | 7VdNc9sgEP01OtYjwLKto+006bRJPybtpD0SgSUmSKgSjp3++gJCEiA77XSanqrJTHhPy8Iubxc5QtvyeNXgurgRhPIIxuQYoYsIQjCHMNJ/MXnqmNV80RF5w4g1Golb9oNaMrbsnhHaeoZSCC5Z7ZOZqCqaSY/DTSMOvtlOcH/VGud0QtxmmE/ZO0ZkYaOAy5F/Q1le9CuDRdq9KXFvbCNpC0zEwaHQ6whtGyFkNyqPW8p18vq8dPMuz7wdNtbQSv7OhBv+afm4S+/W77NNvoY1//7u+pX18oj53gYcwQVX/jaEPaphroc9dd8TVdtTarmBjdBauSqkrM3oUr/DLZ1VuKRtjTM6y0QZQeTM9RYxSZJPfeZVvmo9rIRU/zaHgkl6q90o7qDEprhCllwhoPeGs4e8EfuKfNhLzipqeYKbhw9qFpNagPEsToa13NT1eaCNpEeHsqm8oqKksnlSJv3b1B6r1TVILD6MKoG9TeEqJLYktsrMB9/j4amBPb/TZ7n8AtDb5N1ndnOVHYrL67fk+uHkWQY5pRVZ66JQSNS08lO4E5XcCi4aY4ti9aSp4umRya/WRo+/mUQmFl3ohMQ9eOpBRS6Z3r5BBLcFJb2LSgX7dbBTwHGo4ejRIMelbQ8rhVqJGxnEYjhnWYOdOV06KJlU/EQHrdg3GX0m13PbinCTU/mMHTotIkckyQmN9FxDOZbs0d/uKd3YFT4KpgIZNApjoLLqqhQtEt9JF6id5zaPwBVaLGbztH9WKfLdLlez2Hmgv0iXpckiRuRDUv5c9/BUD8OlbhC2z7hIHJTzNf2+Z2qCOvctx207mOTehNONSXUI6VcO5ixXArzIlD+qymej+whTl8javigZIXr6pqEt+4HvjSst0VonxaQp2UTJxekqjLUlx/eUb4Yu55jszDPsdNLDhsvRrjteSa7yz7eUsz3wVTxDcLn8O1pNZzD1J4ndrqUvohg0UYy60dDaSGHaNE2+TfuKf30PtRWuP4suuI7xj3gTz1RutrE+bLg1GAYYBXge4CTAiwAvA7wKcOpjjdSefIwCnAR4GeDU8a/jA0F8IIgPBPGBID4QxAeC+EAQHwjiGzEI4gNBfCCIDwTxgTE+U59ni2xyjZytmzlCYV+Op18Pw4eCezOgl/p4mD9TEuB/SfwviZctCYAW/7AkFBx/d3WXyvjrFb3+CQ== -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_equivalence_2.xml: -------------------------------------------------------------------------------- 1 | 7VhdT9swFP01eVwV203TPLalZdIGDIHEePQSN7FI4yxxv/brd53Y+XDKQAjGJoEi4XNsX/sen5sYHLLYHM4LmicXImKpg93o4JAzB2M0xthRjxsda2Y6ntREXPBID2qJG/6LadLV7JZHrOwNlEKkkud9MhRZxkLZ42hRiH1/2Fqk/VVzGrMBcRPSdMje8UgmOgvst/xnxuPErIwmQd2zoWawzqRMaCT2HYosHbIohJB1a3NYsFSJZ3Sp560e6W02VrBMPmfCRXrt79bB3ewynMcznKc/v3z9pKPsaLrVCTt4kkK8ecR30IxV01A/DJGVhoLlGtYhMwiVSJlXrZXqoyUbZXTDypyGbBSKjYNJZ25vkUokeTTKg165amZCwq/5PuGS3agwwO3BbMAlcpMCQmpvNHyIC7HNoqutTHnGNB/R4uEKZnGpDOiOXK9Zqyud0YEVkh06lJbynIkNk8URhpjeQB+r9jXyNN63LsFmTNJ1iKtJqp0ZN7Hbw4OGPr/TZ3l5d+XfXpeZu/XvVsv97Zyeu6fOcomdaeDM0EBcCAcV9AxdaZnXZbXmBwarz9cik7pMkd9oORDuhLyPaklwX8tGt46W5ISU5K2UxAMlwfFktkhpWQ61rFyntDlzn9azzGh+K74JXkmjmFy1qwy8OTzuCFZYuI4HoRcVxhYmFh5b2LPwxMK+hacWDvpYIdhTHxMLexb2LRx04qv8kJUfsvJDVn7Iyg9Z+SErP2Tlh6z8Woys/JCVH7LyQ1Z+qM0PnlepB2zVAxljlbRVEc2L5K+UBPlDSeCPkvgoibctCeL9eyUxPnF3sj+zWTRTl1BAImdZ3/fqS7oQqSiqscSFnyAAHiatuNpKVTwRLZOqklDdpb+90wpBGt+ra41n4L2eVoGzQw8dDTpw2ZkG6N7Eh3Y7SQEzhxahXtltTpRFg7vz4EZVim0RsqdvLZIWMZNPfZOH/uicvnfi8A1XsJRKvutv95Qj9Ar126i1n2/ZDzf2M0HqRPW87jXcCjV4uZNBqFqLQajKpE3qL/et9x6+faFT+37/H31L3tO3Y+z1zYamL/Ut8bEVyn813wJs/w6uh7f/TSDL3w== -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_individuals_1.xml: -------------------------------------------------------------------------------- 1 | 7Vddb+MoFP01fkxkIG7ix3y0s6vOp7pSp08raoiNio0XkyaZX79gYxtwMjuaVd9qVSrn+HLhXs69OBHalqcPEtfFJ0Eoj2BMThHaRRCCBYSR+YvJuWNWi5uOyCUj1mgkHtgPasnYsgdGaOMZKiG4YrVPZqKqaKY8Dkspjr7ZXnB/1RrndEI8ZJhP2UdGVGGjgMuR/4OyvOhXBjdp96bEvbGNpCkwEUeHQrcR2kohVDcqT1vKTfL6vHTz7q68HTYmaaV+ZcIn/m35uk8f15+zTb6GNf/n/uPMennF/GADjuAN1/42hL3qYW6GPfXcE1XTU3q5gY3QWrsqlKrb0Z15hxs6r3BJmxpndJ6JMoLImest0iZJnfvM63zVZlgJpf9tjgVT9MG40dxRi01zhSq5RsDsDWcvuRSHinw5KM4qanmC5csXPYspI8B4HifDWm7q+jxQqejJoWwqP1BRUiXP2qR/m9pjtboGicXHUSWwtylchcSWxFaZ+eB7PDw9sOd3+SwbvHskT2D198sMftxXu+r+/HkGL5xlkFNakbUpCo1ETSs/hXtRqa3gQra2KNZPmmpeT7pjZiu7uE1oU1Bip+j8yfP3NrFJD5/cd7uTndah84D6Ul8ZdGLKcaLRU2+nx6MLA3oPXWiUTKp3cqaNOMiM/iRviW0rWOZU/cRucVkQzoEnF8675yTlWLFXf7uXNGBX+CqYDmTQG4K+3lCa+C66MO0stw0EjkAK5+nwrFLku4WB2y4rE7etQIck/L5m0aX+g0tT3LZHuEiSvW4t6qz7Qs/nntXlTqJLWvlSx5zlWv27TIuFar1vTOEz3fXX9kXJCDHTN5I27Ad+bl0Z3dUmE21ukk2U7C6XTWwsOX6mfDO0Jcdk3z7DTidNZ7jN7LrjHeLK+3oPuNq0ZvEcweXy/wnSKmUWCEXs9w19E40sJhrR9w9abzluGjA57DbZbYOK//vWaCpc/yW6yDrGP99NPNcrbGNz0nDbYhhgFOBFgJMA3wR4GeBVgFMfG6T35GMU4CTAywCnjn8THwjiA0F8IIgPBPGBID4QxAeC+EAQ34hBEB8I4gNBfCCID4zxtcV5tcImF8XVooFLv/MOt7rT+IdL3e386K0u+uTqR9vB+UJD6z8r/X3FyAFz4HxzHa5+cb2XznvpvGnpoGXyZqWj4fhbqrt6xl+k6PZf -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_individuals_2.xml: -------------------------------------------------------------------------------- 1 | 7VbbjtsgEP0aPzbiEufymLi76S3dblN1pb5RQ2x2sfHaOE769QUHYpskal/ythKS5xxghjPMIAc4yvarkhTpWlImAgToPsDvA4TgGKHADEAPR2Y2nhyJpOTULuqIDf/DLAksW3PKqsFCJaVQvBiSscxzFqsBR8pSNsNlWymGUQuSsDNiExNxzj5xqlKrAk07/gPjSeoiw8n8OJMRt9gqqVJCZdOj8F2Ao1JKdbSyfcSESZ7Ly3Hf/ZXZ08FKlqv/2bAWj9Pddv60+BovkwUqxOvnL++slx0RtRUcoInQ/paU77SZGNNRvx2RV47S4U5sgBfaVapU0Vr3Zo5UbJSTjFUFidkollmAcG/vIEibJHVwmdf5KoyZS6U/yyblim2MG801utg0l6pMaATN2Uj8kpSyzulDrQTPmeUpKV8e9C6uTAGCEQhPsfqpc3lgpWL7HmVTuWIyY6o86CVudm6v1dY1DC1uuipBbk3arxBgSWIrMzn57i5PG/b+Lt/l91XzPD18Aq/P68ftr5+HYrl6vHCX+p7wIhKkquBZettcMeMP/Du7VU6KH/Kb5G2+DFMYu1UQLvUAIx0hAkGoXUctRh7GHh57OPTwxMNTD888PB9ig/SZhhh7OPTw1MPznn+jD3r6oKcPevqgpw96+qCnD3r6oKevw9DTBz190NMHPX2w06eH64iz8r/QJFc7As2GHYHBeUecir/fEfhWDYGuPm517yXDi4+5foc4rYmAvbepvvoyvbXOW+vctnXw7VpHw+6fo53r/bnhu78= -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_1.xml: -------------------------------------------------------------------------------- 1 | 7VddV5swGP41XNpDQmntZanW7TinmzvqLlNIaWYgGNKv/folkAAJrTrP3JUezjHPQ943eb+pF8yy3QVHxeqKJZh60E92XnDmQQiGEHrq8ZN9zZwORzWRcpLoTS1xS35jTfqaXZMEl9ZGwRgVpLDJmOU5joXFIc7Z1t62ZNQ+tUAp7hG3MaJ99p4kYqWtgOOW/4RJujIng9GkfpMhs1lbUq5QwrYdKjj3ghlnTNSrbDfDVDnP+KWWmx9521yM41y8RuCKfhtvlpP76dc4SqewoE+XX060lg2ia22wB0dU6osSspHLVC0NtTBEXhpKHtewXjCVqlZCFNVqrt6hEg9ylOGyQDEexCzzYNCRtQ6pnCT2xvPSX4Va5kzIf9F2RQS+VWokt5XJJrmVyKhEQN0NxY8pZ+s8uV4LSnKs+QTxx2spRYRKQH/gh81ZXdcZP2Au8K5DaVdeYJZhwfdyi34LfR1WndcjDbdtksCJ5lbdBDFySCdm2qhuYycXOnyHQwmj7On73efJudiDs8WlH8XL+YFQyjAF0xlFZQl73q1chZU+/2XnljkqfrAbRip3KaZQ68qCMJKPP5Cnz3wvlKpnFYYODhw8dHDo4JGDxw4+dfDExgrJO9k4cHDo4LGDJx39yj7g2Acc+4BjH3DsA459wLEPOPYBx74WA8c+4NgHHPuAYx9o7ZOPKYhe9h+okaMFMQztgmj6XqcimuTvVkTwXgUBD/Q2pwpwnkzVkJAoVnVCYjvx8Y6Ih876Z9VDQo3Odrp8KrA3IJeXf+iCjpSCrViFWjkz/k4lQjzWyG/ig5PerOp1sJKteYyf8cpQD1HEUyxeaif9aHeiGR4IpuE4pkiQjX3dQxHWJ9S9pe2uo9BOpiC0VdRmaqnu0HMUuVk5dNtv7YeeoirhGrPfnoPB38xXm0KZ6sK0j9hWXmGKKL1TWss5V1NVb7CFLe32uK1mA1v8kt9MN5wVsvL3r5zLskUIu0oQJWmuSkgmI+aSUI2EyG+oqX6RkSRR4hHHJfmNFtTktT1GVCeiaIFp1AzzGaOMV+cGy+rvuWalvwG1/vbLq1smxzvF0c52IjstNJ91b01ss4UtlyV+l1QbPjP/QS+KH/P/Y/7/0/kPRv9v/kvY/m6q66f99Rmc/wE= -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_10.xml: -------------------------------------------------------------------------------- 1 | 7VfZctsgFP0aPcYjQPLyKDtLtzTppJmkTx0sYYkGCRXhrV9fkNCG7DhtJzN9iEcz5hzBhXvvuQgctEh3VwLnyTWPCHOgG+0cdO5ACDwIHf240b5ipt64ImJBI9OpJe7oL2JI17BrGpGi11FyziTN+2TIs4yEssdhIfi2323FWX/WHMdkQNyFmA3ZBxrJxHgBJy3/jtA4qWcG41n1JsV1Z+NJkeCIbzsUunDQQnAuq1a6WxCmg1fHpRp3eeRtszBBMvmSAdfsy2Szmj0En8N5HMCc/fz46cxY2WC2Ng47cMyUvXlEN6oZ62ZNLWsiK2pKTdewDgqUqUTKvGxd6ne4IKMMp6TIcUhGIU8diDpje5OUQZL7OvIqXrluZlyqv/k2oZLcaTOK2yqxKS6RKVMI6LXh8CkWfJ1FN2vJaEYMH2HxdKNGUakF6I5cv5mrG7o6DkRIsutQJpRXhKdEir3qUr+dmbQaXQPf4G2rElj3SboKcQ2JjTLjxnabPNUw+Tucyw/b99NgCnD6QNf5fX4PvgfgQC5VnlCwYLgo4CC8ZayItueejm6R4fwrv+W0jJdmct0uPfDn6nFHavaF6/jK9KLE0MLIwp6FfQuPLTyx8NTCsz7WSK2pj5GFfQtPLDzr2Nf+Acs/YPkHLP+A5R+w/AOWf8DyD1j+tRhY/gHLP2D5Byz/QOufeuqKGMj/QJEcrQjP83oVgcCwIhrxdysCvVZBwGcKArwVxFtBvG5BgIn7nxUEOvC1t6qAZFGgj00KhbpOaNgXPtlR+dhpfyu/qr5B5ztTPiXY1yBTi3/sgs4oDdthJWrH1QfCqUJYhAa5TX5INDi9Db7pBV+LkJzeJiQWMZGnvq/DbHey6R9IZs0JwrCkm/5yD2XYzFDtLa2Y/L6YPDgdIdS3UnlqBnZPgpYtNIYjt/ODJy1XsRlYLkXYhOLvdem95BRa7t18+UOd8m8Fz1Vl7l94klQlLPsqxozGmZa4EgsRitCFTtWpPzAvUhpFevhckIL+wktW666/zeudguElYfPm+LngjItyXrQqf89tJubWYuy3d4WujI9X8tGd50zthLC+iPyj8LwRmPTH8NWqIH+oAwXbm07Vvb0voovf -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_11.xml: -------------------------------------------------------------------------------- 1 | 7Vdbb9sgFP41fmxkIM7l0XEvm7aunbqpXd+ITRxWYjyMc+mvH9gQ2zhpukqV9tDIUvg+OAfOjYuHotX2SuB8ec0TwjzoJ1sPnXsQgiGEnv78ZFczk+GoJlJBEzOoIe7oMzGkb9iSJqToDJScM0nzLhnzLCOx7HBYCL7pDltw1p01xynpEXcxZn32niZyaayA44b/RGi6tDOD0bTuWWE72FhSLHHCNy0KXXgoEpzLurXaRoRp51m/1HKXR3r3CxMkk68RuGbfx+vF9D78Fs/SEObsz5evZ0bLGrPSGOzBEVP6Zgldq2aqm5aaWyIrLKWm27MeCpWqpZR51brUfbgggwyvSJHjmAxivvIgasl2JqmcJHfW88pfuW5mXKq/2WZJJbnTahS3UcmmuKVcMYWAXhuOn1LByyy5KSWjGTF8gsXTjZKiUiegP/CD/Vxt11k/ECHJtkUZV14RviJS7NQQ2zs1YTV5DQKDN02WQDtm2c4Q35DYZGa6190ETzVM/A7H8nla0p+PrNw9Ruj757CcrZ/CA7FUcUJhxHBRwJ57K18Rrc8/7d0iw/kPfstp5S/N5LpdWRDM1OcP1OyR7wVKdVRh6GDk4KGDAwePHDx28MTB0y7WSK2pi5GDAwePHTxt6df2Acc+4NgHHPuAYx9w7AOOfcCxDzj2NRg49gHHPuDYBxz7QGOf+mxF9NL/QJEcrYghGnYqAvn9itgnf7si0HsVBHyhIMBHQXwUxPsWBBj5/1lBoAOnvVMFJEtCfW1SKNZ1QuNu4pMtlQ+t9q/qVA0MOt+a8qnAzoJMLf6hDVpSGjZiFWrk7IVwoktOYiHt2riywXKXlNnVYREbCX8fQ5L0bni9c7/gpYjJ6a1ETZcSeeoM7mdEK+LBgYBbThCGJV13l3soC8wM9f7TJNywm3BDMBkg1NVSW2oE27dFRxcK4MBv/eBJzbVvepqrRN274u25O3zNTbXa3/n8t3oJ3Aqeq+rdvfK2qcpcdjMdM5pmugxUshChCL0ZUPUyCE3HiiaJFp8JUtBnPGc277pHgd5NGJ4TNttfUSPOuKjmRYvq99KGY142Rn/znmin8fFqP7o7nandEtrHylsTzw7hi0VB/jHsCjaPn3p484REF38B -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_12.xml: -------------------------------------------------------------------------------- 1 | 7Vdbb9sgFP41fmxkIM7lMUmbTtq6duqkdo/EJjYrNh4m118/sMEXnDRdpUp7aGQpfJ85B87hfBg8tEj3twLnyR2PCPOgH+09dO1BCIYQevrxo0PFTIajiogFjUynhnikR2JI37AbGpGi01FyziTNu2TIs4yEssNhIfiu223NWXfUHMekRzyGmPXZJxrJxEQBxw3/hdA4sSOD0bR6k2Lb2URSJDjiuxaFbjy0EJzLqpXuF4Tp5Nm8VHbLM2/riQmSybcY3LEf4+16+jT7Hs7jGczZn6/froyXLWYbE7AHR0z5m0d0q5qxblpqZYmssJQarmY9NFOuEinzsrXU73BBBhlOSZHjkAxCnnoQtWw7g5RJkgebeZWvXDczLtXffJdQSR61G8XtVLEpLpEpUwjoueHwJRZ8k0X3G8loRgwfYfFyr6yo1AXoD/ygHqudOpsHIiTZtyiTylvCUyLFQXWxb6dmWU1dg8DgXVMl0PZJ2hXiGxKbyoxr383iqYZZv9NrOVs+zY7rw/F+fcfGyWb8Y/+ETqylWic0WzBcFLCX3jJXRPvzL2e3yHD+kz9wWuZLM7lulxEEc/X4AzX6wvcC5XpRYuhg5OChgwMHjxw8dvDEwdMu1kjNqYuRgwMHjx08bfnX8QEnPuDEB5z4gBMfcOIDTnzAiQ848TUYOPEBJz7gxAec+EATn3qsInrlf0IkZxVRb/VGEcjvK6Iu/rYi0EcJAr4iCPApiE9BfKwgwHDynwkCnfjaOyogWTTTxyaFQq0TGnYLn+ypfG61f5Vf1cCg672RTwkOFmRq8s9t0LLSsDErUWNnD4QTLTmJhbRz4yoGyy0ps7OLcJGUEtYAi9CY+/WCkqh33OsdAgq+ESG5vK+osWMiL32Q++XRWv7gxOpbThCGJd12p3uqJMwI1WbUVB/sVt8QTAYIdb1UkRrD9tHR8YWG6uDU+sGLnqvc9DyXVVun4v2FPHzLsbXc7Pnqt7oWPAieKykf3nj0VJqX3bLHjMaZ1oQqFiIUoXcGqq4JM/MipVGkzeeCFPSIV8zWXfe7oLcWhleEzevz6oIzLspx0br8vbb7mGuO8d9cLtplfF76Z7eqK7V1QntzeW/h2S58vS7IPy67gs1NqOre3CfRzV8= -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_13.xml: -------------------------------------------------------------------------------- 1 | 7VfbbuMgEP0aPzYy4LTJY5JeVup221WrbftIbOKwJcaLSZP063ewwRec9CZV2oeNLIVzYGaYYYZLQGar7YWi+fJKJkwEOEy2ATkNMEYRxoH5wmRXMaPouCJSxRM7qCFu+QuzZGjZNU9Y0RmopRSa510yllnGYt3hqFJy0x22kKJrNacp6xG3MRV99p4nemm9wCcN/43xdOkso+Nx1bOibrD1pFjSRG5aFDkLyExJqavWajtjwgTPxaWSOz/QW09MsUy/R+BK/Dx5XozvJz/iaTrBufhz+f3IanmmYm0dDvCxAH3ThD9DMzVNR80dkRWOAnM1G5AJqFpqnZetc9NHCzbI6IoVOY3ZIJarAJOWbMdIGSS9c5GHeOWmmUkNf9PNkmt2a9QAt4FkA26pVwIQMnOj8VOq5DpLrtda8IxZPqHq6RqkuDYJGA7CYW2rHToXB6Y027YoG8oLJldMqx0Mcb1ju6w2r9HQ4k2TJdiNWbYzJLQktZmZ1rqbxYOGXb/9a7kb3/564rvo8m6Kw6P1o6AF3bOWsE5kMoPOAvfCW8aKGX3h29EtMprfyRvJy3gZJjft0oPhFL5wANZnYTAE1bMSYw8TD0ceHnr42MMnHh55eNzFBsGcuph4eOjhEw+PW/qNf8jzD3n+Ic8/5PmHPP+Q5x/y/EOefw1Gnn/I8w95/iHPP9T4B5+riF767ymSgxVRb/W2IgjuV0Sd/O2KIF9VEPiVgkD/C+J/QXxtQaBo9I8VBNlz2ntVwLJkYq5NgGJTJzzuJj7bcv3Qaj+Wp+rQotOtLZ8S7BzIYPIPbdCSMrARK1Ej5y6EI1Nymirt5ibBB8edcxOFUoKq2EqE9RqypHfD6537hVyrmL29lYC5lOm3zuB+RrRWfLhnwR2nmKCaP3enuy8LrIVq/2kSDncTLiKjAcHj5tdVWDltdbQvjp5aEsG1qfXDHzFSRaxnpEzfOkCfz+joPffXcteX89/wPrhRMoea3r3zDgrFr7v5TwVPM1MckEJMAWG2CA7vhYntWPEkMeJTxQr+QufCZWP3gDB7jKBzJqb1xXUmhVSlXbIof69tQ/a9Y/U3r4x2ch/eAw7uWUewh2L3hPlsOrohcrEo2AeXHWDzJKqGNw9LcvYX -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_17.xml: -------------------------------------------------------------------------------- 1 | 7Vdbb9sgFP41lraHRMbEuTwm6U1qu27qtLaPxCY2q208TJqkv34HG2JDsja7VNpDoyjh+4AD5wYHD8/zzbkgZXrNY5p5gR9vPHziBUE4nMCvIrYNgfG4IRLB4oZCLXHLnqkmfc2uWEwra6DkPJOstMmIFwWNpMURIfjaHrbkmb1qSRK6R9xGJNtn71gs04YdB6OWv6AsSc3KyCicEzNYa1KlJObrDoVPPTwXnMumlW/mNFO2M3Zp5p39one3MUELecyE6+zL6Gk5uZt+imbJNCizH5dXPS3liWQrrbAXDDOQN4vZEzQT1TTUwhBFZShYbsd6eAqiUinLunWm+khF+wXJaVWSiPYjnnsB7sy1FqmNJLfG8mCvUjULLuFvtk6ZpLdKDHBriDXgUplngJDaG4keE8FXRXyzkhkrqOZjIh5vYBaTKgD9vh/u1uqaztiBCkk3HUqb8pzynEqxhSGmd6LdquMahRqv2ygJzJi0GyG+JomOzGQnu3UeNLT/Dvty/vCtCvLkdPpw+XiJBe1dPGc9ZVnHmeAoPJ1npKqCPfvWxqJKoP+6eauClF/5Z85qgymmVO1ahXAGX78P9pr7Xgii5zUOHIwdPHBw6OChg0cOHjt4YmOFYE82xg4OHTxy8KQjX+mHHP2Qox9y9EOOfsjRDzn6IUc/5OjXYuTohxz9kKMfcvRDrX7w/ScpMQgCKyXwgZTYRX83JfCbZcTghYxA7xnxnhFvmxFoMP7fMiI8cOE7aUCLeKoqJ0CRShQW2ZFPN0zed9oP9cUaanSy0flTg60BBez+vgs6sxRsp9WonWdqwnF9mVdpnZ9qaSIi3eW/5K2Kr0REjzgkJBEJlUfcrzS2SsZ973e8Gx5wruEEzYhkT3ahecjjeoXmrGmDK7CDazAc9zG2pTTK64nd2tCRhQdQGXU+wauSG2vtSa6DcmeKv4jT4TGF6YezjzCmPtL54juU/58FLyE7t0eWmMqTV2QBLxYrwEnGkkJFP8QSFUCojGfwJpjqjpzFsZIxE7Riz2SRmSi0r4DDp8jLeemeLbuXjV7FejwcOnN6cAZOkO1AU+b/acSZIXy5rOhv+htg+8ZphrcPRXz6Ew== -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_19.xml: -------------------------------------------------------------------------------- 1 | 7Vdbb9sgFP41lraHRAbiNHlM0tvUdu3UaW0fiU1sVmw8TJqkv35gQ2xI1maXSntoZCl8H3Dg3OAQoFm+PhO4zK54QlgAw2QdoOMAQhgioP40s2kYAMNxw6SCJoZriVv6TAwZGnZJE1I5AyXnTNLSJWNeFCSWDoeF4Ct32IIzd9USp2SHuI0x22XvaCKzhh3Bo5Y/JzTN7MpgaPTLsR1sNKkynPBVh0InAZoJzmXTytczwrT1rF2aeae/6N1uTJBCHjLhin05elqM7yaf42k6gSX7cXHZM1KeMFsahQM4ZEreNKFPqpnqpqXmligqS6nltmyAJkpUJmVZt051H65Iv8A5qUock37M8wCizlxnkdpIcmMtr+xV6mbBpfqbrjIqya0Wo7iVijbFZTJnCgG9Nxw/poIvi+R6KRktiOETLB6v1SwqdQSG/TDartU1nbUDEZKsO5Qx5RnhOZFio4bY3rFxqw3syOBVGyXQjsm6ERIaEpvITLeyW+ephvHffl/OHr5VME9PJg8XjxdIkN75M+tpy3rOVI5CkxnDVQV37Fsbi2iB4evmrQpcfuU3nNYG00yp27UK0VR9YV/ZaxYGkRI9qzH0MPLwwMORh4cePvLwyMNjF2uk9uRi5OHIw0ceHnfka/2Apx/w9AOefsDTD3j6AU8/4OkHPP1aDDz9gKcf8PQDnn6g1U99/yQlBhA6KYH2pMQ2+rspgd4sIwYvZAR4z4j3jHjbjACD0f+WEdGeC99LA1IkE105KRTrRKGxG/lkTeV9p/1QX6yRQcdrkz812FhQqN3fd0FnlobttBq182xNOKov8yqr81MvjUVsusKXvFXxpYjJAYeExCIl8oD7lSROybjr/Y53oz3OtZwgDEv65Baa+zxuVmjOmja4oBtcg+Goj5ArpVHeTOzWhp4sNFCVUecHX5XcWGtHch2UW1P8RZwODylMP3w6/agG1Wc6n39X9f+N4KVKz82BNaZ25SWeq0eLE+GY0bTQ4a+CiQhF6JSn6lEwMR05TRItYypIRZ/xnNkwdO+A/cfIy4npHy7bp41ZxXk97Dt0euoQHAPXg7bO/9OQs0P4YlGR33S4gu0jpxnevhXRyU8= -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_2.xml: -------------------------------------------------------------------------------- 1 | 7VddT9swFP01kbYHqthJWvrYlE8xBhNowKMbu4mHG2eOS9v9+tmJnQ+nhQmNN1AkfI7t69x7z71OvWC+2p4LVGTXHBPmQR9vveDEgxCEEHr68fGuZo7DcU2kgmKzqCXu6B9iSN+wa4pJ2VsoOWeSFn0y4XlOEtnjkBB801+25Kx/aoFSMiDuEsSG7APFMjNewEnLXxCaZvZkMJ7WMytkFxtPygxhvulQwakXzAXnsh6ttnPCdPBsXOp9ZwdmmxcTJJf/suGa/Zi8LKcPs+9JnM5gwX5ffTsyVl4QWxuHPThmyl6M6YsapnpoqYUl8tJS6riG9YKZMpVJWVSjMz2HSjLK0YqUBUrIKOErDwadvb1DqiDJnY28ilehhzmX6l+8yagkd9qM4jZKbIrL5IopBPS7oeQ5FXyd45u1ZDQnhsdIPN+oXVRqAfojP2rO6obOxoEISbYdyoTynPAVkWKnltjZqUmr0TWIDN60KoF2TdZViG9IZJSZNrbb5KmByd/+XF5u8OT+6XxN4wWMl7sLfPXzck8uVZ6C2ZyhsoSD8FaxItqe/3Z0yxwV9/yW0ypemin0uPIgitXjj9Tpc9+LlOl5haGDAweHDo4cPHbwxMHHDp72sUbqnfo4cHDk4ImDpx372j/g+Acc/4DjH3D8A45/wPEPOP4Bx78WA8c/4PgHHP+A4x9o/VOPrYiB/PcUycGKCIN+RQT+sCIa8XcrIviogoB7mptTBSTHM31LKJToOqFJX/hkS+VjZ/xUNZHIoJOtKZ8K7CzI7T12XCHlymMzpUDHhoatkQpZK0gkxorf5IfgwWU1aGElX4uEvBKV0NyiSKREvtVOhtnuZDPak0zLCcKQpC/9192XYXNC3VsaMcEw6osJRH0TtZtmV/fWcwyFoaNK6KitjsPAUCW4xu33azAYaPALYuyroqrmzBe/1FfLreCFKr3dQJ6qGmVfkIjRNNdqVXknQhG6Zqn6XpmZiRXFWG+PBSnpH7RgVkL9jq2LnqEFYXFzcc4546I6N1hWf6/1BfO9Zey3XzldRR4uyoNN5Eg1NWg/od6rIbuEL5cl+ZCshq9ctWCQxc+r9vOq/a9XLXCb2gdetQq2v1Hq+ml/6QWnfwE= -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_20.xml: -------------------------------------------------------------------------------- 1 | 7Vdbc9soFP41eoxHgOXLo+0kbSfNtjvZaZq+YYlIbJDQInzLr9+DhCyBlcS7bWf60Ewm4fuAg84NzgnIKt+/U7TMbmXCRIDDZB+QywDj+QzBX0McGiKakYZIFU8aCnXEHX9mlgwtu+EJq5yFWkqheemSsSwKFmuHo0rJnbvsUQr31JKm7IS4i6k4Ze95orOGneFpx79nPM3ak9Fk3szktF1sNakymshdjyJXAVkpKXUzyvcrJoztWrs0+65fmD1+mGKFPmfDrfhzun2c3y/+iJfpApfin5uPF1bKloqNVTjAEwHylgnfwjA1w5Zat0RRtRQcd2QDsgBRmdZlPbo2c7Rio4LmrCppzEaxzANMenudQ2oj6UNrebBXaYaF1PBvucu4ZndGDHA7iDXgMp0LQMh8G42fUiU3RfJpowUvmOUTqp4+wS6uTQCGozA6ntU3XWsHpjTb9yhryndM5kyrAyxpZ+fWrTauUWTxrosS3K7J+hESWpLayEyPsjvnwcD6b9iXq4cvFc7Tq8XDzdMNUezi/bO4wOTEmeAoslgJWlX4xL61sZgRGL5t3qqg5V/ys+S1wQxTmnGtQrSE33AE9lqFQQSiVzXGHiYeHns48vDEw1MPzzw8d7FB8E0uJh6OPDz18Lwn3+iHPP2Qpx/y9EOefsjTD3n6IU8/5OnXYeTphzz9kKcf8vRDnX7w+0NSYoyxkxJkICWO0d9PCfLTMmL8Skag3xnxOyN+bkag8exXy4ho4MH30oAVycJUToBikyg8diOf7bn+2hs/1A9rZNHl3uZPDQ4tKODrv/ZBb5eB3bYadfvamnBWP+ZVVuenOZqq2E6Fr3mrkhsVszMuCU1VyvQZ7ytLnJLx1Ps970YDzm05xQTVfOsWmkMetyc0d00XXNgNrvFkNiLEldIobzf2a0NPFhlDZdT7wW9Kbqx1IrkOyqMpviNOJ+cUpvVlLtd/Q+H/WckS8vJwZnFpfPiRrqFXcUKbCp4WJu4hipgCwuQ6h25gYSdyniRGxlKxij/TtWjjz738h++P1zPSv1WOPY09xWkbhm6bC7j95sh1XVvg/99Ya5fIx8eKfa+nP1xGt5PoFhe7UtzH2+32W/l0dgdCc/MAi1Mkd3De4kMBBqzY9aaINZcFFb2AaBa7giwKXwmhtfIboDeCSmUyX2+qt2uHFz1+cn+96Gwcuv3HmAz0H0O3zzT6z08LwK5Nbfze9frk6l8= -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_21.xml: -------------------------------------------------------------------------------- 1 | 7Vdbb9sgFP41lraHRMbEuTwm6U1qu3ZqtbaP1KY2q208TG799TvYEBuStdml0h4aRQnfBxw4Nzh4eJ6vTwUp00se08wL/Hjt4SMvCMLhBH4VsWkIjMcNkQgWNxRqiRv2QjXpa3bBYlpZAyXnmWSlTUa8KGgkLY4IwVf2sCee2auWJKE7xE1Esl32jsUybdhxMGr5M8qS1KyMjMI5MYO1JlVKYr7qUPjYw3PBuWxa+XpOM2U7Y5dm3skvercbE7SQh0y4zL6Olk+Tu+mXaJZMgzL7cX7R01KWJFtohb1gmIG8WcyW0ExU01CPhigqQ8FyW9bDUxCVSlnWrRPVRyraL0hOq5JEtB/x3AtwZ661SG0kuTGWB3uVqllwCX+zVcokvVFigFtBrAGXyjwDhNTeSPScCL4o4quFzFhBNR8T8XwFs5hUAej3/XC7Vtd0xg5USLruUNqUp5TnVIoNDDG9E+1WHdco1HjVRklgxqTdCPE1SXRkJlvZrfOgof2335fzh29VkCfH04fz53MsaO/sJespyzrOBEfh6TwjVRXs2Lc2FlUC/bfNWxWkvOXXnNUGU0yp2rUK4Qy+fh/sNfe9EETPaxw4GDt44ODQwUMHjxw8dvDExgrBnmyMHRw6eOTgSUe+0g85+iFHP+Tohxz9kKMfcvRDjn7I0a/FyNEPOfohRz/k6Ida/eD7T1JiEARWSuA9KbGN/m5K4HfLiMErGYE+MuIjI943I9Bg/L9lRLjnwnfSgBbxVFVOgCKVKCyyI5+umbzvtB/qizXU6Git86cGGwMK2P19F3RmKdhOq1E7z9SE4/oyr9I6P9XSRES6y3/NWxVfiIgecEhIIhIqD7hfaWyVjLve73g33ONcwwmaEcmWdqG5z+N6heasaYMrsINrMBz3MbalNMrrid3a0JGFB1AZdT7Bm5Iba+1IroNya4q/iNPhIYXpp9vPMKY+0vnjdyj/rwUvITs3B5aYypMX5BFeLFaAk4wlhYp+iCUqgFAZz+BNMNUdOYtjJWMmaMVeyGNmotC+AvafIq/npXu2bF82ehXr8bDvzOnBGThBtgNNmf+nEWeG8Keniv6mvwG2b5xmePtQxMc/AQ== -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_22.xml: -------------------------------------------------------------------------------- 1 | 7VjbcpswEP0aHu1ByPjyaNNcZnJpO+k0Td9kkEGNQFSSYztfXwmEQTJJnKaZ6UMyzETnIK3Y3bO62INRvj3jqMyuWIKpF/jJ1oOfvCAAoyDw9OMnu5qZjsY1kXKSmE4tcUMesSF9w65JgoXVUTJGJSltMmZFgWNpcYhztrG7rRi1Zy1Rig+ImxjRQ/aWJDIzXgSTlj/HJM2amcF4Vr/JUdPZeCIylLBNh4InHow4Y7Ju5dsIUx28Ji71uNMn3u4/jONCHjPgin6dPKxmt/PreJHOg5L+vrgcGCsPiK6Nw14wpsreIiEPqpnqZkMtG6IQDaWm27MenCtTmZRl1TrV75DAwwLlWJQoxsOY5V4AO2OtSaogyV0TeRWvUjcLJtW/xSYjEt9oM4rbKLEpLpM5VQjob0PxfcrZukg+ryUlBTZ8gvj9ZzWKSC1Af+iH+7m6oWvigLnE2w5lQnmGWY4l36kuzduZSavRNQgN3rQqCZo+WVchviGRUWa6t90mTzVM/vpzGd19F0GenszvLu4vIMeD80c60JF1kqkSBecRRUIEB/GtgoW1Qf/l8IoCld/YF0aqgGmm1O3KhXChHn+o4hX5XqhMRxUOHAwdPHJw6OCxgycOnjp4ZmON1DfZGDo4dPDEwbOOfe0fcPwDjn/A8Q84/gHHP+D4Bxz/gONfi4HjH3D8A45/wPEPtP6p55+UxH6tNyUBe0pir/5uScB3q4jRMxUBPirioyLetyLAaPq/VUTYs+E7ZYCLZK5PTgrFulBIbCsfb4n80WnfVRtraNCnramfCuwaUKiv/9EFnVEatsMq1I5rzoTTajMXWVWfemrEY/PKfy5bgq15jI9YJCTiKZZH7K84sY6Mh9nvZDfsSW7DcUyRJA/2QbMv42aGeq1pxRXY4hqNp0MIbSu182Zg92zo2IIjdTLq/AUvWq6jdWC5EuU+FG/Q6fiYg2m1mLPlL3Xw/8JZqepyd+ThUufwEi3VZcWSNqIkLbTulYowV4SudaJuA3PzIidJom0sOBbkES1poz978e9fP56vSHdV2d9pzCzWtaFvtRmo1W8G7NQ1B/y/1VrTha1WAr8509nXVRilAzyVFH7//fN6KaKjbyAo1xswPURso+abf+OoEES72FFC3cu2YKNiKcrODcdVzWsUt+TuuBc0yDOWL9fi5aPGkwI5WO6e1Ebg29eVEei5rvQtVpPw1TuRgu2ttpZJ+9sAPPkD -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_23.xml: -------------------------------------------------------------------------------- 1 | 7Vdbb9sgFP41lraHRsbEuTwm6U1qu3bKtLaPxKY2q208TG799TvYEBuStdml0h4WRQnfBxw4Nzh4eJZvLgQp0xse08wL/Hjj4VMvCMLBGH4VsW0IjEcNkQgWNxRqiTl7oZr0NbtkMa2sgZLzTLLSJiNeFDSSFkeE4Gt72BPP7FVLktA9Yh6RbJ+9Z7FMG3YUDFv+krIkNSsjo3BOzGCtSZWSmK87FD7z8ExwLptWvpnRTNnO2KWZd/6T3t3GBC3kMRNuss/D1dP4fvIpmiaToMy+X12faCkrki21wl4wyEDeNGYraCaqaaiFIYrKULDcjvXwBESlUpZ161z1kYr2CpLTqiQR7UU89wLcmWstUhtJbo3lwV6lahZcwt90nTJJ50oMcGuINeBSmWeAkNobiZ4TwZdFfLuUGSuo5mMinm9hFpMqAP2eH+7W6prO2IEKSTcdSpvygvKcSrGFIaZ3rN2q4xqFGq/bKAnMmLQbIb4miY7MZCe7dR40tP8O+3L2+LUK8uRs8nj1fIUFPbl8yU6UZR1ngqPwZJaRqgr27FsbiyqB/tvmrQpSfuF3nNUGU0yp2rUK4RS+fg/sNfO9EETPahw4GDu47+DQwQMHDx08cvDYxgrBnmyMHRw6eOjgcUe+0g85+iFHP+Tohxz9kKMfcvRDjn7I0a/FyNEPOfohRz/k6Ida/eD7V1KiHwRWSuADKbGL/m5K4HfLiP4rGYH+Z8T/jHjfjED90b+WEeGBC99JA1rEE1U5AYpUorDIjny6YfKh036sL9ZQo9ONzp8abA0oYPcPXdCZpWA7rUbtPFMTjurLvErr/FRLExHpLv81b1V8KSJ6xCEhiUioPOJ+pbFVMu57v+Pd8IBzDSdoRiRb2YXmIY/rFZqzpg2uwA6u/mDUw9iW0iivJ3ZrQ0cW7kNl1PkEb0purLUnuQ7KnSn+IE4HxxSmH+YfYUx9pPPFNyj/7wQvITu3R5aYypPXZAEvFivAScaSQkU/xBIVQKiMZ/AmmOiOnMWxkjEVtGIvZJGZKLSvgMOnyOt56Z4tu5eNXsV6PBw6c07gDBwj24GmzP/diDND+NNTRX/R3wDbN04zvH0o4rMf -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_3.xml: -------------------------------------------------------------------------------- 1 | 7Vdbb9MwFP41keBhU+wkvTy23bgIxgZFbDy6iZt6c+LguGu7X89xYufitGNCwBNTpPn7Yh/n3E+9YJHt30pSbK5EQrmH/WTvBRcexijE2NOPnxxqZhKOaiKVLDGbWmLJnqghfcNuWULL3kYlBFes6JOxyHMaqx5HpBS7/ra14P1bC5LSAbGMCR+ytyxRG6MFHrf8O8rSjb0Zjab1m4zYzUaTckMSsetQwaUXLKQQql5l+wXl2njWLvW5NyfeNh8maa5ecuCKfx4/rqe3s0/xPJ3hgv/48PHMSHkkfGsU9vCIg7x5wh5hmeqlpVaWyEtLwXUN6wUzELVRqqhWb/Q7UtLznGS0LEhMz2OReTjonO1dUhlJHazlwV6FXuZCwb/5bsMUXWoxwO0g2IDbqIwDQvrbSPyQSrHNk+ut4iynhk+IfLiGU0zpAPTP/ai5q2s6awcqFd13KGPKt1RkVMkDbLFvp8atJq5RZPCujRJs92y6EeIbkpjITBvZrfNgYfx33JejL3eH5dV3HFy8S8cxLReHbHbEl+CnYLbgpCzxwLyVraiW5//aumVOiq/iRrDKXpop9LrSIJrD45/D7Qvfi0D0osLYwYGDQwdHDh45eOzgiYOnfawRfFMfBw6OHDx28LQjX+uHHP2Qox9y9EOOfsjRDzn6IUc/5OjXYuTohxz9kKMfcvRDrX7w2IwYhP+RJDmZEWHYz4jAH2ZEE/zdjAj+VkLgI8XNyQKaJzPdJQDFOk9Y3A98umfqrrP+XhWRyKCLvUmfChwsyOHj77qgc0rD9liF2nO2/00AERkb5Df+ocmgWQ1KWCm2MqbPWCU0XZTIlKpflZOhtzvejI4403KScqLYY/9zj3nY3FDXliaYcBT1gwlFfRG1muZUt+s5gtyoDCdOtNV2GAiqAq5R+/djMHhJg31lOWiTuR5mdChWu0c/tno+mL//uN5+S+DVp9lolbe826JPCqA4/HCfHDl4ib3JxNNWabpyLaQv2KFfwyVVdxGrexi7bqQooHYcXtjaociofp4RztJcJyGEM5VA6FLEYAybmRcZSxJ9fC5pyZ7IitvM6DciXcs4WVE+b+aBheBCVvcG6+rvuXJnxkgjvx3euol2utacrI1nUKuxnQx/NzXsFrFel/SvBGv4zASBBl78P0H8nyD+6ATRzND/YIIA2P70qvOn/QEbXP4E -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_4.xml: -------------------------------------------------------------------------------- 1 | 7VfbUtwgGH6aXOoEkuzhcnd1bae16tjxcMkmbBYlISXsqU9fSCAJZFetU3ulkxn5PuCH/8x6wSzbXXBUrC5ZgqkH/WTnBWcehCCE0FOfn+xrZhQOaiLlJNGLWuKW/Maa9DW7JgkurYWCMSpIYZMxy3McC4tDnLOtvWzJqH1qgVLcI25jRPvsPUnESmsBhy3/BZN0ZU4Gg3E9kyGzWGtSrlDCth0qOPeCGWdM1KNsN8NUGc/Ypd43PzLbXIzjXLxlwyW9GW6W4/vJj3iaTmBBf337fqKlbBBda4U9OKBS3jQhGzlM1dBQC0PkpaHkcQ3rBRMpaiVEUY3mag6V+DRHGS4LFOPTmGUeDDp7rUMqI4m9sby0V6GGORPy33S7IgLfKjGS28pgk9xKZFQioO6G4ueUs3WeXK0FJTnWfIL485XcRYQKQP/Uj5qzuqYzdsBc4F2H0qa8wCzDgu/lEjM71m7VcQ0ijbdtlECzZtWNEF+TSEdm2shunScH2n+Hfbm8y5dPA3g1f7y4D78yfhOd0AO+lH4KJjOKyhL2zFvZCit5/uvWLXNU/GTXjFT2UkyhxpUG0VR+/qk8feZ7kRQ9qzB0cODg0MGRgwcOHjp45OCxjRWSd7Jx4ODIwUMHjzvylX7A0Q84+gFHP+DoBxz9gKMfcPQDjn4tBo5+wNEPOPoBRz/Q6ic/kxG98D+QJEczIgztjAj8fkY0wd/NiOCjEgIeKG5OFuA8maguIVGs8oTEduDjHREPnfFjVUQijc52On0qsDcgl5d/6ILOLgXbbRVq95n+N5II8Vgjv/EPTnrNqlfCSrbmMX7BKqHuooinWLxWTvre7ngzOuBMw3FMkSAb+7qHPKxPqGtLE0wwiuxgApEtolZT7+p2PUeQG5XhyIm22g49QVXANWq/PwaDv2mwNoUyVYVpH7GtvMKklHe7U2LLOVd9Va+wd1vi7YZbNQe2eJKvpmvOCpn6+zd2ZlkjhJ0miJI0VzkkoxFzSahKQuQraqInMpIkavuU45L8RgtqAtvuI6oUUbTAdNq08xmjjFfnBsvq76VqpV+BWn779urmyfFScbS0nchSC83D7r2RbZaw5bLEHxJr4QsPANDz4ucD4PMB8E8fAM0T+D88ACRsfznV+dP+/gzO/wA= -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_5.xml: -------------------------------------------------------------------------------- 1 | 7VffT9swEP5rIm0PoNhOKH1sC2MSYzDBtPFoEjcxuHHmuLTlr985sfPDKTChsaehSPj7Yp9zd9/53IAsVtszRcv8QqZMBDhMtwE5CTBGEcaBecJ01zDH0VFDZIqndlJHXPMnZsnQsmuesmowUUspNC+HZCKLgiV6wFGl5GY4bSnFcNeSZmxEXCdUjNkfPNW59QJPOv4z41nudkZH0+bNirrJ1pMqp6nc9ChyGpCFklI3o9V2wYQJnotLs+7TM2/bD1Os0H+y4EJ8mzwupz9mX5N5NsOl+HX+5cBaeaRibR0O8JEAe/OUP8IwM0NH3TmiqBwF27VsQGZgKte6rEefzDtascOCrlhV0oQdJnIVYNJbO9ikDpLeuchDvEozLKSGf/NNzjW7NmaA24DYgMv1SgBC5tto8pApuS7Sy7UWvGCWT6l6uIRVXBsBhodh3O7VD52LA1OabXuUDeUZkyum1Q6muLdTm1araxRbvOlUgt2cvK+Q0JLUKjNrbXfJg4HN3/5c3myvb/PqacG/T9Lze6o5wWRPLiFPZLYQtKrwKLx1rJixF74e3aqg5Y28kryOl2FKM649iOfwhIew+yIMYjC9qDH2MPFw5OHYw0cennj42MPTITYIvmmIiYdjD088PO3ZN/4hzz/k+Yc8/5DnH/L8Q55/yPMPef51GHn+Ic8/5PmHPP9Q5x88riJG8t9TJM9WRESGFUHQuCJa8fcrgrxXQeA9h5tXBaxIZ6ZLAEpMnfBkKHy25fpnb3xbHyKxRSdbWz412DlQwMf/7IPeKgO7ZTXq1rn+dwyIqsSisM0PS0fNanSEVXKtEvZCVCLbRanKmH7tOBlnu5fNeE8yHaeYADuPw8/dl2G7Q3O2tGLCUTwUE46HJho37ap+1/MM+aqMpp7amjiMDNWCa91+uwbJSIMfKjD6Ebj6dJZ393BtuVKyhNrbjfQJ5aiHiqSCZ4WRKySeKSBM0XK4sMzsixVPU7N8rljFn+idcBoaHtmm6gW9Y2Leds6FFFLV+5Jl/ffSwWAvXNZ+d83pS/L5qnz2FDmAUw27O9RbReSmyOWyYu+S1uiFXotGWfzfa//32r/aa1H073otwO5HSlM/3U89cvob -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_6.xml: -------------------------------------------------------------------------------- 1 | 7Vdbb9MwFP41keCBKnaSXh7bsg0EG6ChbTy6iZsanDg47o1fz3Fi5+K0Y0KMp1WV6u+LfZxzP/WCZXa4kqTYXIuEcg/7ycEL3noYoxBjT3/95Fgz03BcE6lkidnUErfsFzWkb9gtS2jZ26iE4IoVfTIWeU5j1eOIlGLf37YWvH9rQVI6IG5jwofsPUvUxmiBJy3/jrJ0Y29G41n9JCN2s9Gk3JBE7DtUcOEFSymEqlfZYUm5Np61S33u8szT5sUkzdVTDlzzL5PdenY/v4kX6RwX/OeHj2+MlB3hW6Owh8cc5C0StoNlqpeWWlkiLy0F1zWsF8xB1Eapolpd6mekpKOcZLQsSExHscg8HHTO9i6pjKSO1vJgr0Ivc6HgZ7HfMEVvtRjg9hBswG1UxgEh/W4k/pFKsc2TT1vFWU4NnxD54xOcYkoHoD/yo+aurumsHahU9NChjCmvqMiokkfYYp/OjFtNXKPI4H0bJdju2XQjxDckMZGZNrJb58HC+O+0LzOa73OJLnfjI7kvr7bi3V18wpfgp2C+5KQs8cC8la2oluf/2bplToqv4rNglb00U+h1pUG0gK8/gtuXvheB6GWFsYMDB4cOjhw8dvDEwVMHz/pYI3inPg4cHDl44uBZR77WDzn6IUc/5OiHHP2Qox9y9EOOfsjRr8XI0Q85+iFHP+Toh1r94GszYhD+J5LkbEaEQT8jAn+YEU3wdzMieK6EwCeKm5MFNE/muksAinWesLgf+PTA1ENn/a0qIpFBbw8mfSpwtCCHl3/ogs4pDdtjFWrP2f43BURkbJDf+Icmg2Y1KGGl2MqYPmKV0HRRIlOq/lROht7ueDM64UzLScqJYrv+657ysLmhri1NMOEw6gcTCkez7qcvsFbayOj2QEesG6Ph1Im92ioDQVX4NUb4+4gMntJuX1kOmmauRxsdmNXu8c+tnhYW7z+ut3cJPLqZj1d5y7sN+6wAisMP35MTBy+wN516026ProX0BTv0a7ik6jVi9R2GsM9SFFBJjk9s9FByVD/rCGdprlMSgptKIHRhYjCUzc2DjCWJPr6QtGS/yIrbPOm3JV3ZOFlRvmimg6XgQlb3Buvq81jxM0Olkd+Oct20O195zlbKN1C5sZ0T/zZR7BaxXpf0WYI1fGSeQAMvvswTL/PEP50nUPj/5gmA7R+xOn/av7PBxW8= -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_7.xml: -------------------------------------------------------------------------------- 1 | 7VfbbtsgGH4aS9tFI2PsHC6T9DBt69opk9peEpvYtNi4mBzapx/YYBuSpVXV7qpR1PJ9wA//mXhwnu8uOCqzS5Zg6gV+svPgqRcE4+FY/lXEU0NEMGyIlJOkoUBHLMgz1qSv2TVJcGUtFIxRQUqbjFlR4FhYHOKcbe1lK0btU0uU4j1iESO6z96QRGRarWDU8d8wSTNzMhhOmpkcmcVakypDCdv2KHjmwTlnTDSjfDfHVNnO2KXZd/6P2fZiHBfiNRsu6e/RZjW5mf6KZ+k0KOnjj58nWsoG0bVW2AuGVMqbJWQjh6kaGmppiKIylDyuZT04laIyIcp6dK7mUIUHBcpxVaIYD2KWewHs7bUOqY0knozlpb1KNSyYkP9m24wIvFBiJLeVsSa5TORUIqDuhuKHlLN1kVytBSUF1nyC+MOV3EWECkB/4EftWX3TGTtgLvCuR2lTXmCWY8Gf5BIzO9Fu1XENIo23XZQEZk3WjxBfk0hHZtrK7pwnB9p/h315//2iShb48u40iR5zwK9W0ckBX0o/wemcoqoK9sxb2woref7L1q0KVP5h14zU9lJMqca1BtFMfv2BPH3ue5EUPa9x4GDo4NDBkYOHDh45eOzgiY0VkneyMXRw5OCRgyc9+Uo/4OgHHP2Aox9w9AOOfsDRDzj6AUe/DgNHP+DoBxz9gKMf6PST33fJiBDaGQHBfka0wd/PCPhRCREcKG5OFuAimaouIVGs8oTEduDjHRG3vfFdXUQijU53On1q8GRAIS9/2we9XQp222rU7TP9bywR4rFG/jH/VGzNY3zECLrdCsRTLF6uHjix+uG+t3vejA4403AcUyTIxu6ihzysT2hqSxtMQRjZwRSEg0n/YwtsrKBl9HugI9aN0XDixF5jpj1Bdfi1Rnh7RMLXtNu6arPlvXzOXHNWygRUdv8CBgP49ZW9U6assAMZUZIWKsplAGEuCZXYRL5zpnoiJ0mits84rsgzWlITenalV8WCoiWms7bhzhllvD4XrurPwXg9mqFukWnfc/oe1pPpUPE5kcUwME+vt8aeWcJWqwp/iP/DIy0a7Hnxs0V/tuh3bdEg/H8tWsLut02TP90PRHj2Fw== -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_8.xml: -------------------------------------------------------------------------------- 1 | 7VfZbuMgFP0aPyYyXrI8Juky1XSZUWfUziOxiU2LjYvJ1q8fsME2OGk6lSrNQyNL4Rzg4nvvuRgcf5HtLhks0hsaI+J4brxz/DPH80DgeY583HhfM5NgVBMJw7Ea1BL3+BUp0lXsGseoNAZySgnHhUlGNM9RxA0OMka35rAVJeaqBUxQj7iPIOmzDzjmqfLCG7f8N4STVK8MRtO6J4N6sPKkTGFMtx3KP3f8BaOU161st0BEBk/HpZ53caS3eTGGcv6eCTfk53izmj7MbqN5MvMK8vL9eqCsbCBZK4cdb0SEvXmMN6KZyKamlprIS02J5RrW8WfCVMp5UbUuZB8s0TCHGSoLGKFhRDPH8ztzjUWqIPG9jryIVyGbOeXib75NMUf30ozgtkJsgkt5RgQC8t1g9Jwwus7juzUnOEeKjyF7vhOzMJcCdIdu2KzVDZ2OA2Ic7TqUCuUlohnibC+G6N6pSqvSNQgV3rYq8fSYtKsQV5FQKTNpbLfJEw2Vv8O53L8s2Obq9Xbw+4k/kQG8Stj2QC5FnvzZgsCy9HrhrWKFpD33dHTLHBa/6A+Kq3hJppDtyoNwLh53KFZfuE4oTC8q7FnYt3Bg4dDCIwuPLTyx8NTEEol3MrFv4dDCYwtPO/alf8DyD1j+Acs/YPkHLP+A5R+w/AOWfy0Gln/A8g9Y/gHLP9D6Jx5dET35HyiSoxUR+IFREY36OxXRiL9bEf5nFYT3RkGAr4L4KojPLQgwcv+zgvAPfO2tKkB5PJPHJoEiWSc4MoWPdpg/dtp/qq9qqNDZTpVPBfYa5OLlH7ugM0vCdlqF2nn6QDipvuRlWpWnXBqySHW5TbJQ3DvK9T7wJV2zCJ3eMzhkCeKnPrb91HdSGx7IrOYYIpDjjfm6h9KtVqg3mlZZgamswJ0Mfd+0UnuqJnaPhZYtP/SGbufnnbRcx6ZnuVJkE4qPizR4z5G02sjp8kkc+X8wWogy3b/zWClVcg2X4ppi6BoSnORS9EIxiAlClj4W94CZ6shwHEsbc4ZK/AqXRIvP3Pjf3DvUJUVNbq8GXaEeL9yjG81AbHxTYCZOnwY/qjQ9hK5WJfrHPAvYXmvq4e3l0D//Cw== -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_relations_9.xml: -------------------------------------------------------------------------------- 1 | 7Vdbb9sgFP41fmxkjHN7TNKmm7aunbqp7d6ITWxaYlxMbv31Awy+4KTpKlXaQyNL4fvMOXAO58Pgwdlqd8lRnl6xGFMv8OOdB8+9IABhEHjq8eN9yYzCQUkknMSmU03ckhdsSN+waxLjotVRMEYFydtkxLIMR6LFIc7Ztt1tyWh71BwluEPcRoh22TsSi9REEQxr/gsmSWpHBoNx+WaFbGcTSZGimG0bFLzw4IwzJsrWajfDVCXP5qW0mx95W02M40y8xeCK/hxuluO7yY9omkyCnD5/+35mvGwQXZuAvWBApb9pTDaymaimpRaWyApLyeEq1oMT6SoVItetuXqHCtzL0AoXOYpwL2IrL4AN29YgOklibzMv85WrZsaE/JtuUyLwrXIjua0sNsmlYkUlAmpuKHpKOFtn8fVaUJJhw8eIP11LKyJUAfo9v1+N1UydzQPmAu8alEnlJWYrLPhedrFvx2ZZTV2DvsHbukoC2ydtVohvSGQqM6l814snG2b9Dq/ln/Hv5Ovz4zktBkSsJw/Lm3B+YC3lOsHJjKKiCDrp1bnCyp9/OrtFhvJf7IYRnS/F5KqtI+hP5eP35Ogz3+tL1zONAwdDB4cO7jt44OChg0cOHrexQnJObQwd3Hfw0MHjhn8VH3DiA058wIkPOPEBJz7gxAec+IATX42BEx9w4gNOfMCJD9TxyccqolP+B0RyVBHVVm8UAf2uIqribyoCfpQgglcEAT4F8SmIjxUECEf/mSDgga+9owKcxRN1bJIoUjohUbvw8Y6I+0b7QX9V+wad74x8NNhbkMnJ3zdBw0rB2kyj2s4eCEf6S16kWp5afwJxYSfKZECWmxOVEm2OeGTM/WpBcdw57nUOAQVb8wif3lfkcAkWpz7I3fJoLH//wOpbjmOKBNm0p3uoJMwI5WZUV1/Qrr4QjHoQtr2UkRrD5tHR8QVDeXBq/IKTnsvcdDzrqq1S8f5CDt9ybNWbPVs8ymvBDWe5lPL+jUdPqXnRLntESZIpTchiwVwSamcg8powMS9WJI6V+ZTjgrygBbV11/4uqK2FogWm0+q8OmOUcT0uXOrfa7uPueYY//XlolnGx6V/dKs6k1tnYG8u7y0824UtlwX+x2WXsL4Jld3r+yS8+As= -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_subclass_1.xml: -------------------------------------------------------------------------------- 1 | 7VfbctsgEP0aPcYjwLKtR1+adqZN007aSfNIBJaYIKEifMvXFyQkIWSnnbZ5iycz4RxgYXfPLnaA1vnxvcRldiMI5QEMyTFAmwBCMIUwMH8hOTXMYjpriFQyYhf1xB17ppYMLbtjhFaDhUoIrlg5JBNRFDRRAw5LKQ7DZVvBh6eWOKUj4i7BfMzeM6Iy6wWc9/wHytKsPRnM4mYmx+1i60mVYSIODoXeBWgthVDNKD+uKTfBa+PS7Lu+MNtdTNJC/cmGG/51vt/G98vPySpdwpL//PjpylrZY76zDgdwxrW9FWF7PUzNsKUeW6KoWkof17EBWmpTmVJlPbo2c7iikwLntCpxQieJyAOInL2DQ+ogqVMbeR2v0gwLofS/1SFjit4ZM5o7aLFpLlM51wiYu+HkKZViV5DbneKsoJYnWD7d6l1MGQGGkzDqznJD18aBSkWPDmVD+Z6KnCp50kva2dim1eoaRBYfepXAdk3mKiS0JLbKTDvbffL0wObvQi5nEbjDnx7Sw/G7yot8/xHAs7n0YkoLsjRFoZEoaTEM4VYUai24kPVaFOpPHGueHpn6UQcvsujBIDveHF1wakFBrpm5fo0IrjJK7DE65vLk2DPwwZ3rLdbIMWnbw0IjLBOLwi6hlIxqeZThSuxkQl+I4tQ2GSxTql5Yh87Lw0l/dCb7LScpx4rth9c9pwh7whfBtCOd+mZD8SHkaarx0m5ye4JnB4L5JO4+ixi9bLYJyshsrdYuBn8vYHiuGeHcVLptGC6SZKuvtax2j2uOq+p2202ng8Xnu4suczWUP+Ys1RWxSbRkqK6BlWkGTL8ESzuRM0LM9pWkFXvGj7xVX2kCUocoWgXR5nwphWYlx4+Ur7pW5SzZ1p/upqNG1L1w9tz+XXFFfrkvXGxkV+EEwfn832RpBXM1n4DpcJPYbiv6KmpBI7UURg+1GMAo33W86x4U/v4xqQpcfhONcw0zTPEqnOgT1qFJNlzXGHoYeXjq4cjDMw/PPbzwcDzEBuk7DTHycOThuYdjx77xD3j+Ac8/4PkHPP+A5x/w/AOef8Dzr8fA8w94/gHPP+D5B3r/6vq8WGSjF+Ni3cBFNGiW3WPvvADdW+8+AX5T/W/v//SFghh/FXgriLeCeNWCQK9YEBr2P5yaB6X/+Yne/QI= -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/inputs/test_subclass_2.xml: -------------------------------------------------------------------------------- 1 | 7Vdbb9sgGP01fmxkIE7ix8Rt2qm3TZnU9pEaYlshxsPktl8/sMEXnGbTpL7VshTOAT443y2Jh6Lt8VbgIn3khDIP+uTooWsPQjCG0NOvT041MxtPaiIRGTGLWmKV/aaG9A27ywgtewsl50xmRZ+MeZ7TWPY4LAQ/9JetOeufWuCEDohVjNmQfcmITI0KOG35O5olqT0ZTMJ6ZovtYqOkTDHhhw6FbjwUCc5lPdoeI8q086xf6n3LD2abiwmay3/Z8Mh+TPfr8GX+FC+SOSzYr/uHK2Nlj9nOCPbghCl7C5Lt1TDRQ0u9WyIvLaWOa1gPzZWpVMqiGi31HC7pKMdbWhY4pqOYbz2IOnt7h1ROkifreeWvQg9zLtXH4pBmkq60GcUdVLIpLpVbphDQd8PxJhF8l5PnnWRZTg1PsNg8q12Z1Anoj/ygOavrOusHKiQ9dijjylvKt1SKk1piZ0MTVpPXIDD40GYJtGvSbob4hsQmM5PGdhs8NTDxOx/LRbDEV0+r049vD/d367K8ed1cn42l41Oak7kuCoXeGY83fR+ueS4jzrioFiNfPWGoeHrM5GvlvcCgN43M+PrYBScLcrLM9P0NUgI7JjR8M6dWoDVSoY4V0xJmCmERG+Q3QaRkUL+DqJZ8J2J6wXPINBYsEiovrIPnU6IT8uBMxC0nKMMy2/evey4LzAnfeaaENBk36SccGjt5VKs0m7p9wLEDwXQUNs8sRJfN1k4ZmK0ytPHB/yctHCStai5oHjFcljZ8bf5WBU6JyYC/tIQyx8VPXt+8Zgo9rnQFC/X6I3VC5HuBMh1VGDoYOXjs4MDBEwdPHTxzcNjHGqk79TFycODgqYPDjn2tDzj6gKMPOPqAow84+oCjDzj6gKOvxcDRBxx9wNEHHH2g1ade2wEGPftMD/iwjcNZ0E9/f9jGm47dLWr0WV0cXSiIYUP/KoivgvjUghh/YkEo2P78rb9Q2j8R6OYP -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_attributes_1.owl: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | datatype property 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | Class 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_attributes_10.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | datatype property2 9 | 10 | 11 | 12 | 13 | datatype property1 14 | 15 | 16 | Class 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_attributes_11.owl: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | datatype property2 11 | 12 | 13 | datatype property1 14 | 15 | 16 | 17 | 18 | 19 | 20 | Class 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_attributes_12.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | datatype property 8 | 9 | 10 | 11 | 12 | 13 | Class 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_attributes_13.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | datatype property 9 | 10 | 11 | 12 | 13 | 14 | 15 | Class 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_attributes_2.owl: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | Class 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | datatype property 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_attributes_3.owl: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | Class 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | datatype property 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_attributes_4.owl: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | datatype property 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | Class 24 | 25 | 26 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_attributes_6.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Class 8 | 9 | 10 | 11 | 12 | datatype property 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_attributes_7.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | datatype property 12 | 13 | 14 | 15 | 16 | 17 | Class 18 | 19 | 20 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_attributes_8.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | datatype property 10 | 11 | 12 | Class 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_attributes_9.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | datatype property 10 | 11 | 12 | Class 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_disjoint_1.owl: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | Class1 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | Class2 18 | 19 | 20 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_disjoint_2.owl: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | Class2 11 | 12 | 13 | 14 | Class1 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_equivalence_1.owl: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | Class1 9 | 10 | 11 | 12 | 13 | 14 | Class2 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_equivalence_2.owl: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | Class2 9 | 10 | 11 | 12 | 13 | 14 | Class1 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_individuals_1.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | Class1 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_individuals_2.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Class1 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_10.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | Class1 9 | 10 | 11 | 12 | Class2 13 | 14 | 15 | object property 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_11.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Class1 8 | 9 | 10 | 11 | Class2 12 | 13 | 14 | 15 | 16 | 17 | 18 | object property 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_12.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Class2 8 | 9 | 10 | 11 | 12 | 13 | object property 14 | 15 | 16 | 17 | 18 | 19 | Class1 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_13.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Class2 8 | 9 | 10 | 11 | 12 | 13 | object property 14 | 15 | 16 | 17 | 18 | 19 | Class1 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_14.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | Class1 9 | 10 | 11 | object property2 12 | 13 | 14 | 15 | 16 | 17 | Class2 18 | 19 | 20 | 21 | object property1 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_15.owl: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | object property2 10 | 11 | 12 | 13 | 14 | Class1 15 | 16 | 17 | 18 | 19 | 20 | 21 | object property1 22 | 23 | 24 | Class2 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_16.owl: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | Class1 12 | 13 | 14 | 15 | 16 | object property2 17 | 18 | 19 | 20 | Class2 21 | 22 | 23 | 24 | 25 | object property1 26 | 27 | 28 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_17.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | Class1 9 | 10 | 11 | object property 12 | 13 | 14 | 15 | 16 | Class2 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_18.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | Class2 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | object property 17 | 18 | 19 | 20 | Class1 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_19.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Class2 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | object property 17 | 18 | 19 | 20 | Class1 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_20.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | Class2 9 | 10 | 11 | object property 12 | 13 | 14 | 15 | 16 | 17 | Class1 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_21.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | object property 10 | 11 | 12 | 13 | Class1 14 | 15 | 16 | 17 | Class2 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_22.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | object property 9 | 10 | 11 | 12 | 13 | Class2 14 | 15 | 16 | 17 | Class1 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_23.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | object property 10 | 11 | 12 | Class2 13 | 14 | 15 | 16 | 17 | 18 | 19 | Class1 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_24.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | Class1 9 | 10 | 11 | 12 | 13 | object property 14 | 15 | 16 | Class2 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_8.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | Class1 11 | 12 | 13 | 14 | object property 15 | 16 | 17 | 18 | Class2 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_relations_9.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Class1 8 | 9 | 10 | 11 | 12 | Class2 13 | 14 | 15 | 16 | object property 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_subclass_1.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Class1 8 | 9 | 10 | 11 | 12 | 13 | Class2 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/test_files/Chowlk/tests/outputs/test_subclass_2.owl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | Class1 9 | 10 | 11 | 12 | 13 | 14 | 15 | Class2 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/test_files/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/__init__.py -------------------------------------------------------------------------------- /test/test_files/demo/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/demo/__init__.py -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: test 2 | 3 | WORDS = "./inputs/words.txt" 4 | 5 | test: words 6 | pytest -xv test.py unit.py 7 | 8 | words: 9 | [[ -f $(WORDS) ]] || (cd ./inputs && unzip words.txt.zip) 10 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/demo/demo_20_password/__init__.py -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/all_test.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eu -o pipefail 4 | 5 | PRG="password_pgr.py" 6 | for FILE in password*.py; do 7 | echo "==> ${FILE} <==" 8 | cp "$FILE" "$PRG" 9 | make test 10 | done 11 | 12 | echo "Done." 13 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/const/adjs.txt: -------------------------------------------------------------------------------- 1 | absent 2 | actual 3 | adjourn 4 | annotated 5 | appellate 6 | appropriate 7 | certain 8 | civil 9 | clear 10 | common 11 | compulsory 12 | criminal 13 | cruel 14 | current 15 | different 16 | direct 17 | disorderly 18 | distinct 19 | domestic 20 | due 21 | eligible 22 | equal 23 | excessive 24 | exclusive 25 | executive 26 | extraordinary 27 | first 28 | foreign 29 | fourth 30 | free 31 | general 32 | good 33 | great 34 | high 35 | imminent 36 | impartial 37 | indian 38 | infamous 39 | inferior 40 | inhabitant 41 | inoperative 42 | judicial 43 | just 44 | large 45 | least 46 | legislative 47 | liable 48 | limited 49 | long 50 | male 51 | more 52 | natural 53 | naval 54 | necessary 55 | needful 56 | net 57 | new 58 | next 59 | numerous 60 | open 61 | original 62 | other 63 | own 64 | particular 65 | perfect 66 | present 67 | principal 68 | private 69 | pro 70 | probable 71 | proper 72 | public 73 | regular 74 | religious 75 | republican 76 | respective 77 | same 78 | second 79 | secure 80 | several 81 | sixth 82 | small 83 | sole 84 | speedy 85 | square 86 | subject 87 | subsequent 88 | such 89 | sufficient 90 | supreme 91 | temporary 92 | third 93 | unable 94 | uncorrected 95 | uniform 96 | unreasonable 97 | unusual 98 | useful 99 | valid 100 | whole 101 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/const/nouns.txt: -------------------------------------------------------------------------------- 1 | account 2 | affirmation 3 | age 4 | aid 5 | amendment 6 | appointment 7 | article 8 | attendance 9 | ballot 10 | case 11 | choice 12 | citizen 13 | claim 14 | compensation 15 | continuance 16 | crime 17 | date 18 | day 19 | death 20 | debt 21 | declaration 22 | defence 23 | disability 24 | dollar 25 | duty 26 | effect 27 | elect 28 | election 29 | elector 30 | enumeration 31 | execution 32 | executive 33 | fifth 34 | fourth 35 | herein 36 | importation 37 | insurrection 38 | jurisdiction 39 | jury 40 | land 41 | law 42 | legislation 43 | legislature 44 | life 45 | list 46 | majority 47 | manner 48 | meeting 49 | member 50 | money 51 | noon 52 | number 53 | objection 54 | offense 55 | office 56 | officer 57 | ordain 58 | order 59 | part 60 | people 61 | person 62 | power 63 | presence 64 | present 65 | privilege 66 | process 67 | property 68 | punishment 69 | purpose 70 | question 71 | quorum 72 | rebellion 73 | regulation 74 | representation 75 | representative 76 | requisite 77 | resignation 78 | right 79 | rule 80 | section 81 | senator 82 | service 83 | state 84 | subject 85 | submission 86 | tax 87 | tempore 88 | term 89 | thing 90 | third 91 | time 92 | trial 93 | vacancy 94 | version 95 | vote 96 | whereof 97 | witness 98 | writ 99 | writing 100 | year 101 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/const/verbs.txt: -------------------------------------------------------------------------------- 1 | abridge 2 | accord 3 | act 4 | adjourn 5 | admit 6 | affect 7 | appoint 8 | apportion 9 | approve 10 | ascertain 11 | assemble 12 | attain 13 | authorize 14 | be 15 | bear 16 | become 17 | bind 18 | call 19 | choose 20 | commit 21 | compel 22 | compose 23 | consist 24 | constitute 25 | construe 26 | convict 27 | count 28 | declare 29 | deny 30 | determine 31 | devolve 32 | direct 33 | discharge 34 | divide 35 | do 36 | elect 37 | enforce 38 | enjoy 39 | enter 40 | entitle 41 | establish 42 | exceed 43 | except 44 | exclude 45 | execute 46 | exercise 47 | exist 48 | extend 49 | fill 50 | fix 51 | follow 52 | form 53 | give 54 | grant 55 | happen 56 | have 57 | hold 58 | include 59 | increase 60 | issue 61 | keep 62 | lay 63 | lie 64 | make 65 | may 66 | meet 67 | pass 68 | pay 69 | prescribe 70 | present 71 | prohibit 72 | promote 73 | propose 74 | provide 75 | publish 76 | punish 77 | qualify 78 | question 79 | ratify 80 | receive 81 | regulate 82 | remove 83 | repeal 84 | require 85 | return 86 | say 87 | secure 88 | shall 89 | sign 90 | sit 91 | support 92 | take 93 | tax 94 | think 95 | transmit 96 | try 97 | vest 98 | vote 99 | will 100 | write 101 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/inputs/.gitignore: -------------------------------------------------------------------------------- 1 | words.txt 2 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/inputs/Makefile: -------------------------------------------------------------------------------- 1 | scarlet: 2 | wget -O scarlet.txt https://www.gutenberg.org/files/25344/25344-0.txt 3 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/inputs/fox.txt: -------------------------------------------------------------------------------- 1 | The quick brown fox jumps over the lazy dog. 2 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/inputs/issa.txt: -------------------------------------------------------------------------------- 1 | Selected Haiku by Issa 2 | 3 | Don't worry, spiders, 4 | I keep house 5 | casually. 6 | 7 | New Year's Day- 8 | everything is in blossom! 9 | I feel about average. 10 | 11 | The snow is melting 12 | and the village is flooded 13 | with children. 14 | 15 | Goes out, 16 | comes back- 17 | the love life of a cat. 18 | 19 | Mosquito at my ear- 20 | does he think 21 | I'm deaf? 22 | 23 | Under the evening moon 24 | the snail 25 | is stripped to the waist. 26 | 27 | Even with insects- 28 | some can sing, 29 | some can't. 30 | 31 | All the time I pray to Buddha 32 | I keep on 33 | killing mosquitoes. 34 | 35 | Napped half the day; 36 | no one 37 | punished me! 38 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/inputs/nobody.txt: -------------------------------------------------------------------------------- 1 | I'm Nobody! Who are you? 2 | Are you -- Nobody -- too? 3 | Then there's a pair of us! 4 | Don't tell! they'd advertise -- you know! 5 | 6 | How dreary -- to be -- Somebody! 7 | How public -- like a Frog -- 8 | To tell one's name -- the livelong June -- 9 | To an admiring Bog! 10 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/inputs/now.txt: -------------------------------------------------------------------------------- 1 | Now is the time for all good men to come to the aid of the party. 2 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/inputs/out.txt: -------------------------------------------------------------------------------- 1 | this is some text 2 | this is some more text 3 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/inputs/preamble.txt: -------------------------------------------------------------------------------- 1 | When, in the course of human events, it becomes necessary for one people to 2 | dissolve the political bands which have connected them with another, and to 3 | assume among the powers of the earth, the separate and equal station to 4 | which the laws of nature and of nature's God entitle them, a decent respect 5 | to the opinions of mankind requires that they should declare the causes 6 | which impel them to the separation. 7 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/inputs/sonnet-29.txt: -------------------------------------------------------------------------------- 1 | Sonnet 29 2 | William Shakespeare 3 | 4 | When, in disgrace with fortune and men’s eyes, 5 | I all alone beweep my outcast state, 6 | And trouble deaf heaven with my bootless cries, 7 | And look upon myself and curse my fate, 8 | Wishing me like to one more rich in hope, 9 | Featured like him, like him with friends possessed, 10 | Desiring this man’s art and that man’s scope, 11 | With what I most enjoy contented least; 12 | Yet in these thoughts myself almost despising, 13 | Haply I think on thee, and then my state, 14 | (Like to the lark at break of day arising 15 | From sullen earth) sings hymns at heaven’s gate; 16 | For thy sweet love remembered such wealth brings 17 | That then I scorn to change my state with kings. 18 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/inputs/spiders.txt: -------------------------------------------------------------------------------- 1 | Don't worry, spiders, 2 | I keep house 3 | casually. 4 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/inputs/the-bustle.txt: -------------------------------------------------------------------------------- 1 | The bustle in a house 2 | The morning after death 3 | Is solemnest of industries 4 | Enacted upon earth,-- 5 | 6 | The sweeping up the heart, 7 | And putting love away 8 | We shall not want to use again 9 | Until eternity. 10 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/inputs/words.txt.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/demo/demo_20_password/inputs/words.txt.zip -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/scarlet/adjs.txt: -------------------------------------------------------------------------------- 1 | alive 2 | awful 3 | bad 4 | beautiful 5 | bitter 6 | black 7 | bright 8 | calm 9 | certain 10 | close 11 | common 12 | conscious 13 | dark 14 | dead 15 | deep 16 | dreary 17 | early 18 | earthly 19 | evil 20 | fair 21 | familiar 22 | few 23 | first 24 | former 25 | free 26 | full 27 | good 28 | gray 29 | great 30 | guilty 31 | happy 32 | hard 33 | heavy 34 | high 35 | holy 36 | human 37 | kind 38 | large 39 | last 40 | latter 41 | least 42 | less 43 | like 44 | little 45 | lonely 46 | long 47 | many 48 | miserable 49 | moral 50 | more 51 | most 52 | much 53 | native 54 | natural 55 | new 56 | next 57 | old 58 | only 59 | open 60 | other 61 | outward 62 | own 63 | pale 64 | peculiar 65 | physical 66 | poor 67 | present 68 | professional 69 | public 70 | quiet 71 | real 72 | red 73 | rich 74 | sacred 75 | sad 76 | same 77 | scarlet 78 | secret 79 | sensitive 80 | short 81 | sinful 82 | singular 83 | small 84 | solemn 85 | spiritual 86 | stern 87 | strange 88 | strong 89 | such 90 | terrible 91 | true 92 | ugly 93 | venerable 94 | very 95 | well 96 | white 97 | whole 98 | wild 99 | wise 100 | young 101 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/scarlet/nouns.txt: -------------------------------------------------------------------------------- 1 | age 2 | air 3 | arm 4 | art 5 | aspect 6 | bosom 7 | breast 8 | brook 9 | character 10 | child 11 | church 12 | clergyman 13 | crowd 14 | day 15 | death 16 | door 17 | earth 18 | evil 19 | expression 20 | eye 21 | face 22 | father 23 | figure 24 | forest 25 | friend 26 | hand 27 | hath 28 | head 29 | heart 30 | hour 31 | house 32 | idea 33 | impulse 34 | infant 35 | iron 36 | kind 37 | law 38 | letter 39 | life 40 | light 41 | look 42 | magistrate 43 | man 44 | market 45 | matter 46 | mind 47 | minister 48 | moment 49 | mother 50 | name 51 | nature 52 | night 53 | nothing 54 | object 55 | one 56 | pain 57 | part 58 | passion 59 | people 60 | person 61 | physician 62 | place 63 | point 64 | power 65 | prison 66 | purpose 67 | scaffold 68 | scene 69 | secret 70 | self 71 | shadow 72 | shame 73 | side 74 | sin 75 | smile 76 | something 77 | sorrow 78 | soul 79 | spirit 80 | state 81 | step 82 | street 83 | sunshine 84 | sympathy 85 | thing 86 | thou 87 | thought 88 | time 89 | token 90 | town 91 | tree 92 | truth 93 | voice 94 | way 95 | window 96 | woman 97 | word 98 | world 99 | year 100 | “ 101 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/scarlet/verbs.txt: -------------------------------------------------------------------------------- 1 | answer 2 | appear 3 | approach 4 | ask 5 | be 6 | bear 7 | become 8 | begin 9 | behold 10 | believe 11 | break 12 | bring 13 | burn 14 | call 15 | can 16 | cast 17 | catch 18 | come 19 | continue 20 | could 21 | cover 22 | cry 23 | deem 24 | die 25 | discern 26 | do 27 | draw 28 | embroider 29 | enter 30 | fall 31 | feel 32 | find 33 | gather 34 | gaze 35 | give 36 | go 37 | grow 38 | have 39 | hear 40 | hide 41 | hold 42 | imagine 43 | keep 44 | know 45 | laugh 46 | lay 47 | lead 48 | learn 49 | leave 50 | let 51 | lie 52 | live 53 | look 54 | lose 55 | love 56 | make 57 | may 58 | mean 59 | meet 60 | must 61 | need 62 | offer 63 | pass 64 | play 65 | possess 66 | put 67 | recognize 68 | remain 69 | reply 70 | reveal 71 | rise 72 | run 73 | save 74 | say 75 | see 76 | seek 77 | seem 78 | set 79 | shall 80 | should 81 | show 82 | sit 83 | smile 84 | speak 85 | stand 86 | take 87 | talk 88 | teach 89 | tell 90 | think 91 | throw 92 | touch 93 | turn 94 | walk 95 | wear 96 | whisper 97 | will 98 | win 99 | work 100 | would 101 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_20_password/unit.py: -------------------------------------------------------------------------------- 1 | import random 2 | from password import clean, ransom, l33t 3 | 4 | 5 | # -------------------------------------------------- 6 | def test_clean(): 7 | """Test clean""" 8 | 9 | assert clean('') == '' 10 | assert clean("states,") == 'states' 11 | assert clean("Don't") == 'Dont' 12 | 13 | 14 | # -------------------------------------------------- 15 | def test_ransom(): 16 | """Test ransom""" 17 | 18 | state = random.getstate() 19 | random.seed(1) 20 | assert (ransom('Money') == 'moNeY') 21 | assert (ransom('Dollars') == 'DOLlaRs') 22 | random.setstate(state) 23 | 24 | 25 | # -------------------------------------------------- 26 | def test_l33t(): 27 | """Test l33t""" 28 | 29 | state = random.getstate() 30 | random.seed(1) 31 | assert l33t('Money') == 'moNeY{' 32 | assert l33t('Dollars') == 'D0ll4r5`' 33 | random.setstate(state) 34 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_example_argparse.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """Crow's Nest""" 3 | 4 | import argparse 5 | 6 | 7 | # -------------------------------------------------- 8 | def get_args(): 9 | """Get command-line arguments""" 10 | 11 | parser = argparse.ArgumentParser( 12 | description="Crow's Nest -- choose the correct article", 13 | formatter_class=argparse.ArgumentDefaultsHelpFormatter) 14 | 15 | parser.add_argument('word', metavar='word', help='A word') 16 | 17 | return parser.parse_args() 18 | 19 | 20 | # -------------------------------------------------- 21 | def main(): 22 | """Make a jazz noise here""" 23 | 24 | args = get_args() 25 | word = args.word 26 | article = 'an' if word[0].lower() in 'aeiou' else 'a' 27 | 28 | print(f'Ahoy, Captain, {article} {word} off the larboard bow!') 29 | 30 | 31 | # -------------------------------------------------- 32 | if __name__ == '__main__': 33 | main() 34 | -------------------------------------------------------------------------------- /test/test_files/demo/demo_example_inheritance.py: -------------------------------------------------------------------------------- 1 | class Rectangle: 2 | def __init__(self, length, width): 3 | self.length = length 4 | self.width = width 5 | 6 | def area(self): 7 | return self.length * self.width 8 | 9 | class Square(Rectangle): 10 | def __init__(self, length): 11 | super().__init__(length, length) 12 | 13 | class VolumeMixin: 14 | def volume(self): 15 | return self.area() * self.height 16 | 17 | class Cube(VolumeMixin, Square): 18 | def __init__(self, length): 19 | super().__init__(length) 20 | self.height = length 21 | 22 | def face_area(self): 23 | return super().area() 24 | 25 | def surface_area(self): 26 | return super().area() * 6 27 | 28 | 29 | cube = Cube(2) 30 | surface=cube.surface_area() 31 | volume=cube.volume() 32 | print(surface, volume) 33 | -------------------------------------------------------------------------------- /test/test_files/pylops/.coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | branch = True 3 | source = pylops -------------------------------------------------------------------------------- /test/test_files/pylops/.gitignore: -------------------------------------------------------------------------------- 1 | # OS generated files # 2 | .*.swp 3 | *.py[cod] 4 | .DS_Store 5 | .DS_Store? 6 | ._* 7 | .Spotlight-V100 8 | .Trashes 9 | ehthumbs.db 10 | Thumbs.db 11 | .idea/* 12 | static/* 13 | db.sqlite3 14 | 15 | # Build # 16 | build 17 | dist 18 | pylops.egg-info/ 19 | 20 | # setuptools_scm generated # 21 | pylops/version.py 22 | 23 | # Development # 24 | .ipynb_checkpoints/ 25 | notebooks 26 | TODO 27 | 28 | # Documentation # 29 | docs/build 30 | docs/source/api/generated 31 | docs/source/gallery 32 | docs/source/tutorials 33 | 34 | # Pylint # 35 | pylint_plot.py 36 | pylintrc 37 | 38 | # Coverage reports 39 | COVERAGE 40 | .coverage 41 | coverage.xml 42 | htmlcov/ 43 | 44 | # Airspeed velocity benchmarks 45 | ASV 46 | .asv/ 47 | asv.conf.json 48 | benchmarks/ -------------------------------------------------------------------------------- /test/test_files/pylops/.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | 3 | python: 4 | - "3.6" 5 | 6 | os: 7 | - linux 8 | 9 | script: 10 | - pip3 install -r requirements-dev.txt 11 | - pip3 install coverage codacy-coverage 12 | - pip3 install . 13 | - python3 setup.py test 14 | 15 | after_success: 16 | - 'if [ ! -z "${CODACY_PROJECT_TOKEN}" ]; then coverage run setup.py test; coverage xml; bash <(curl -Ls https://coverage.codacy.com/get.sh) report -r coverage.xml; fi' -------------------------------------------------------------------------------- /test/test_files/pylops/MANIFEST.in: -------------------------------------------------------------------------------- 1 | exclude .* 2 | exclude environment.yml requirements.txt Makefile 3 | exclude environment-dev.yml requirements-dev.txt azure-pipelines.yml readthedocs.yml 4 | recursive-exclude docs * 5 | recursive-exclude examples * 6 | recursive-exclude pytests * 7 | recursive-exclude testdata * 8 | recursive-exclude tutorials * 9 | -------------------------------------------------------------------------------- /test/test_files/pylops/Makefile: -------------------------------------------------------------------------------- 1 | PIP := $(shell command -v pip3 2> /dev/null || command which pip 2> /dev/null) 2 | PYTHON := $(shell command -v python3 2> /dev/null || command which python 2> /dev/null) 3 | 4 | .PHONY: install dev-install install_conda dev-install_conda tests doc docupdate 5 | 6 | pipcheck: 7 | ifndef PIP 8 | $(error "Ensure pip or pip3 are in your PATH") 9 | endif 10 | @echo Using pip: $(PIP) 11 | 12 | pythoncheck: 13 | ifndef PYTHON 14 | $(error "Ensure python or python3 are in your PATH") 15 | endif 16 | @echo Using python: $(PYTHON) 17 | 18 | install: 19 | make pipcheck 20 | $(PIP) install -r requirements.txt && $(PIP) install . 21 | 22 | dev-install: 23 | make pipcheck 24 | $(PIP) install -r requirements-dev.txt && $(PIP) install -e . 25 | 26 | install_conda: 27 | conda env create -f environment.yml && source activate pylops && pip install . 28 | 29 | dev-install_conda: 30 | conda env create -f environment-dev.yml && source activate pylops && pip install -e . 31 | 32 | tests: 33 | make pythoncheck 34 | $(PYTHON) setup.py test 35 | 36 | doc: 37 | cd docs && rm -rf source/api/generated && rm -rf source/gallery &&\ 38 | rm -rf source/tutorials && rm -rf build && make html && cd .. 39 | 40 | docupdate: 41 | cd docs && make html && cd .. 42 | -------------------------------------------------------------------------------- /test/test_files/pylops/docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # Disable numba 5 | # export NUMBA_DISABLE_JIT=1 6 | 7 | # You can set these variables from the command line. 8 | SPHINXOPTS = 9 | SPHINXBUILD = sphinx-build 10 | SPHINXPROJ = Pylops 11 | SOURCEDIR = source 12 | BUILDDIR = build 13 | 14 | # Put it first so that "make" without argument is like "make help". 15 | help: 16 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 17 | 18 | .PHONY: help Makefile 19 | 20 | # Catch-all target: route all unknown targets to Sphinx using the new 21 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 22 | %: Makefile 23 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -------------------------------------------------------------------------------- /test/test_files/pylops/docs/source/_static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/pylops/docs/source/_static/favicon.ico -------------------------------------------------------------------------------- /test/test_files/pylops/docs/source/_static/pylops.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/pylops/docs/source/_static/pylops.png -------------------------------------------------------------------------------- /test/test_files/pylops/docs/source/_static/pylops_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/pylops/docs/source/_static/pylops_b.png -------------------------------------------------------------------------------- /test/test_files/pylops/docs/source/_templates/autosummary/base.rst: -------------------------------------------------------------------------------- 1 | {{ fullname | escape | underline }} 2 | 3 | .. currentmodule:: {{ module }} 4 | 5 | .. auto{{ objtype }}:: {{ objname }} 6 | 7 | .. raw:: html 8 | 9 |
10 | -------------------------------------------------------------------------------- /test/test_files/pylops/docs/source/_templates/autosummary/class.rst: -------------------------------------------------------------------------------- 1 | {{ fullname | escape | underline }} 2 | 3 | .. currentmodule:: {{ module }} 4 | 5 | .. autoclass:: {{ objname }} 6 | 7 | .. rubric:: Methods 8 | 9 | .. autosummary:: 10 | {% for item in methods %} 11 | ~{{ objname }}.{{ item }} 12 | {%- endfor %} 13 | 14 | {# .. rubric:: Attributes#} 15 | {##} 16 | {# .. autosummary::#} 17 | {# {% for item in attributes %}#} 18 | {# ~{{ objname }}.{{ item }}#} 19 | {# {%- endfor %}#} 20 | 21 | .. raw:: html 22 | 23 |
24 | 25 | 26 | .. include:: backreferences/{{ fullname }}.examples 27 | 28 | .. raw:: html 29 | 30 |
31 | 32 | 33 | {#{% for item in methods %} #} 34 | {#{% if item != '__init__' %} #} 35 | {#.. automethod:: {{ objname }}.{{ item }} #} 36 | {#{% endif %} #} 37 | {#{% endfor %} #} 38 | 39 | {#.. raw:: html #} 40 | {# #} 41 | {#
#} 42 | 43 | -------------------------------------------------------------------------------- /test/test_files/pylops/docs/source/_templates/autosummary/exception.rst: -------------------------------------------------------------------------------- 1 | {{ fullname | escape | underline }} 2 | 3 | .. currentmodule:: {{ module }} 4 | 5 | .. autoexception:: {{ objname }} 6 | 7 | 8 | .. raw:: html 9 | 10 |
11 | 12 | -------------------------------------------------------------------------------- /test/test_files/pylops/docs/source/_templates/autosummary/function.rst: -------------------------------------------------------------------------------- 1 | {{ fullname | escape | underline }} 2 | 3 | .. currentmodule:: {{ module }} 4 | 5 | .. autofunction:: {{ objname }} 6 | 7 | .. include:: backreferences/{{ fullname }}.examples 8 | 9 | .. raw:: html 10 | 11 |
12 | 13 | -------------------------------------------------------------------------------- /test/test_files/pylops/docs/source/_templates/autosummary/module.rst: -------------------------------------------------------------------------------- 1 | .. raw:: html 2 | 3 |
4 | 5 | ``{{ fullname }}`` 6 | {% for i in range(fullname|length + 15) %}-{% endfor %} 7 | 8 | .. raw:: html 9 | 10 |
11 | 12 | .. automodule:: {{ fullname }} 13 | 14 | {% block classes %} 15 | {% if classes %} 16 | .. rubric:: Classes 17 | 18 | .. autosummary:: 19 | :toctree: ./ 20 | {% for item in classes %} 21 | {{ fullname }}.{{ item }} 22 | {% endfor %} 23 | {% endif %} 24 | {% endblock %} 25 | 26 | 27 | {% block functions %} 28 | {% if functions %} 29 | .. rubric:: Functions 30 | 31 | .. autosummary:: 32 | :toctree: ./ 33 | {% for item in functions %} 34 | {{ fullname }}.{{ item }} 35 | {% endfor %} 36 | {% endif %} 37 | {% endblock %} 38 | 39 | 40 | {% block exceptions %} 41 | {% if exceptions %} 42 | .. rubric:: Exceptions 43 | 44 | .. autosummary:: 45 | :toctree: ./ 46 | {% for item in exceptions %} 47 | {{ fullname }}.{{ item }} 48 | {% endfor %} 49 | {% endif %} 50 | {% endblock %} 51 | 52 | .. raw:: html 53 | 54 |
55 | -------------------------------------------------------------------------------- /test/test_files/pylops/docs/source/_templates/layout.html: -------------------------------------------------------------------------------- 1 | {# Import the theme's layout. #} 2 | {% extends "!layout.html" %} 3 | 4 | {% block extrahead %} 5 | {# Include require.js so that we can use WorldWind #} 6 | 7 | {% endblock %} 8 | 9 | 10 | {% block htmltitle %} 11 | {% if title == '' or title == 'Home' %} 12 | {{ docstitle|e }} 13 | {% else %} 14 | {{ title|striptags|e }}{{ titlesuffix }} 15 | {% endif %} 16 | {% endblock %} 17 | 18 | 19 | {% block menu %} 20 | {{ super() }} 21 | 22 | {% if menu_links %} 23 |

24 | 25 | {% if menu_links_name %} 26 | {{ menu_links_name }} 27 | {% else %} 28 | External links 29 | {% endif %} 30 | 31 |

32 |
    33 | {% for text, link in menu_links %} 34 |
  • {{ text }}
  • 35 | {% endfor %} 36 |
37 | {% endif %} 38 | {% endblock %} 39 | -------------------------------------------------------------------------------- /test/test_files/pylops/docs/source/citing.rst: -------------------------------------------------------------------------------- 1 | .. _citing: 2 | 3 | Citing 4 | ====== 5 | When using ``pylops`` in scientific publications, please cite the following paper: 6 | 7 | - Ravasi, M., and Vasconcelos I., *PyLops--A linear-operator Python library for scalable algebra and optimization*, 8 | Software X, (2020). `link `_. 9 | -------------------------------------------------------------------------------- /test/test_files/pylops/docs/source/credits.rst: -------------------------------------------------------------------------------- 1 | .. _credits: 2 | 3 | Contributors 4 | ============ 5 | 6 | * `Matteo Ravasi `_, mrava87 7 | * `Carlos da Costa `_, cako 8 | * `Dieter Werthmüller `_, prisae 9 | * `Tristan van Leeuwen `_, TristanvanLeeuwen 10 | * `Leonardo Uieda `_, leouieda 11 | * `Filippo Broggini `_, filippo82 12 | * `Tyler Hughes `_, twhughes 13 | * `Lyubov Skopintseva `_, lskopintseva 14 | * `Francesco Picetti `_, fpicetti 15 | * `Alan Richardson `_, ar4 16 | * `BurningKarl `_, BurningKarl -------------------------------------------------------------------------------- /test/test_files/pylops/docs/source/extensions.rst: -------------------------------------------------------------------------------- 1 | .. _extensions: 2 | 3 | Extensions 4 | ========== 5 | 6 | PyLops brings to users the power of linear operators in a simple and easy 7 | to use programming interface. 8 | 9 | While very powerful on its own, this library is further extended to take 10 | advantage of more advanced computational resources, either in terms of 11 | **multiple-node clusters** or **GPUs**. Moreover, some indipendent small 12 | libraries are created to use third party softwares that cannot be included as 13 | dependencies to our main library for licensing issues but may be useful 14 | for academic purposes. 15 | 16 | Spin-off projects that aim at extending the capabilities of PyLops are: 17 | 18 | * `PyLops-GPU `_ 19 | * `PyLops-Distributed `_ 20 | * `curvelops `_ 21 | -------------------------------------------------------------------------------- /test/test_files/pylops/docs/source/faq.rst: -------------------------------------------------------------------------------- 1 | .. _faq: 2 | 3 | Frequenty Asked Questions 4 | ========================= 5 | 6 | **1. Can I visualize my operator?** 7 | 8 | Yes, you can. Every operator has a method called ``todense`` that will return the dense matrix equivalent of 9 | the operaotor. Note, however, that in order to do so we need to allocate a numpy array of the size of your 10 | operator and apply the operator N times, where N is the number of columns of the operator. The allocation can 11 | be very heavy on your memory and the computation may take long time, so use it with care only for small toy 12 | examples to understand what your operator looks like. This method should however not be abused, as the reason of 13 | working with linear operators is indeed that you don't really need to access the explicit matrix representation 14 | of an operator. 15 | 16 | 17 | **2. Can I have an older version of cupy installed in my system (**``cupy-cudaXX<8.1.0``**)?** 18 | Yes. Nevertheless you need to tell PyLops that you don't want to use its ``cupy`` 19 | backend by setting the environment variable ``CUPY_PYLOPS=0``. Failing to do so 20 | will lead to an error when you import ``pylops`` because some of the ``cupyx`` 21 | routines that we use are not available in earlier version of cupy. -------------------------------------------------------------------------------- /test/test_files/pylops/environment-dev.yml: -------------------------------------------------------------------------------- 1 | name: pylops 2 | channels: 3 | - defaults 4 | - conda-forge 5 | - numba 6 | dependencies: 7 | - python>=3.6.4 8 | - numpy>=1.15.0 9 | - scipy>=1.4.0 10 | - pyfftw 11 | - pywavelets 12 | - matplotlib 13 | - ipython 14 | - pytest 15 | - Sphinx 16 | - numpydoc 17 | - numba 18 | - icc_rt 19 | - pip: 20 | - scikit-fmm 21 | - spgl1 22 | - pytest-runner 23 | - setuptools_scm 24 | - sphinx-rtd-theme 25 | - sphinx-gallery 26 | - nbsphinx 27 | - image -------------------------------------------------------------------------------- /test/test_files/pylops/environment.yml: -------------------------------------------------------------------------------- 1 | name: pylops 2 | channels: 3 | - defaults 4 | dependencies: 5 | - python>=3.6.4 6 | - numpy>=1.15.0 7 | - scipy>=1.4.0 -------------------------------------------------------------------------------- /test/test_files/pylops/examples/README.txt: -------------------------------------------------------------------------------- 1 | .. _general_examples: 2 | 3 | PyLops gallery 4 | -------------- 5 | 6 | Below is a gallery of examples -------------------------------------------------------------------------------- /test/test_files/pylops/examples/plot_conj.py: -------------------------------------------------------------------------------- 1 | """ 2 | Conj 3 | ==== 4 | 5 | This example shows how to use the :py:class:`pylops.basicoperators.Conj` 6 | operator. 7 | This operator returns the complex conjugate in both forward and adjoint 8 | modes (it is self adjoint). 9 | """ 10 | import numpy as np 11 | import matplotlib.pyplot as plt 12 | import matplotlib.gridspec as pltgs 13 | 14 | import pylops 15 | 16 | plt.close('all') 17 | 18 | ############################################################################### 19 | # Let's define a Conj operator to get the complex conjugate 20 | # of the input. 21 | 22 | M = 5 23 | x = np.arange(M) + 1j * np.arange(M)[::-1] 24 | Rop = pylops.basicoperators.Conj(M, dtype='complex128') 25 | 26 | y = Rop*x 27 | xadj = Rop.H*y 28 | 29 | _, axs = plt.subplots(1, 3, figsize=(10, 4)) 30 | axs[0].plot(np.real(x), lw=2, label='Real') 31 | axs[0].plot(np.imag(x), lw=2, label='Imag') 32 | axs[0].legend() 33 | axs[0].set_title('Input') 34 | axs[1].plot(np.real(y), lw=2, label='Real') 35 | axs[1].plot(np.imag(y), lw=2, label='Imag') 36 | axs[1].legend() 37 | axs[1].set_title('Forward of Input') 38 | axs[2].plot(np.real(xadj), lw=2, label='Real') 39 | axs[2].plot(np.imag(xadj), lw=2, label='Imag') 40 | axs[2].legend() 41 | axs[2].set_title('Adjoint of Forward') 42 | -------------------------------------------------------------------------------- /test/test_files/pylops/examples/plot_imag.py: -------------------------------------------------------------------------------- 1 | """ 2 | Imag 3 | ==== 4 | 5 | This example shows how to use the :py:class:`pylops.basicoperators.Imag` 6 | operator. 7 | This operator returns the imaginary part of the data as a real value in 8 | forward mode, and the real part of the model as an imaginary value in 9 | adjoint mode (with zero real part). 10 | """ 11 | import numpy as np 12 | import matplotlib.pyplot as plt 13 | import matplotlib.gridspec as pltgs 14 | 15 | import pylops 16 | 17 | plt.close('all') 18 | 19 | ############################################################################### 20 | # Let's define a Imag operator :math:`\mathbf{\Im}` to extract the imaginary 21 | # component of the input. 22 | 23 | M = 5 24 | x = np.arange(M) + 1j * np.arange(M)[::-1] 25 | Rop = pylops.basicoperators.Imag(M, dtype='complex128') 26 | 27 | y = Rop*x 28 | xadj = Rop.H*y 29 | 30 | _, axs = plt.subplots(1, 3, figsize=(10, 4)) 31 | axs[0].plot(np.real(x), lw=2, label='Real') 32 | axs[0].plot(np.imag(x), lw=2, label='Imag') 33 | axs[0].legend() 34 | axs[0].set_title('Input') 35 | axs[1].plot(np.real(y), lw=2, label='Real') 36 | axs[1].plot(np.imag(y), lw=2, label='Imag') 37 | axs[1].legend() 38 | axs[1].set_title('Forward of Input') 39 | axs[2].plot(np.real(xadj), lw=2, label='Real') 40 | axs[2].plot(np.imag(xadj), lw=2, label='Imag') 41 | axs[2].legend() 42 | axs[2].set_title('Adjoint of Forward') 43 | -------------------------------------------------------------------------------- /test/test_files/pylops/examples/plot_real.py: -------------------------------------------------------------------------------- 1 | """ 2 | Real 3 | ==== 4 | 5 | This example shows how to use the :py:class:`pylops.basicoperators.Real` 6 | operator. 7 | This operator returns the real part of the data in forward and adjoint mode, 8 | but the forward output will be a real number, while the adjoint output will 9 | be a complex number with a zero-valued imaginary part. 10 | """ 11 | import numpy as np 12 | import matplotlib.pyplot as plt 13 | import matplotlib.gridspec as pltgs 14 | 15 | import pylops 16 | 17 | plt.close('all') 18 | 19 | ############################################################################### 20 | # Let's define a Real operator :math:`\mathbf{\Re}` to extract the real 21 | # component of the input. 22 | 23 | M = 5 24 | x = np.arange(M) + 1j * np.arange(M)[::-1] 25 | Rop = pylops.basicoperators.Real(M, dtype='complex128') 26 | 27 | y = Rop*x 28 | xadj = Rop.H*y 29 | 30 | _, axs = plt.subplots(1, 3, figsize=(10, 4)) 31 | axs[0].plot(np.real(x), lw=2, label='Real') 32 | axs[0].plot(np.imag(x), lw=2, label='Imag') 33 | axs[0].legend() 34 | axs[0].set_title('Input') 35 | axs[1].plot(np.real(y), lw=2, label='Real') 36 | axs[1].plot(np.imag(y), lw=2, label='Imag') 37 | axs[1].legend() 38 | axs[1].set_title('Forward of Input') 39 | axs[2].plot(np.real(xadj), lw=2, label='Real') 40 | axs[2].plot(np.imag(xadj), lw=2, label='Imag') 41 | axs[2].legend() 42 | axs[2].set_title('Adjoint of Forward') 43 | -------------------------------------------------------------------------------- /test/test_files/pylops/pylops/avo/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/pylops/pylops/avo/__init__.py -------------------------------------------------------------------------------- /test/test_files/pylops/pylops/basicoperators/__init__.py: -------------------------------------------------------------------------------- 1 | from .FunctionOperator import FunctionOperator 2 | from .MemoizeOperator import MemoizeOperator 3 | from .Regression import Regression 4 | from .LinearRegression import LinearRegression 5 | from .MatrixMult import MatrixMult 6 | from .Diagonal import Diagonal 7 | from .Zero import Zero 8 | from .Identity import Identity 9 | from .Restriction import Restriction 10 | from .Flip import Flip 11 | from .Symmetrize import Symmetrize 12 | from .Spread import Spread 13 | from .Transpose import Transpose 14 | from .Roll import Roll 15 | from .Pad import Pad 16 | from .Sum import Sum 17 | from .Real import Real 18 | from .Imag import Imag 19 | from .Conj import Conj 20 | 21 | from .VStack import VStack 22 | from .HStack import HStack 23 | from .Block import Block 24 | from .BlockDiag import BlockDiag 25 | from .Kronecker import Kronecker 26 | 27 | from .Smoothing1D import Smoothing1D 28 | from .Smoothing2D import Smoothing2D 29 | 30 | from .CausalIntegration import CausalIntegration 31 | from .FirstDerivative import FirstDerivative 32 | from .SecondDerivative import SecondDerivative 33 | from .Laplacian import Laplacian 34 | from .Gradient import Gradient 35 | from .DirectionalDerivative import FirstDirectionalDerivative 36 | from .DirectionalDerivative import SecondDirectionalDerivative 37 | -------------------------------------------------------------------------------- /test/test_files/pylops/pylops/optimization/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/pylops/pylops/optimization/__init__.py -------------------------------------------------------------------------------- /test/test_files/pylops/pylops/signalprocessing/__init__.py: -------------------------------------------------------------------------------- 1 | from .FFT import FFT 2 | from .FFT2D import FFT2D 3 | from .FFTND import FFTND 4 | from .Convolve1D import Convolve1D 5 | from .ConvolveND import ConvolveND 6 | from .Convolve2D import Convolve2D 7 | from .Interp import Interp 8 | from .Bilinear import Bilinear 9 | from .Radon2D import Radon2D 10 | from .Radon3D import Radon3D 11 | from .Sliding1D import Sliding1D 12 | from .Sliding2D import Sliding2D 13 | from .Sliding3D import Sliding3D 14 | from .Patch2D import Patch2D 15 | from .Fredholm1 import Fredholm1 16 | from .DWT import DWT 17 | from .DWT2D import DWT2D 18 | from .Seislet import Seislet 19 | from .ChirpRadon2D import ChirpRadon2D 20 | from .ChirpRadon3D import ChirpRadon3D -------------------------------------------------------------------------------- /test/test_files/pylops/pylops/utils/__init__.py: -------------------------------------------------------------------------------- 1 | from .utils import Report 2 | from .dottest import dottest 3 | from .deps import * 4 | from .backend import * 5 | from .multiproc import * -------------------------------------------------------------------------------- /test/test_files/pylops/pylops/utils/deps.py: -------------------------------------------------------------------------------- 1 | import os 2 | from importlib import util 3 | 4 | numba_enabled = util.find_spec("numba") is not None 5 | cupy_enabled = util.find_spec("cupy") is not None and \ 6 | int(os.getenv('CUPY_PYLOPS', 1)) == 1 7 | cusignal_enabled = util.find_spec("cusignal") is not None and \ 8 | int(os.getenv('CUSIGNAL_PYLOPS', 1)) == 1 -------------------------------------------------------------------------------- /test/test_files/pylops/pylops/waveeqprocessing/__init__.py: -------------------------------------------------------------------------------- 1 | from .mdd import MDC 2 | from .mdd import MDD 3 | from .marchenko import Marchenko 4 | from .seismicinterpolation import SeismicInterpolation 5 | from .wavedecomposition import PressureToVelocity, UpDownComposition2D, \ 6 | UpDownComposition3D, WavefieldDecomposition 7 | from .oneway import PhaseShift, Deghosting 8 | from .lsm import Demigration, LSM 9 | -------------------------------------------------------------------------------- /test/test_files/pylops/pytests/test_eigs.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | 3 | import numpy as np 4 | 5 | from pylops.basicoperators import MatrixMult 6 | from pylops.optimization.eigs import power_iteration 7 | 8 | par1 = {'n': 21, 'imag': 0, 'dtype': 'float32'} # square, real 9 | par2 = {'n': 21, 'imag': 1j, 'dtype': 'complex64'} # square, complex 10 | 11 | 12 | @pytest.mark.parametrize("par", [(par1), (par2)]) 13 | def test_power_iteration(par): 14 | """Max eigenvalue computation with power iteration method vs. scipy methods 15 | """ 16 | np.random.seed(10) 17 | 18 | A = np.random.randn(par['n'], par['n']) + \ 19 | par['imag'] * np.random.randn(par['n'], par['n']) 20 | A1 = np.conj(A.T) @ A 21 | 22 | # non-symmetric 23 | Aop = MatrixMult(A) 24 | eig = power_iteration(Aop, niter=200, tol=0)[0] 25 | eig_np = np.max(np.abs(np.linalg.eig(A)[0])) 26 | 27 | assert np.abs(np.abs(eig) - eig_np) < 1e-3 28 | 29 | # symmetric 30 | A1op = MatrixMult(A1) 31 | eig = power_iteration(A1op, niter=200, tol=0)[0] 32 | eig_np = np.max(np.abs(np.linalg.eig(A1)[0])) 33 | 34 | assert np.abs(np.abs(eig) - eig_np) < 1e-3 35 | -------------------------------------------------------------------------------- /test/test_files/pylops/pytests/test_utils.py: -------------------------------------------------------------------------------- 1 | from pylops import utils 2 | 3 | # Optional import 4 | try: 5 | import scooby 6 | except ImportError: 7 | scooby = False 8 | 9 | 10 | def test_report(capsys): 11 | out, _ = capsys.readouterr() # Empty capsys 12 | 13 | # Reporting is done by the external package scooby. 14 | # We just ensure the shown packages do not change (core and optional). 15 | if scooby: 16 | out1 = utils.Report() 17 | out2 = scooby.Report(core=['numpy', 'scipy', 'pylops'], 18 | optional=['IPython', 'matplotlib', 'numba']) 19 | 20 | # Ensure they're the same; exclude time to avoid errors. 21 | assert out1.__repr__()[115:] == out2.__repr__()[115:] 22 | 23 | else: # soft dependency 24 | _ = utils.Report() 25 | out, _ = capsys.readouterr() # Empty capsys 26 | assert 'NOTE: `pylops.Report` requires `scooby`. Install it via' in out 27 | -------------------------------------------------------------------------------- /test/test_files/pylops/pytests/test_wavelets.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | import numpy as np 3 | 4 | from pylops.utils.wavelets import ricker, gaussian 5 | 6 | par1 = {'nt': 21, 'dt':0.004} # odd samples 7 | par2 = {'nt': 20, 'dt':0.004} # even samples 8 | 9 | 10 | @pytest.mark.parametrize("par", [(par1), (par2)]) 11 | def test_ricker(par): 12 | """Create ricker wavelet and check size and central value 13 | """ 14 | t = np.arange(par['nt'])*par['dt'] 15 | wav, twav, wcenter = ricker(t, f0=20) 16 | 17 | assert twav.size == (par['nt'] - 1 if par['nt'] % 2 == 0 18 | else par['nt']) * 2 - 1 19 | assert wav.shape[0] == (par['nt']-1 if par['nt'] % 2 == 0 20 | else par['nt'])*2-1 21 | assert wav[wcenter] == 1 22 | 23 | 24 | @pytest.mark.parametrize("par", [(par1), (par2)]) 25 | def test_gaussian(par): 26 | """Create gaussian wavelet and check size and central value 27 | """ 28 | t = np.arange(par['nt'])*par['dt'] 29 | wav, twav, wcenter = gaussian(t, std=10) 30 | 31 | assert twav.size == (par['nt'] - 1 if par['nt'] % 2 == 0 32 | else par['nt']) * 2 - 1 33 | assert wav.shape[0] == (par['nt']-1 if par['nt'] % 2 == 0 34 | else par['nt'])*2-1 35 | assert wav[wcenter] == 1 36 | -------------------------------------------------------------------------------- /test/test_files/pylops/readthedocs.yml: -------------------------------------------------------------------------------- 1 | # .readthedocs.yml 2 | 3 | python: 4 | version: 3.6 5 | setup_py_install: true 6 | 7 | requirements_file: requirements-dev.txt -------------------------------------------------------------------------------- /test/test_files/pylops/requirements-dev.txt: -------------------------------------------------------------------------------- 1 | numpy>=1.15.0 2 | scipy>=1.4.0 3 | numba 4 | pyfftw 5 | PyWavelets 6 | spgl1 7 | scikit-fmm 8 | matplotlib 9 | ipython 10 | pytest 11 | pytest-runner 12 | setuptools_scm 13 | Sphinx 14 | sphinx-rtd-theme 15 | sphinx-gallery 16 | numpydoc 17 | nbsphinx 18 | image -------------------------------------------------------------------------------- /test/test_files/pylops/requirements.txt: -------------------------------------------------------------------------------- 1 | . 2 | -------------------------------------------------------------------------------- /test/test_files/pylops/setup.cfg: -------------------------------------------------------------------------------- 1 | [aliases] 2 | test=pytest 3 | 4 | [tool:pytest] 5 | addopts = --verbose 6 | python_files = pytests/*.py -------------------------------------------------------------------------------- /test/test_files/pylops/testdata/optimization/shepp_logan_phantom.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/pylops/testdata/optimization/shepp_logan_phantom.npy -------------------------------------------------------------------------------- /test/test_files/pylops/testdata/python.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/pylops/testdata/python.png -------------------------------------------------------------------------------- /test/test_files/pylops/testdata/sigmoid.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/pylops/testdata/sigmoid.npz -------------------------------------------------------------------------------- /test/test_files/pylops/tutorials/README.txt: -------------------------------------------------------------------------------- 1 | .. _tutorials: 2 | 3 | Tutorials 4 | --------- -------------------------------------------------------------------------------- /test/test_files/somef/Dockerfile: -------------------------------------------------------------------------------- 1 | from python:3.6 2 | 3 | RUN git clone https://github.com/KnowledgeCaptureAndDiscovery/somef 4 | 5 | RUN cd somef && pip install . 6 | 7 | RUN somef configure -a 8 | -------------------------------------------------------------------------------- /test/test_files/somef/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 The Python Packaging Authority 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. -------------------------------------------------------------------------------- /test/test_files/somef/docs/paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/somef/docs/paper.pdf -------------------------------------------------------------------------------- /test/test_files/somef/docs/requirements.txt: -------------------------------------------------------------------------------- 1 | mkdocs-material -------------------------------------------------------------------------------- /test/test_files/somef/mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: SOMEF documentation 2 | nav: 3 | - Home: index.md 4 | - Install: install.md 5 | - Usage: usage.md 6 | - Output: output.md 7 | theme: 8 | name: material 9 | 10 | markdown_extensions: 11 | - admonition 12 | - codehilite: 13 | guess_lang: false 14 | - toc: 15 | permalink: true 16 | -------------------------------------------------------------------------------- /test/test_files/somef/src/somef.egg-info/SOURCES.txt: -------------------------------------------------------------------------------- 1 | README.md 2 | setup.py 3 | src/somef/LICENSE 4 | src/somef/__init__.py 5 | src/somef/__main__.py 6 | src/somef/cli.py 7 | src/somef/configuration.py 8 | src/somef/createExcerpts.py 9 | src/somef/data_to_graph.py 10 | src/somef/header_analysis.py 11 | src/somef.egg-info/PKG-INFO 12 | src/somef.egg-info/SOURCES.txt 13 | src/somef.egg-info/dependency_links.txt 14 | src/somef.egg-info/entry_points.txt 15 | src/somef.egg-info/not-zip-safe 16 | src/somef.egg-info/requires.txt 17 | src/somef.egg-info/top_level.txt 18 | src/somef/models/citation.sk 19 | src/somef/models/description.sk 20 | src/somef/models/installation.sk 21 | src/somef/models/invocation.sk 22 | src/somef/schema/__init__.py 23 | src/somef/schema/software_schema.py 24 | src/somef/test/__init__.py 25 | src/somef/test/test_cli.py 26 | src/somef/test/test_data_to_graph.py 27 | src/somef/test/test_get_data.py 28 | src/somef/test/test_header_analysis.py 29 | src/somef/test/test_utils.py 30 | src/somef/test/utils_for_tests.py 31 | src/somef/test/widoco_readme.md 32 | src/somef/test/widoco_readme_reference.json 33 | src/somef/test/widoco_reference.json -------------------------------------------------------------------------------- /test/test_files/somef/src/somef.egg-info/dependency_links.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /test/test_files/somef/src/somef.egg-info/entry_points.txt: -------------------------------------------------------------------------------- 1 | [console_scripts] 2 | somef = somef.__main__:trycli 3 | 4 | -------------------------------------------------------------------------------- /test/test_files/somef/src/somef.egg-info/not-zip-safe: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /test/test_files/somef/src/somef.egg-info/requires.txt: -------------------------------------------------------------------------------- 1 | Click 2 | bs4 3 | click-option-group 4 | markdown 5 | matplotlib 6 | nltk 7 | numpy 8 | pandas 9 | rdflib 10 | rdflib-jsonld 11 | requests 12 | requests 13 | scikit-learn==0.21.2 14 | textblob 15 | -------------------------------------------------------------------------------- /test/test_files/somef/src/somef.egg-info/top_level.txt: -------------------------------------------------------------------------------- 1 | somef 2 | -------------------------------------------------------------------------------- /test/test_files/somef/src/somef/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 The Python Packaging Authority 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. -------------------------------------------------------------------------------- /test/test_files/somef/src/somef/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | __version__ = "0.5.0" 4 | -------------------------------------------------------------------------------- /test/test_files/somef/src/somef/createExcerpts.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import json 3 | import base64 4 | from urllib.parse import urlparse 5 | import sys 6 | import os 7 | from os import path 8 | import requests 9 | from markdown import Markdown 10 | from bs4 import BeautifulSoup 11 | from io import StringIO 12 | import pickle 13 | import pprint 14 | import pandas as pd 15 | import numpy as np 16 | import re 17 | 18 | ## Markdown to plain text conversion: begin ## 19 | # code snippet from https://stackoverflow.com/a/54923798 20 | def unmark_element(element, stream=None): 21 | if stream is None: 22 | stream = StringIO() 23 | if element.text: 24 | stream.write(element.text) 25 | for sub in element: 26 | unmark_element(sub, stream) 27 | if element.tail: 28 | stream.write(element.tail) 29 | return stream.getvalue() 30 | 31 | # patching Markdown 32 | Markdown.output_formats["plain"] = unmark_element 33 | __md = Markdown(output_format="plain") 34 | __md.stripTopLevelTags = False 35 | 36 | def unmark(text): 37 | return __md.convert(text) 38 | ## Markdown to plain text conversion: end ## 39 | 40 | ## Function takes readme text as input and divides it into excerpts 41 | ## Returns the extracted excerpts 42 | def split_into_excerpts(string_list): 43 | divisions = [] 44 | for text in string_list: 45 | if text: 46 | divisions = divisions + unmark(text).splitlines() 47 | divisions = [i for i in divisions if i] 48 | return divisions -------------------------------------------------------------------------------- /test/test_files/somef/src/somef/evaluation/create_header_corpus.py: -------------------------------------------------------------------------------- 1 | ## This script extracts headers which will be used in the evaluation. 2 | ## This script does not annotate anything. The annotation has to be performed by hand. 3 | input_dir = "../../../experiments/training_corpus/repos" 4 | output ="../../../experiments/header_analysis/header_evaluation/header_evaluation_new.csv" 5 | 6 | import os 7 | import pandas as pd 8 | from somef.header_analysis import extract_header_content 9 | 10 | df_all = pd.DataFrame ({}, columns = ['Repo','Header','Content']) 11 | print(df_all) 12 | for filename in os.listdir(input_dir): 13 | print("Analyzing " + filename) 14 | with open(os.path.join(input_dir, filename), "r") as data_file: 15 | file_text = data_file.read() 16 | df_result = extract_header_content(file_text) 17 | df_result.insert(0,"Repo",filename) 18 | df_all = df_all.append(df_result) 19 | #print(df_result) 20 | df_all.to_csv(output) 21 | -------------------------------------------------------------------------------- /test/test_files/somef/src/somef/models/citation.sk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/somef/src/somef/models/citation.sk -------------------------------------------------------------------------------- /test/test_files/somef/src/somef/models/description.sk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/somef/src/somef/models/description.sk -------------------------------------------------------------------------------- /test/test_files/somef/src/somef/models/installation.sk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/somef/src/somef/models/installation.sk -------------------------------------------------------------------------------- /test/test_files/somef/src/somef/models/invocation.sk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/somef/src/somef/models/invocation.sk -------------------------------------------------------------------------------- /test/test_files/somef/src/somef/schema/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /test/test_files/somef/src/somef/test/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /test/test_files/somef/src/somef/test/utils_for_tests.py: -------------------------------------------------------------------------------- 1 | def almost_equal(obj1, obj2, exclude_paths=[]): 2 | def almost_equal_helper(x, y, path): 3 | 4 | if isinstance(x, dict): 5 | if not isinstance(y, dict): 6 | print(f"At path {path}, obj1 was of type dict while obj2 was not") 7 | return False 8 | 9 | if not set(x.keys()) == set(y.keys()): 10 | print(f"At path {path}, obj1 has keys\n{x.keys()}\n while obj2 has keys\n{y.keys()}") 11 | return False 12 | 13 | for key in x.keys(): 14 | current_path = path + [key] 15 | if current_path not in exclude_paths: 16 | if not almost_equal_helper(x[key], y[key], current_path): 17 | return False 18 | 19 | elif isinstance(x, list) or isinstance(x, tuple): 20 | if not( (isinstance(y, list) or isinstance(y, tuple)) and len(x) == len(y)): 21 | print(f"At path {path}, obj1 is an array and obj2 is either not an array or has different length") 22 | return False 23 | 24 | for i in range(len(x)): 25 | if not almost_equal_helper(x[i], y[i], path): 26 | return False 27 | 28 | else: 29 | if not x == y: 30 | print(f"{x} != {y} at path {path}") 31 | return False 32 | 33 | return True 34 | 35 | return almost_equal_helper(obj1, obj2, []) 36 | -------------------------------------------------------------------------------- /test/test_files/test_basic/test_basic_body.py: -------------------------------------------------------------------------------- 1 | print("Hello world") 2 | var = 1 3 | print(var) 4 | -------------------------------------------------------------------------------- /test/test_files/test_basic/test_basic_function.py: -------------------------------------------------------------------------------- 1 | def foo(arg1, arg2): 2 | print("Hello %s", arg1) 3 | return arg2 4 | 5 | -------------------------------------------------------------------------------- /test/test_files/test_basic/test_basic_function_return.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | variable_a=1 4 | 5 | def foo(arg1, arg2): 6 | print("Hello %s", arg1) 7 | return arg2 8 | 9 | def foo2(arg1, arg2): 10 | print("Hello %s", arg1) 11 | return {'name': arg1} 12 | 13 | def foo3(arg1, arg2): 14 | print("Hello %s", arg1) 15 | return str(arg2) 16 | 17 | def foo4(arg1, arg2): 18 | a=[1,2,3] 19 | return a 20 | 21 | def foo5(arg1, arg2): 22 | a={} 23 | a['name']= arg1 24 | return a 25 | 26 | def foo6(arg1, arg2): 27 | return [0,2,3] 28 | 29 | def foo7(arg1, arg2): 30 | a=3 31 | b=4 32 | return a,b 33 | 34 | def foo8(arg1, arg2): 35 | a=3 36 | return a,5 37 | 38 | def foo9(arg1, arg2): 39 | a=3 40 | return a,[0,1,2] 41 | 42 | def foo10(arg1, arg2): 43 | return 5 44 | 45 | 46 | def foo11(arg1, arg2): 47 | #last test 48 | a=3 49 | b=[0,1,2] 50 | return a,b 51 | -------------------------------------------------------------------------------- /test/test_files/test_basic/test_basic_method.py: -------------------------------------------------------------------------------- 1 | class Foo: 2 | def __init__(self, arg): 3 | self.arg = arg 4 | print("Hello %s" % self.arg) 5 | -------------------------------------------------------------------------------- /test/test_files/test_data_flow.py: -------------------------------------------------------------------------------- 1 | def max(a, b): 2 | x = 0 3 | if a > b: 4 | x = a 5 | else: 6 | x = b 7 | return x 8 | 9 | -------------------------------------------------------------------------------- /test/test_files/test_docstring_parser/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/test_docstring_parser/__init__.py -------------------------------------------------------------------------------- /test/test_files/test_docstring_parser/google_docstring_test.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from docstring_parser import parse 4 | docstring = parse( 5 | """Return random numbers between a and b. 6 | 7 | Args: 8 | a (float): Lower bound 9 | b (float): Upper bound 10 | size (int): size 11 | 12 | Returns: 13 | list : list of float 14 | 15 | """) 16 | 17 | print(docstring.params[0].arg_name) 18 | print(docstring.params[0].type_name) 19 | 20 | 21 | -------------------------------------------------------------------------------- /test/test_files/test_docstring_parser/numpy_docstring_test.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from docstring_parser import parse 4 | docstring = parse( 5 | """Return random numbers between a and b. 6 | 7 | Parameters 8 | ---------- 9 | a : float 10 | Lower bound. 11 | b : float 12 | Upper bound. 13 | size : int, optional 14 | Number of numbers to return. Defaults to 1. 15 | 16 | Returns 17 | ------- 18 | ns : list of float 19 | """) 20 | 21 | print(docstring.params[0].arg_name) 22 | print(docstring.params[0].type_name) 23 | 24 | 25 | -------------------------------------------------------------------------------- /test/test_files/test_docstring_parser/sphinx_docstring_test.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from docstring_parser import parse 4 | docstring = parse( 5 | """Return random numbers between a and b. 6 | 7 | :param float a : Lower bound 8 | :param float b : Upper bound 9 | :param int size: size 10 | :raises ValueError: exc desc 11 | :return list : list of float 12 | 13 | """) 14 | 15 | print(docstring.params[0].arg_name) 16 | print(docstring.params[0].type_name) 17 | print(docstring.returns.type_name) 18 | print(docstring.returns.description) 19 | print(docstring.raises[0].type_name) 20 | print(docstring.raises[0].description) 21 | -------------------------------------------------------------------------------- /test/test_files/test_docstring_parser/sphinx_docstring_test_v2.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from docstring_parser import parse 4 | docstring = parse( 5 | """Return random numbers between a and b. 6 | 7 | :param a : Lower bound 8 | :type a: float 9 | :param b : Upper bound 10 | :type b: float 11 | :param size: size 12 | :type size: int 13 | :raises ValueError: exc desc 14 | :return: list of float 15 | :rtype: list 16 | 17 | """) 18 | 19 | print(docstring.params[0].arg_name) 20 | print(docstring.params[0].type_name) 21 | print(docstring.returns.type_name) 22 | print(docstring.returns.description) 23 | print(docstring.raises[0].type_name) 24 | print(docstring.raises[0].description) 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/test_files/test_dynamic/argument_call.py: -------------------------------------------------------------------------------- 1 | class MyClass: 2 | def func_b(self): 3 | return 3 4 | 5 | def func_a(self): 6 | print(func_b()) 7 | 8 | 9 | 10 | def func_1(): 11 | print(func_2()) 12 | return 1 13 | 14 | def func_2(): 15 | return 2 16 | 17 | print(func_1()) 18 | MyClass().func_a() 19 | -------------------------------------------------------------------------------- /test/test_files/test_dynamic/test_dynamic.py: -------------------------------------------------------------------------------- 1 | def func_1(): 2 | return "1" 3 | 4 | def func_2(func): 5 | return func() 6 | 7 | 8 | a=func_2(func_1) 9 | print(a) 10 | -------------------------------------------------------------------------------- /test/test_files/test_dynamic/test_dynamic_class_import.py: -------------------------------------------------------------------------------- 1 | import test_dynamic_func 2 | 3 | class MyClass: 4 | def func_3(self, func): 5 | return func() 6 | 7 | a=MyClass() 8 | a.func_3(test_dynamic_func.func_1) 9 | -------------------------------------------------------------------------------- /test/test_files/test_dynamic/test_dynamic_from_import.py: -------------------------------------------------------------------------------- 1 | from test_dynamic_func import func_1 2 | 3 | def func_3(func): 4 | return func() 5 | 6 | 7 | a=func_3(func_1) 8 | print(a) 9 | -------------------------------------------------------------------------------- /test/test_files/test_dynamic/test_dynamic_from_import_alias.py: -------------------------------------------------------------------------------- 1 | from test_dynamic_func import func_1 as rosa 2 | 3 | def func_3(func): 4 | return func() 5 | 6 | 7 | a=func_3(rosa) 8 | print(a) 9 | -------------------------------------------------------------------------------- /test/test_files/test_dynamic/test_dynamic_from_import_start.py: -------------------------------------------------------------------------------- 1 | from test_dynamic_func import * 2 | 3 | def func_3(func): 4 | return func() 5 | 6 | 7 | a=func_3(func_1) 8 | print(a) 9 | -------------------------------------------------------------------------------- /test/test_files/test_dynamic/test_dynamic_func.py: -------------------------------------------------------------------------------- 1 | def func_1(): 2 | return "1" 3 | 4 | def func_2(func): 5 | return func() 6 | 7 | 8 | def main(): 9 | a=func_2(func_1) 10 | print(a) 11 | 12 | if __name__ == '__main__': 13 | main() 14 | -------------------------------------------------------------------------------- /test/test_files/test_dynamic/test_dynamic_func_from_import_start.py: -------------------------------------------------------------------------------- 1 | from test_dynamic_func import * 2 | 3 | def func_3(func): 4 | return func() 5 | 6 | def main(): 7 | a=func_3(func_1) 8 | print(a) 9 | 10 | if __name__ == '__main__': 11 | main() 12 | -------------------------------------------------------------------------------- /test/test_files/test_dynamic/test_dynamic_import.py: -------------------------------------------------------------------------------- 1 | import test_dynamic_func 2 | 3 | def func_3(func): 4 | return func() 5 | 6 | 7 | a=func_3(test_dynamic_func.func_1) 8 | print(a) 9 | -------------------------------------------------------------------------------- /test/test_files/test_dynamic/test_dynamic_import_alias.py: -------------------------------------------------------------------------------- 1 | import test_dynamic_func as td 2 | 3 | def func_3(func): 4 | return func() 5 | 6 | 7 | a=func_3(td.func_1) 8 | print(a) 9 | -------------------------------------------------------------------------------- /test/test_files/test_dynamic/test_dynamic_method.py: -------------------------------------------------------------------------------- 1 | class MyClass: 2 | def func_1(self): 3 | return "1" 4 | 5 | def func_2(func): 6 | return func() 7 | 8 | 9 | def main(): 10 | a=func_2(MyClass().func_1) 11 | print(a) 12 | 13 | if __name__ == '__main__': 14 | main() 15 | -------------------------------------------------------------------------------- /test/test_files/test_dynamic/test_dynamic_method_variable.py: -------------------------------------------------------------------------------- 1 | class MyClass: 2 | def func_1(self): 3 | return "1" 4 | 5 | def func_2(func): 6 | return func() 7 | 8 | 9 | def main(): 10 | myclass=MyClass() 11 | a=func_2(myclass.func_1) 12 | print(a) 13 | 14 | if __name__ == '__main__': 15 | main() 16 | -------------------------------------------------------------------------------- /test/test_files/test_dynamic/test_dynamic_method_variable_body.py: -------------------------------------------------------------------------------- 1 | class MyClass: 2 | def func_1(self): 3 | return "1" 4 | 5 | def func_2(func): 6 | return func() 7 | 8 | 9 | myclass=MyClass() 10 | a=func_2(myclass.func_1) 11 | print(a) 12 | 13 | -------------------------------------------------------------------------------- /test/test_files/test_dynamic/test_pycg_paper.py: -------------------------------------------------------------------------------- 1 | import cryptops 2 | 3 | class Crypto: 4 | def __init__(self, key): 5 | self.key = key 6 | 7 | def apply(self, msg, func): 8 | return func(self.key, msg) 9 | 10 | def test(): 11 | crp = Crypto("secretkey") 12 | encrypted = crp.apply("hello world",cryptops.encrypt) 13 | decrypted = crp.apply(encrypted, cryptops.decrypt) 14 | -------------------------------------------------------------------------------- /test/test_files/test_inheritance/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/test_inheritance/__init__.py -------------------------------------------------------------------------------- /test/test_files/test_inheritance/nested_call.py: -------------------------------------------------------------------------------- 1 | class MyClass: 2 | def func(self): 3 | def nested(): 4 | print("nested") 5 | 6 | nested() 7 | 8 | def test(): 9 | a = MyClass() 10 | a.func() 11 | 12 | test() 13 | -------------------------------------------------------------------------------- /test/test_files/test_inheritance/super_nested_call.py: -------------------------------------------------------------------------------- 1 | class MyClass: 2 | def func_a(self): 3 | print("nested func a") 4 | def func_b(): 5 | print("nested func b") 6 | def func_c(): 7 | print("nested func c") 8 | func_c() 9 | 10 | func_b() 11 | 12 | 13 | def func_d(): 14 | def func_e(): 15 | print("nested func e") 16 | func_e() 17 | 18 | def main(): 19 | a = MyClass() 20 | a.func_a() 21 | func_d() 22 | 23 | 24 | if __name__ == "__main__": 25 | main() 26 | 27 | -------------------------------------------------------------------------------- /test/test_files/test_inheritance/super_test.py: -------------------------------------------------------------------------------- 1 | class Rectangle: 2 | def __init__(self, length, width): 3 | self.length = length 4 | self.width = width 5 | 6 | def area(self): 7 | return self.length * self.width 8 | 9 | def perimeter(self): 10 | return 2 * self.length + 2 * self.width 11 | 12 | # Here we declare that the Square class inherits from the Rectangle class 13 | class Square(Rectangle): 14 | def __init__(self, length): 15 | super().__init__(length, length) 16 | -------------------------------------------------------------------------------- /test/test_files/test_inheritance/super_test_2.py: -------------------------------------------------------------------------------- 1 | class Rectangle: 2 | def __init__(self, length, width): 3 | self.length = length 4 | self.width = width 5 | 6 | def area(self): 7 | return self.length * self.width 8 | 9 | def perimeter(self): 10 | return 2 * self.length + 2 * self.width 11 | 12 | # Here we declare that the Square class inherits from the Rectangle class 13 | class Square(Rectangle): 14 | def __init__(self, length): 15 | super().__init__(length, length) 16 | 17 | class Cube(Square): 18 | def surface_area(self): 19 | face_area = super().area() 20 | return face_area * 6 21 | 22 | def volume(self): 23 | face_area = super().area() 24 | return face_area * self.length 25 | -------------------------------------------------------------------------------- /test/test_files/test_inheritance/super_test_3.py: -------------------------------------------------------------------------------- 1 | class Rectangle: 2 | def __init__(self, length, width): 3 | self.length = length 4 | self.width = width 5 | 6 | def area(self): 7 | return self.length * self.width 8 | 9 | def perimeter(self): 10 | return 2 * self.length + 2 * self.width 11 | 12 | class Square(Rectangle): 13 | def __init__(self, length): 14 | super(Square, self).__init__(length, length) 15 | -------------------------------------------------------------------------------- /test/test_files/test_inheritance/super_test_4.py: -------------------------------------------------------------------------------- 1 | class Rectangle: 2 | def __init__(self, length, width): 3 | self.length = length 4 | self.width = width 5 | 6 | def area(self): 7 | return self.length * self.width 8 | 9 | def perimeter(self): 10 | return 2 * self.length + 2 * self.width 11 | 12 | # Here we declare that the Square class inherits from the Rectangle class 13 | class Square(Rectangle): 14 | def __init__(self, length): 15 | super().__init__(length, length) 16 | 17 | class Cube(Square): 18 | def surface_area(self): 19 | face_area = super().area() 20 | return face_area * 6 21 | 22 | def volume(self): 23 | face_area = super().area() 24 | return face_area * self.length 25 | class Triangle: 26 | def __init__(self, base, height): 27 | self.base = base 28 | self.height = height 29 | 30 | def area(self): 31 | return 0.5 * self.base * self.height 32 | 33 | class RightPyramid(Square, Triangle): 34 | def __init__(self, base, slant_height): 35 | self.base = base 36 | self.slant_height = slant_height 37 | 38 | def area(self): 39 | base_area = super().area() 40 | perimeter = super().perimeter() 41 | return 0.5 * perimeter * self.slant_height + base_area 42 | -------------------------------------------------------------------------------- /test/test_files/test_inheritance/super_test_5.py: -------------------------------------------------------------------------------- 1 | class Rectangle: 2 | def __init__(self, length, width): 3 | self.length = length 4 | self.width = width 5 | 6 | def area(self): 7 | return self.length * self.width 8 | 9 | class Square(Rectangle): 10 | def __init__(self, length): 11 | super().__init__(length, length) 12 | 13 | class VolumeMixin: 14 | def volume(self): 15 | return self.area() * self.height 16 | 17 | class Cube(VolumeMixin, Square): 18 | def __init__(self, length): 19 | super().__init__(length) 20 | self.height = length 21 | 22 | def face_area(self): 23 | return super().area() 24 | 25 | def surface_area(self): 26 | return super().area() * 6 27 | 28 | cube = Cube(2) 29 | cube.surface_area() 30 | cube.volume() 31 | 32 | -------------------------------------------------------------------------------- /test/test_files/test_inheritance/test_classes.py: -------------------------------------------------------------------------------- 1 | class MyClass_A: 2 | def __init__(self): 3 | print("Class A") 4 | 5 | class MyClass_B: 6 | def __init__(self): 7 | print("Class B") 8 | 9 | 10 | class MyClass_C: 11 | def __init__(self): 12 | print("Class C") 13 | 14 | 15 | a=MyClass_A() 16 | b=MyClass_B() 17 | -------------------------------------------------------------------------------- /test/test_files/test_inheritance/test_functions.py: -------------------------------------------------------------------------------- 1 | def funct_A(): 2 | print("Function A") 3 | 4 | def funct_B(): 5 | print("Function B") 6 | 7 | def funct_C(): 8 | print("Function C") 9 | 10 | 11 | funct_A() 12 | funct_B() 13 | -------------------------------------------------------------------------------- /test/test_files/test_inheritance/test_import.py: -------------------------------------------------------------------------------- 1 | from .test_classes import * 2 | from .test_functions import * 3 | 4 | class MyClass_D: 5 | def __init__(self): 6 | print("Class D") 7 | funct_C() 8 | funct_D() 9 | MyClass_E() 10 | 11 | class MyClass_E: 12 | def __init__(self): 13 | print("Class E") 14 | MyClass_B() 15 | 16 | def funct_D(): 17 | print("Function D") 18 | a=MyClass_A() 19 | MyClass_E() 20 | funct_A() 21 | 22 | MyClass_A() 23 | b1=MyClass_B() 24 | d= MyClass_D() 25 | funct_A() 26 | funct_D() 27 | MyClass_C() 28 | c=funct_D() 29 | -------------------------------------------------------------------------------- /test/test_files/test_inheritance/test_pycg_paper_2.py: -------------------------------------------------------------------------------- 1 | class A: 2 | def func(): 3 | pass 4 | 5 | class B: 6 | def func(): 7 | pass 8 | 9 | class C(B, A): 10 | pass 11 | 12 | c = C() 13 | c.func() 14 | -------------------------------------------------------------------------------- /test/test_files/test_inheritance/test_self_variable.py: -------------------------------------------------------------------------------- 1 | class MyClass: 2 | def func1(self): 3 | pass 4 | 5 | def func2(self): 6 | a = self 7 | a.func1() 8 | 9 | a = MyClass() 10 | a.func2() 11 | -------------------------------------------------------------------------------- /test/test_files/test_license_extraction/LICENSE: -------------------------------------------------------------------------------- 1 | A random license. -------------------------------------------------------------------------------- /test/test_files/test_multiple_mains/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/test_multiple_mains/__init__.py -------------------------------------------------------------------------------- /test/test_files/test_multiple_mains/bar.py: -------------------------------------------------------------------------------- 1 | #bar.py 2 | 3 | def test(): 4 | print("I am in bar.test") 5 | 6 | 7 | if __name__ == '__main__': 8 | test() 9 | -------------------------------------------------------------------------------- /test/test_files/test_multiple_mains/foo.py: -------------------------------------------------------------------------------- 1 | # foo.py 2 | import bar 3 | 4 | def test(): 5 | print("I am in foo.py - going to call bar.test") 6 | bar.test() 7 | -------------------------------------------------------------------------------- /test/test_files/test_multiple_mains/lalo.py: -------------------------------------------------------------------------------- 1 | #lalo.py 2 | 3 | def lalo(): 4 | print("I am in lalo.lalo") 5 | 6 | 7 | if __name__ == '__main__': 8 | lalo() 9 | -------------------------------------------------------------------------------- /test/test_files/test_multiple_mains/test.py: -------------------------------------------------------------------------------- 1 | # test.py 2 | import bar # use an absolute import 3 | import foo 4 | import lalo 5 | def test(): 6 | print("I am in test.py") 7 | bar.test() 8 | foo.test() 9 | lalo.lalo() 10 | def pp(): 11 | print("pp") 12 | pp() 13 | 14 | if __name__ == '__main__': 15 | test() 16 | -------------------------------------------------------------------------------- /test/test_files/test_multiple_mains_indirect/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/test_multiple_mains_indirect/__init__.py -------------------------------------------------------------------------------- /test/test_files/test_multiple_mains_indirect/bar.py: -------------------------------------------------------------------------------- 1 | #bar.py 2 | 3 | def test(): 4 | print("I am in bar.test") 5 | 6 | 7 | if __name__ == '__main__': 8 | test() 9 | -------------------------------------------------------------------------------- /test/test_files/test_multiple_mains_indirect/foo.py: -------------------------------------------------------------------------------- 1 | # foo.py 2 | import bar 3 | 4 | def test(): 5 | print("I am in foo.py - going to call bar.test") 6 | bar.test() 7 | -------------------------------------------------------------------------------- /test/test_files/test_multiple_mains_indirect/test.py: -------------------------------------------------------------------------------- 1 | # test.py 2 | import foo 3 | 4 | def test(): 5 | print("I am in test.py") 6 | foo.test() 7 | def pp(): 8 | print("pp") 9 | pp() 10 | 11 | if __name__ == '__main__': 12 | test() 13 | -------------------------------------------------------------------------------- /test/test_files/test_no_main/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SoftwareUnderstanding/inspect4py/585ceaace3a5889110150dec1144c4a1165ac025/test/test_files/test_no_main/__init__.py -------------------------------------------------------------------------------- /test/test_files/test_no_main/foo.py: -------------------------------------------------------------------------------- 1 | def hello(name): 2 | print("Hello %s" %name) 3 | 4 | hello("Rosa!") 5 | -------------------------------------------------------------------------------- /test/test_files/test_random.py: -------------------------------------------------------------------------------- 1 | # seed the pseudorandom number generator 2 | from random import seed 3 | from random import random 4 | # seed random number generator 5 | seed(1) 6 | # generate some random numbers 7 | print(random(), random(), random()) 8 | # reset the seed 9 | seed(1) 10 | # generate some random numbers 11 | print(random(), random(), random()) 12 | -------------------------------------------------------------------------------- /test/test_files/test_readme/README.md: -------------------------------------------------------------------------------- 1 | README.md in root dir 2 | -------------------------------------------------------------------------------- /test/test_files/test_readme/subdir/README.txt: -------------------------------------------------------------------------------- 1 | README.txt in subdir 2 | -------------------------------------------------------------------------------- /test/test_files/test_readme/subdir/subsubdir/README.rst: -------------------------------------------------------------------------------- 1 | README.rst in subsubdir 2 | -------------------------------------------------------------------------------- /test/test_utils.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | from inspect4py.utils import * 3 | 4 | 5 | class Test(unittest.TestCase): 6 | def test_extract_software_type(self): 7 | json_test = [ 8 | {"type": "service", "run": "python /GitHub/test_repos/Chowlk/app.py"}, 9 | {"type": "script with main", "run": "python /GitHub/test_repos/Chowlk/converter.py"} 10 | ] 11 | type_script = rank_software_invocation(json_test) 12 | assert (type_script[0]["type"] == "service") 13 | 14 | def test_extract_software_type_empty(self): 15 | json = [] 16 | type_script = rank_software_invocation(json) 17 | assert (type_script == []) 18 | 19 | 20 | if __name__ == '__main__': 21 | unittest.main() --------------------------------------------------------------------------------