From 3d6a890c42add40d7644a6f6c0f1f4be64cdecb1 Mon Sep 17 00:00:00 2001 From: Mike Iovine <mike.iovine7@gmail.com> Date: Tue, 7 Apr 2020 09:58:41 -0700 Subject: [PATCH] Add myunzip0 tests --- Makefile | 12 +- myunzip0.c => src/myunzip0/myunzip0.c | 2 - test_myunzip0 | Bin 0 -> 26056 bytes .../__pycache__/test_myunzip0.cpython-38.pyc | Bin 0 -> 1164 bytes tests/resources/compressed.zip | Bin 0 -> 14205 bytes tests/resources/compressed_expected.deflate | Bin 0 -> 13995 bytes tests/resources/compressed_expected.txt | 872 ++++++++++++++++++ tests/resources/uncompressed.zip | Bin 0 -> 256 bytes tests/resources/uncompressed_expected.txt | 2 + tests/test_myunzip0.py | 38 + tests/unit_tests/README.md | 1 + tests/{ => unit_tests}/inflate_test.cpp | 0 12 files changed, 917 insertions(+), 10 deletions(-) rename myunzip0.c => src/myunzip0/myunzip0.c (94%) create mode 100755 test_myunzip0 create mode 100644 tests/__pycache__/test_myunzip0.cpython-38.pyc create mode 100644 tests/resources/compressed.zip create mode 100644 tests/resources/compressed_expected.deflate create mode 100644 tests/resources/compressed_expected.txt create mode 100644 tests/resources/uncompressed.zip create mode 100644 tests/resources/uncompressed_expected.txt create mode 100644 tests/test_myunzip0.py create mode 100644 tests/unit_tests/README.md rename tests/{ => unit_tests}/inflate_test.cpp (100%) diff --git a/Makefile b/Makefile index 45f3aca..ccac190 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ -all : myzip0 myunzip0 huffman inflate test_inflate myunzip myzip lz77 +all : myzip0 myunzip0 huffman inflate myunzip myzip lz77 myzip0 : myzip0.c cc myzip0.c -o myzip0 -myunzip0 : myunzip0.c - cc myunzip0.c -o myunzip0 +myunzip0 : src/myunzip0/myunzip0.c + cc src/myunzip0/myunzip0.c -o myunzip0 huffman : huffman.c cc huffman.c -o huffman @@ -15,10 +15,6 @@ inflate : include/inflate.h src/inflate/main.c src/inflate/inflate.c myunzip : include/inflate.h src/inflate/inflate.c src/myunzip/myunzip.c gcc -I include src/inflate/inflate.c src/myunzip/myunzip.c -o myunzip -test_inflate : src/inflate/inflate.c tests/inflate_test.cpp - g++ -I include src/inflate/inflate.c tests/inflate_test.cpp -o test_inflate -l gtest - ./test_inflate - lz77 : include/bitwriter.h include/hashmap.h include/lz77.h src/lz77/bitwriter.c src/lz77/hashmap.c src/lz77/lz77.c src/lz77/main.c cc -I include src/lz77/lz77.c src/lz77/hashmap.c src/lz77/bitwriter.c src/lz77/main.c -o lz77 @@ -26,4 +22,4 @@ myzip : include/bitwriter.h include/hashmap.h include/lz77.h src/lz77/bitwriter. cc -I include src/lz77/lz77.c src/lz77/hashmap.c src/lz77/bitwriter.c src/myzip/myzip.c -o myzip clean : - rm -f myzip0 myunzip0 huffman inflate test_inflate myunzip myzip lz77 + rm -f myzip0 myunzip0 huffman inflate myunzip myzip lz77 test_myunzip0 diff --git a/myunzip0.c b/src/myunzip0/myunzip0.c similarity index 94% rename from myunzip0.c rename to src/myunzip0/myunzip0.c index 0f158ea..aca88e7 100644 --- a/myunzip0.c +++ b/src/myunzip0/myunzip0.c @@ -57,8 +57,6 @@ void unzip(FILE *fp) { FILE *out = fopen(fname, "wb"); - /* TODO is there a better way to do this? - * worried about storing a huge buffer for large files... */ char *buf = (char *) malloc(size * sizeof(char)); fread(buf, 1, size, fp); fwrite(buf, 1, size, out); diff --git a/test_myunzip0 b/test_myunzip0 new file mode 100755 index 0000000000000000000000000000000000000000..6c1be68077365f2dc4381b19d4a631d16bf1199c GIT binary patch literal 26056 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 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_myunzip0.cpython-38.pyc b/tests/__pycache__/test_myunzip0.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fecba02928f82db37eaa8b7325d43518570350bf GIT binary patch literal 1164 zcmb_bF>ezw6t?f2%jHN~S{8<=VnT|La;;!QD5wM^q-G(N&<$AEvqRJ7a)<3hX~afH zendKEU}EQocxB=*u)up4+61DO1)u!R@A<v&dw$P8Y%~G_<Ll>7Z@w@>zM--@z(zVS z^-B<f2s$Fs;!h)5>Q3a8e>ZZ46R{UWxPqM%!6Z4Ud~_pERz>C1QO_lr`4@x&#w*hD zz5^cVO@nrro)zQiFyBqkvN{}4Ixuw;ge1rZTvRyc1h`6;h=~fK*?M1Ub8vRJK%x+E zIdJX4+=r<<APkvN12}J;3rficGII?(smwe9`jw?R^Mxbai_*uiSq*m~cLHpzH@#<o zPKQeBtWb&6VKGj!GzVQv(T3Cf!^2F>v~?2(my=v32Ef2|9@sz^N4d&?N?TVIV_WOK z?(Xy6(}S)JVqjIKuL^0MOk0-6=Gc02GK3s$bub*sB+Vlig!Pn6v-fgNEz@!|m=m=L zCHe6%JkC-Xro&SiK2uqKlug1!@9pkA3iG{iktj-j*{pVcX17Yq>d9|mjq4x?-Eg<v zfI2@tHr?s3^rpQQl>DD=!R@=QTRX_P+O5BOb^nHaD1TeX!6-Iz`rvxMWxswqD;KJu z8Yr;B3vnA(cC)O&GKITfTrXO)zgDzmNUv3~KIh{&m7Lpv^E4C12-kJa-xcv_v7@$- zdHag~&qNfyuNso$BljJ@QCbi<jfZ2-TeZk9#zTYoDj!j>zY4t-z9{Qsj{7lOK7>+t g(8e%!<;W#xd2avlBFiV(Z@mG+r{(7|XS?asUz5u<#Q*>R literal 0 HcmV?d00001 diff --git a/tests/resources/compressed.zip b/tests/resources/compressed.zip new file mode 100644 index 0000000000000000000000000000000000000000..4087f2cf929cb5531af4994efcd0fa396e414c42 GIT binary patch literal 14205 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 literal 0 HcmV?d00001 diff --git a/tests/resources/compressed_expected.deflate b/tests/resources/compressed_expected.deflate new file mode 100644 index 0000000000000000000000000000000000000000..c72bc6c6305170a78502fd451c888aaabaafd0c0 GIT binary patch literal 13995 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 Re(5N$5N_GP?Jpm?{|(}ihsgi{ literal 0 HcmV?d00001 diff --git a/tests/resources/compressed_expected.txt b/tests/resources/compressed_expected.txt new file mode 100644 index 0000000..0892b33 --- /dev/null +++ b/tests/resources/compressed_expected.txt @@ -0,0 +1,872 @@ +Provided by USConstitution.net +------------------------------ + +[Note: Repealed text is not noted in this version. Spelling errors have been +corrected in this version. For an uncorrected, annotated version of the +Constitution, visit http://www.usconstitution.net/const.html ] + +We the People of the United States, in Order to form a more perfect Union, +establish Justice, insure domestic Tranquility, provide for the common +defence, promote the general Welfare, and secure the Blessings of Liberty to +ourselves and our Posterity, do ordain and establish this Constitution for the +United States of America. + +Article 1. + +Section 1 +All legislative Powers herein granted shall be vested in a Congress of the +United States, which shall consist of a Senate and House of Representatives. + +Section 2 +The House of Representatives shall be composed of Members chosen every second +Year by the People of the several States, and the Electors in each State shall +have the Qualifications requisite for Electors of the most numerous Branch of +the State Legislature. + +No Person shall be a Representative who shall not have attained to the Age of +twenty five Years, and been seven Years a Citizen of the United States, and who +shall not, when elected, be an Inhabitant of that State in which he shall be +chosen. + +Representatives and direct Taxes shall be apportioned among the several States +which may be included within this Union, according to their respective Numbers, +which shall be determined by adding to the whole Number of free Persons, +including those bound to Service for a Term of Years, and excluding Indians not +taxed, three fifths of all other Persons. + +The actual Enumeration shall be made within three Years after the first Meeting +of the Congress of the United States, and within every subsequent Term of ten +Years, in such Manner as they shall by Law direct. The Number of +Representatives shall not exceed one for every thirty Thousand, but each State +shall have at Least one Representative; and until such enumeration shall be +made, the State of New Hampshire shall be entitled to choose three, +Massachusetts eight, Rhode Island and Providence Plantations one, Connecticut +five, New York six, New Jersey four, Pennsylvania eight, Delaware one, Maryland +six, Virginia ten, North Carolina five, South Carolina five and Georgia three. + +When vacancies happen in the Representation from any State, the Executive +Authority thereof shall issue Writs of Election to fill such Vacancies. + +The House of Representatives shall choose their Speaker and other Officers; and +shall have the sole Power of Impeachment. + +Section 3 +The Senate of the United States shall be composed of two Senators from each +State, chosen by the Legislature thereof, for six Years; and each Senator shall +have one Vote. + +Immediately after they shall be assembled in Consequence of the first Election, +they shall be divided as equally as may be into three Classes. The Seats of the +Senators of the first Class shall be vacated at the Expiration of the second +Year, of the second Class at the Expiration of the fourth Year, and of the +third Class at the Expiration of the sixth Year, so that one third may be +chosen every second Year; and if Vacancies happen by Resignation, or otherwise, +during the Recess of the Legislature of any State, the Executive thereof may +make temporary Appointments until the next Meeting of the Legislature, which +shall then fill such Vacancies. + +No person shall be a Senator who shall not have attained to the Age of thirty +Years, and been nine Years a Citizen of the United States, and who shall not, +when elected, be an Inhabitant of that State for which he shall be chosen. + +The Vice President of the United States shall be President of the Senate, but +shall have no Vote, unless they be equally divided. + +The Senate shall choose their other Officers, and also a President pro tempore, +in the absence of the Vice President, or when he shall exercise the Office of +President of the United States. + +The Senate shall have the sole Power to try all Impeachments. When sitting for +that Purpose, they shall be on Oath or Affirmation. When the President of the +United States is tried, the Chief Justice shall preside: And no Person shall be +convicted without the Concurrence of two thirds of the Members present. + +Judgment in Cases of Impeachment shall not extend further than to removal from +Office, and disqualification to hold and enjoy any Office of honor, Trust or +Profit under the United States: but the Party convicted shall nevertheless be +liable and subject to Indictment, Trial, Judgment and Punishment, according to +Law. + +Section 4 +The Times, Places and Manner of holding Elections for Senators and +Representatives, shall be prescribed in each State by the Legislature thereof; +but the Congress may at any time by Law make or alter such Regulations, except +as to the Place of Choosing Senators. + +The Congress shall assemble at least once in every Year, and such Meeting shall +be on the first Monday in December, unless they shall by Law appoint a +different Day. + +Section 5 +Each House shall be the Judge of the Elections, Returns and Qualifications of +its own Members, and a Majority of each shall constitute a Quorum to do +Business; but a smaller number may adjourn from day to day, and may be +authorized to compel the Attendance of absent Members, in such Manner, and +under such Penalties as each House may provide. + +Each House may determine the Rules of its Proceedings, punish its Members for +disorderly Behavior, and, with the Concurrence of two-thirds, expel a Member. + +Each House shall keep a Journal of its Proceedings, and from time to time +publish the same, excepting such Parts as may in their Judgment require +Secrecy; and the Yeas and Nays of the Members of either House on any question +shall, at the Desire of one fifth of those Present, be entered on the Journal. + +Neither House, during the Session of Congress, shall, without the Consent of +the other, adjourn for more than three days, nor to any other Place than that +in which the two Houses shall be sitting. + +Section 6 +The Senators and Representatives shall receive a Compensation for their +Services, to be ascertained by Law, and paid out of the Treasury of the United +States. They shall in all Cases, except Treason, Felony and Breach of the +Peace, be privileged from Arrest during their Attendance at the Session of +their respective Houses, and in going to and returning from the same; and for +any Speech or Debate in either House, they shall not be questioned in any other +Place. + +No Senator or Representative shall, during the Time for which he was elected, +be appointed to any civil Office under the Authority of the United States which +shall have been created, or the Emoluments whereof shall have been increased +during such time; and no Person holding any Office under the United States, +shall be a Member of either House during his Continuance in Office. + + +Section 7 +All bills for raising Revenue shall originate in the House of Representatives; +but the Senate may propose or concur with Amendments as on other Bills. + +Every Bill which shall have passed the House of Representatives and the Senate, +shall, before it become a Law, be presented to the President of the United +States; If he approve he shall sign it, but if not he shall return it, with his +Objections to that House in which it shall have originated, who shall enter the +Objections at large on their Journal, and proceed to reconsider it. If after +such Reconsideration two thirds of that House shall agree to pass the Bill, it +shall be sent, together with the Objections, to the other House, by which it +shall likewise be reconsidered, and if approved by two thirds of that House, it +shall become a Law. But in all such Cases the Votes of both Houses shall be +determined by Yeas and Nays, and the Names of the Persons voting for and +against the Bill shall be entered on the Journal of each House respectively. If +any Bill shall not be returned by the President within ten Days (Sundays +excepted) after it shall have been presented to him, the Same shall be a Law, +in like Manner as if he had signed it, unless the Congress by their Adjournment +prevent its Return, in which Case it shall not be a Law. + +Every Order, Resolution, or Vote to which the Concurrence of the Senate and +House of Representatives may be necessary (except on a question of Adjournment) +shall be presented to the President of the United States; and before the Same +shall take Effect, shall be approved by him, or being disapproved by him, shall +be repassed by two thirds of the Senate and House of Representatives, according +to the Rules and Limitations prescribed in the Case of a Bill. + + +Section 8 +The Congress shall have Power To lay and collect Taxes, Duties, Imposts and +Excises, to pay the Debts and provide for the common Defence and general +Welfare of the United States; but all Duties, Imposts and Excises shall be +uniform throughout the United States; + +To borrow money on the credit of the United States; + +To regulate Commerce with foreign Nations, and among the several States, and +with the Indian Tribes; + +To establish an uniform Rule of Naturalization, and uniform Laws on the subject +of Bankruptcies throughout the United States; + +To coin Money, regulate the Value thereof, and of foreign Coin, and fix the +Standard of Weights and Measures; + +To provide for the Punishment of counterfeiting the Securities and current Coin +of the United States; + +To establish Post Offices and Post Roads; + +To promote the Progress of Science and useful Arts, by securing for limited +Times to Authors and Inventors the exclusive Right to their respective Writings +and Discoveries; + +To constitute Tribunals inferior to the supreme Court; + +To define and punish Piracies and Felonies committed on the high Seas, and +Offenses against the Law of Nations; + +To declare War, grant Letters of Marque and Reprisal, and make Rules concerning +Captures on Land and Water; + +To raise and support Armies, but no Appropriation of Money to that Use shall be +for a longer Term than two Years; + +To provide and maintain a Navy; + +To make Rules for the Government and Regulation of the land and naval Forces; + +To provide for calling forth the Militia to execute the Laws of the Union, +suppress Insurrections and repel Invasions; + +To provide for organizing, arming, and disciplining, the Militia, and for +governing such Part of them as may be employed in the Service of the United +States, reserving to the States respectively, the Appointment of the Officers, +and the Authority of training the Militia according to the discipline +prescribed by Congress; + +To exercise exclusive Legislation in all Cases whatsoever, over such District +(not exceeding ten Miles square) as may, by Cession of particular States, and +the acceptance of Congress, become the Seat of the Government of the United +States, and to exercise like Authority over all Places purchased by the Consent +of the Legislature of the State in which the Same shall be, for the Erection of +Forts, Magazines, Arsenals, dock-Yards, and other needful Buildings; And + +To make all Laws which shall be necessary and proper for carrying into +Execution the foregoing Powers, and all other Powers vested by this +Constitution in the Government of the United States, or in any Department or +Officer thereof. + +Section 9 +The Migration or Importation of such Persons as any of the States now existing +shall think proper to admit, shall not be prohibited by the Congress prior to +the Year one thousand eight hundred and eight, but a tax or duty may be imposed +on such Importation, not exceeding ten dollars for each Person. + +The privilege of the Writ of Habeas Corpus shall not be suspended, unless when +in Cases of Rebellion or Invasion the public Safety may require it. + +No Bill of Attainder or ex post facto Law shall be passed. + +No capitation, or other direct, Tax shall be laid, unless in Proportion to the +Census or Enumeration herein before directed to be taken. + +No Tax or Duty shall be laid on Articles exported from any State. + +No Preference shall be given by any Regulation of Commerce or Revenue to the +Ports of one State over those of another: nor shall Vessels bound to, or from, +one State, be obliged to enter, clear, or pay Duties in another. + +No Money shall be drawn from the Treasury, but in Consequence of Appropriations +made by Law; and a regular Statement and Account of the Receipts and +Expenditures of all public Money shall be published from time to time. + +No Title of Nobility shall be granted by the United States: And no Person +holding any Office of Profit or Trust under them, shall, without the Consent of +the Congress, accept of any present, Emolument, Office, or Title, of any kind +whatever, from any King, Prince or foreign State. + +Section 10 +No State shall enter into any Treaty, Alliance, or Confederation; grant Letters +of Marque and Reprisal; coin Money; emit Bills of Credit; make any Thing but +gold and silver Coin a Tender in Payment of Debts; pass any Bill of Attainder, +ex post facto Law, or Law impairing the Obligation of Contracts, or grant any +Title of Nobility. + +No State shall, without the Consent of the Congress, lay any Imposts or Duties +on Imports or Exports, except what may be absolutely necessary for executing +its inspection Laws: and the net Produce of all Duties and Imposts, laid by +any State on Imports or Exports, shall be for the Use of the Treasury of the +United States; and all such Laws shall be subject to the Revision and Control +of the Congress. + +No State shall, without the Consent of Congress, lay any duty of Tonnage, keep +Troops, or Ships of War in time of Peace, enter into any Agreement or Compact +with another State, or with a foreign Power, or engage in War, unless actually +invaded, or in such imminent Danger as will not admit of delay. + +Article 2. + +Section 1 +The executive Power shall be vested in a President of the United States of +America. He shall hold his Office during the Term of four Years, and, together +with the Vice-President chosen for the same Term, be elected, as follows: + +Each State shall appoint, in such Manner as the Legislature thereof may direct, +a Number of Electors, equal to the whole Number of Senators and Representatives +to which the State may be entitled in the Congress: but no Senator or +Representative, or Person holding an Office of Trust or Profit under the United +States, shall be appointed an Elector. + +The Electors shall meet in their respective States, and vote by Ballot for two +persons, of whom one at least shall not lie an Inhabitant of the same State +with themselves. And they shall make a List of all the Persons voted for, and +of the Number of Votes for each; which List they shall sign and certify, and +transmit sealed to the Seat of the Government of the United States, directed to +the President of the Senate. The President of the Senate shall, in the Presence +of the Senate and House of Representatives, open all the Certificates, and the +Votes shall then be counted. The Person having the greatest Number of Votes +shall be the President, if such Number be a Majority of the whole Number of +Electors appointed; and if there be more than one who have such Majority, and +have an equal Number of Votes, then the House of Representatives shall +immediately choose by Ballot one of them for President; and if no Person have a +Majority, then from the five highest on the List the said House shall in like +Manner choose the President. But in choosing the President, the Votes shall be +taken by States, the Representation from each State having one Vote; a quorum +for this Purpose shall consist of a Member or Members from two-thirds of the +States, and a Majority of all the States shall be necessary to a Choice. In +every Case, after the Choice of the President, the Person having the greatest +Number of Votes of the Electors shall be the Vice President. But if there +should remain two or more who have equal Votes, the Senate shall choose from +them by Ballot the Vice-President. + +The Congress may determine the Time of choosing the Electors, and the Day on +which they shall give their Votes; which Day shall be the same throughout the +United States. + +No person except a natural born Citizen, or a Citizen of the United States, at +the time of the Adoption of this Constitution, shall be eligible to the Office +of President; neither shall any Person be eligible to that Office who shall not +have attained to the Age of thirty-five Years, and been fourteen Years a +Resident within the United States. + +In Case of the Removal of the President from Office, or of his Death, +Resignation, or Inability to discharge the Powers and Duties of the said +Office, the same shall devolve on the Vice President, and the Congress may by +Law provide for the Case of Removal, Death, Resignation or Inability, both of +the President and Vice President, declaring what Officer shall then act as +President, and such Officer shall act accordingly, until the Disability be +removed, or a President shall be elected. + +The President shall, at stated Times, receive for his Services, a Compensation, +which shall neither be increased nor diminished during the Period for which he +shall have been elected, and he shall not receive within that Period any other +Emolument from the United States, or any of them. + +Before he enter on the Execution of his Office, he shall take the following +Oath or Affirmation: + +"I do solemnly swear (or affirm) that I will faithfully execute the Office of +President of the United States, and will to the best of my Ability, preserve, +protect and defend the Constitution of the United States." + +Section 2 +The President shall be Commander in Chief of the Army and Navy of the United +States, and of the Militia of the several States, when called into the actual +Service of the United States; he may require the Opinion, in writing, of the +principal Officer in each of the executive Departments, upon any subject +relating to the Duties of their respective Offices, and he shall have Power to +Grant Reprieves and Pardons for Offenses against the United States, except in +Cases of Impeachment. + +He shall have Power, by and with the Advice and Consent of the Senate, to make +Treaties, provided two thirds of the Senators present concur; and he shall +nominate, and by and with the Advice and Consent of the Senate, shall appoint +Ambassadors, other public Ministers and Consuls, Judges of the supreme Court, +and all other Officers of the United States, whose Appointments are not herein +otherwise provided for, and which shall be established by Law: but the Congress +may by Law vest the Appointment of such inferior Officers, as they think +proper, in the President alone, in the Courts of Law, or in the Heads of +Departments. + +The President shall have Power to fill up all Vacancies that may happen during +the Recess of the Senate, by granting Commissions which shall expire at the End +of their next Session. + +Section 3 +He shall from time to time give to the Congress Information of the State of the +Union, and recommend to their Consideration such Measures as he shall judge +necessary and expedient; he may, on extraordinary Occasions, convene both +Houses, or either of them, and in Case of Disagreement between them, with +Respect to the Time of Adjournment, he may adjourn them to such Time as he +shall think proper; he shall receive Ambassadors and other public Ministers; he +shall take Care that the Laws be faithfully executed, and shall Commission all +the Officers of the United States. + +Section 4 +The President, Vice President and all civil Officers of the United States, +shall be removed from Office on Impeachment for, and Conviction of, Treason, +Bribery, or other high Crimes and Misdemeanors. + +Article 3. + +Section 1 +The judicial Power of the United States, shall be vested in one supreme Court, +and in such inferior Courts as the Congress may from time to time ordain and +establish. The Judges, both of the supreme and inferior Courts, shall hold +their Offices during good Behavior, and shall, at stated Times, receive for +their Services a Compensation which shall not be diminished during their +Continuance in Office. + +Section 2 +The judicial Power shall extend to all Cases, in Law and Equity, arising under +this Constitution, the Laws of the United States, and Treaties made, or which +shall be made, under their Authority; to all Cases affecting Ambassadors, other +public Ministers and Consuls; to all Cases of admiralty and maritime +Jurisdiction; to Controversies to which the United States shall be a Party; to +Controversies between two or more States; between a State and Citizens of +another State; between Citizens of different States; between Citizens of the +same State claiming Lands under Grants of different States, and between a +State, or the Citizens thereof, and foreign States, Citizens or Subjects. + +In all Cases affecting Ambassadors, other public Ministers and Consuls, and +those in which a State shall be Party, the supreme Court shall have original +Jurisdiction. In all the other Cases before mentioned, the supreme Court shall +have appellate Jurisdiction, both as to Law and Fact, with such Exceptions, and +under such Regulations as the Congress shall make. + +The Trial of all Crimes, except in Cases of Impeachment, shall be by Jury; and +such Trial shall be held in the State where the said Crimes shall have been +committed; but when not committed within any State, the Trial shall be at such +Place or Places as the Congress may by Law have directed. + +Section 3 +Treason against the United States, shall consist only in levying War against +them, or in adhering to their Enemies, giving them Aid and Comfort. No Person +shall be convicted of Treason unless on the Testimony of two Witnesses to the +same overt Act, or on Confession in open Court. + +The Congress shall have power to declare the Punishment of Treason, but no +Attainder of Treason shall work Corruption of Blood, or Forfeiture except +during the Life of the Person attainted. + +Article 4. + +Section 1 +Full Faith and Credit shall be given in each State to the public Acts, Records, +and judicial Proceedings of every other State. And the Congress may by general +Laws prescribe the Manner in which such Acts, Records and Proceedings shall be +proved, and the Effect thereof. + +Section 2 +The Citizens of each State shall be entitled to all Privileges and Immunities +of Citizens in the several States. + +A Person charged in any State with Treason, Felony, or other Crime, who shall +flee from Justice, and be found in another State, shall on demand of the +executive Authority of the State from which he fled, be delivered up, to be +removed to the State having Jurisdiction of the Crime. + +No Person held to Service or Labour in one State, under the Laws thereof, +escaping into another, shall, in Consequence of any Law or Regulation therein, +be discharged from such Service or Labour, But shall be delivered up on Claim +of the Party to whom such Service or Labour may be due. + +Section 3 +New States may be admitted by the Congress into this Union; but no new States +shall be formed or erected within the Jurisdiction of any other State; nor any +State be formed by the Junction of two or more States, or parts of States, +without the Consent of the Legislatures of the States concerned as well as of +the Congress. + +The Congress shall have Power to dispose of and make all needful Rules and +Regulations respecting the Territory or other Property belonging to the United +States; and nothing in this Constitution shall be so construed as to Prejudice +any Claims of the United States, or of any particular State. + +Section 4 +The United States shall guarantee to every State in this Union a Republican +Form of Government, and shall protect each of them against Invasion; and on +Application of the Legislature, or of the Executive (when the Legislature +cannot be convened) against domestic Violence. + +Article 5. + +The Congress, whenever two thirds of both Houses shall deem it necessary, shall +propose Amendments to this Constitution, or, on the Application of the +Legislatures of two thirds of the several States, shall call a Convention for +proposing Amendments, which, in either Case, shall be valid to all Intents and +Purposes, as part of this Constitution, when ratified by the Legislatures of +three fourths of the several States, or by Conventions in three fourths +thereof, as the one or the other Mode of Ratification may be proposed by the +Congress; Provided that no Amendment which may be made prior to the Year One +thousand eight hundred and eight shall in any Manner affect the first and +fourth Clauses in the Ninth Section of the first Article; and that no State, +without its Consent, shall be deprived of its equal Suffrage in the Senate. + +Article 6. + +All Debts contracted and Engagements entered into, before the Adoption of this +Constitution, shall be as valid against the United States under this +Constitution, as under the Confederation. + +This Constitution, and the Laws of the United States which shall be made in +Pursuance thereof; and all Treaties made, or which shall be made, under the +Authority of the United States, shall be the supreme Law of the Land; and the +Judges in every State shall be bound thereby, any Thing in the Constitution or +Laws of any State to the Contrary notwithstanding. + +The Senators and Representatives before mentioned, and the Members of the +several State Legislatures, and all executive and judicial Officers, both of +the United States and of the several States, shall be bound by Oath or +Affirmation, to support this Constitution; but no religious Test shall ever be +required as a Qualification to any Office or public Trust under the United +States. + +Article 7. + +The Ratification of the Conventions of nine States, shall be sufficient for the +Establishment of this Constitution between the States so ratifying the Same. + +Done in Convention by the Unanimous Consent of the States present the +Seventeenth Day of September in the Year of our Lord one thousand seven hundred +and Eighty seven and of the Independence of the United States of America the +Twelfth. In Witness whereof We have hereunto subscribed our Names. + +George Washington - President and deputy from Virginia + +New Hampshire - John Langdon, Nicholas Gilman + +Massachusetts - Nathaniel Gorham, Rufus King + +Connecticut - William Samuel Johnson, Roger Sherman + +New York - Alexander Hamilton + +New Jersey - William Livingston, David Brearley, William Paterson, Jonathan +Dayton + +Pennsylvania - Benjamin Franklin, Thomas Mifflin, Robert Morris, George Clymer, +Thomas Fitzsimons, Jared Ingersoll, James Wilson, Gouvernour Morris + +Delaware - George Read, Gunning Bedford Jr., John Dickinson, Richard Bassett, +Jacob Broom + +Maryland - James McHenry, Daniel of St Thomas Jenifer, Daniel Carroll + +Virginia - John Blair, James Madison Jr. + +North Carolina - William Blount, Richard Dobbs Spaight, Hugh Williamson + +South Carolina - John Rutledge, Charles Cotesworth Pinckney, Charles Pinckney, +Pierce Butler + +Georgia - William Few, Abraham Baldwin + +Attest: William Jackson, Secretary + + +Amendment 1 +Congress shall make no law respecting an establishment of religion, or +prohibiting the free exercise thereof; or abridging the freedom of speech, or +of the press; or the right of the people peaceably to assemble, and to petition +the Government for a redress of grievances. + +Amendment 2 +A well regulated Militia, being necessary to the security of a free State, the +right of the people to keep and bear Arms, shall not be infringed. + +Amendment 3 +No Soldier shall, in time of peace be quartered in any house, without the +consent of the Owner, nor in time of war, but in a manner to be prescribed by +law. + +Amendment 4 +The right of the people to be secure in their persons, houses, papers, and +effects, against unreasonable searches and seizures, shall not be violated, and +no Warrants shall issue, but upon probable cause, supported by Oath or +affirmation, and particularly describing the place to be searched, and the +persons or things to be seized. + +Amendment 5 +No person shall be held to answer for a capital, or otherwise infamous crime, +unless on a presentment or indictment of a Grand Jury, except in cases arising +in the land or naval forces, or in the Militia, when in actual service in time +of War or public danger; nor shall any person be subject for the same offense +to be twice put in jeopardy of life or limb; nor shall be compelled in any +criminal case to be a witness against himself, nor be deprived of life, +liberty, or property, without due process of law; nor shall private property be +taken for public use, without just compensation. + +Amendment 6 +In all criminal prosecutions, the accused shall enjoy the right to a speedy and +public trial, by an impartial jury of the State and district wherein the crime +shall have been committed, which district shall have been previously +ascertained by law, and to be informed of the nature and cause of the +accusation; to be confronted with the witnesses against him; to have compulsory +process for obtaining witnesses in his favor, and to have the Assistance of +Counsel for his defence. + +Amendment 7 +In Suits at common law, where the value in controversy shall exceed twenty +dollars, the right of trial by jury shall be preserved, and no fact tried by a +jury, shall be otherwise re-examined in any Court of the United States, than +according to the rules of the common law. + +Amendment 8 +Excessive bail shall not be required, nor excessive fines imposed, nor cruel +and unusual punishments inflicted. + +Amendment 9 +The enumeration in the Constitution, of certain rights, shall not be construed +to deny or disparage others retained by the people. + +Amendment 10 +The powers not delegated to the United States by the Constitution, nor +prohibited by it to the States, are reserved to the States respectively, or to +the people. + +Amendment 11 +The Judicial power of the United States shall not be construed to extend to any +suit in law or equity, commenced or prosecuted against one of the United States +by Citizens of another State, or by Citizens or Subjects of any Foreign State. + +Amendment 12 +The Electors shall meet in their respective states, and vote by ballot for +President and Vice-President, one of whom, at least, shall not be an inhabitant +of the same state with themselves; they shall name in their ballots the person +voted for as President, and in distinct ballots the person voted for as +Vice-President, and they shall make distinct lists of all persons voted for as +President, and of all persons voted for as Vice-President and of the number of +votes for each, which lists they shall sign and certify, and transmit sealed to +the seat of the government of the United States, directed to the President of +the Senate; + +The President of the Senate shall, in the presence of the Senate and House of +Representatives, open all the certificates and the votes shall then be counted; + +The person having the greatest Number of votes for President, shall be the +President, if such number be a majority of the whole number of Electors +appointed; and if no person have such majority, then from the persons having +the highest numbers not exceeding three on the list of those voted for as +President, the House of Representatives shall choose immediately, by ballot, +the President. But in choosing the President, the votes shall be taken by +states, the representation from each state having one vote; a quorum for this +purpose shall consist of a member or members from two-thirds of the states, and +a majority of all the states shall be necessary to a choice. And if the House +of Representatives shall not choose a President whenever the right of choice +shall devolve upon them, before the fourth day of March next following, then +the Vice-President shall act as President, as in the case of the death or other +constitutional disability of the President. + +The person having the greatest number of votes as Vice-President, shall be the +Vice-President, if such number be a majority of the whole number of Electors +appointed, and if no person have a majority, then from the two highest numbers +on the list, the Senate shall choose the Vice-President; a quorum for the +purpose shall consist of two-thirds of the whole number of Senators, and a +majority of the whole number shall be necessary to a choice. But no person +constitutionally ineligible to the office of President shall be eligible to +that of Vice-President of the United States. + +Amendment 13 +1. Neither slavery nor involuntary servitude, except as a punishment for crime +whereof the party shall have been duly convicted, shall exist within the United +States, or any place subject to their jurisdiction. + +2. Congress shall have power to enforce this article by appropriate +legislation. + +Amendment 14 +1. All persons born or naturalized in the United States, and subject to the +jurisdiction thereof, are citizens of the United States and of the State +wherein they reside. No State shall make or enforce any law which shall abridge +the privileges or immunities of citizens of the United States; nor shall any +State deprive any person of life, liberty, or property, without due process of +law; nor deny to any person within its jurisdiction the equal protection of the +laws. + +2. Representatives shall be apportioned among the several States according to +their respective numbers, counting the whole number of persons in each State, +excluding Indians not taxed. But when the right to vote at any election for the +choice of electors for President and Vice-President of the United States, +Representatives in Congress, the Executive and Judicial officers of a State, or +the members of the Legislature thereof, is denied to any of the male +inhabitants of such State, being twenty-one years of age, and citizens of the +United States, or in any way abridged, except for participation in rebellion, +or other crime, the basis of representation therein shall be reduced in the +proportion which the number of such male citizens shall bear to the whole +number of male citizens twenty-one years of age in such State. + +3. No person shall be a Senator or Representative in Congress, or elector of +President and Vice-President, or hold any office, civil or military, under the +United States, or under any State, who, having previously taken an oath, as a +member of Congress, or as an officer of the United States, or as a member of +any State legislature, or as an executive or judicial officer of any State, to +support the Constitution of the United States, shall have engaged in +insurrection or rebellion against the same, or given aid or comfort to the +enemies thereof. But Congress may by a vote of two-thirds of each House, remove +such disability. + +4. The validity of the public debt of the United States, authorized by law, +including debts incurred for payment of pensions and bounties for services in +suppressing insurrection or rebellion, shall not be questioned. But neither the +United States nor any State shall assume or pay any debt or obligation incurred +in aid of insurrection or rebellion against the United States, or any claim for +the loss or emancipation of any slave; but all such debts, obligations and +claims shall be held illegal and void. + +5. The Congress shall have power to enforce, by appropriate legislation, the +provisions of this article. + +Amendment 15 +1. The right of citizens of the United States to vote shall not be denied or +abridged by the United States or by any State on account of race, color, or +previous condition of servitude. + +2. The Congress shall have power to enforce this article by appropriate +legislation. + +Amendment 16 +The Congress shall have power to lay and collect taxes on incomes, from +whatever source derived, without apportionment among the several States, and +without regard to any census or enumeration. + +Amendment 17 +The Senate of the United States shall be composed of two Senators from each +State, elected by the people thereof, for six years; and each Senator shall +have one vote. The electors in each State shall have the qualifications +requisite for electors of the most numerous branch of the State legislatures. + +When vacancies happen in the representation of any State in the Senate, the +executive authority of such State shall issue writs of election to fill such +vacancies: Provided, That the legislature of any State may empower the +executive thereof to make temporary appointments until the people fill the +vacancies by election as the legislature may direct. + +This amendment shall not be so construed as to affect the election or term of +any Senator chosen before it becomes valid as part of the Constitution. + +Amendment 18 +1. After one year from the ratification of this article the manufacture, sale, +or transportation of intoxicating liquors within, the importation thereof into, +or the exportation thereof from the United States and all territory subject to +the jurisdiction thereof for beverage purposes is hereby prohibited. + +2. The Congress and the several States shall have concurrent power to enforce +this article by appropriate legislation. + +3. This article shall be inoperative unless it shall have been ratified as an +amendment to the Constitution by the legislatures of the several States, as +provided in the Constitution, within seven years from the date of the +submission hereof to the States by the Congress. + +Amendment 19 +The right of citizens of the United States to vote shall not be denied or +abridged by the United States or by any State on account of sex. + +Congress shall have power to enforce this article by appropriate legislation. + +Amendment 20 +1. The terms of the President and Vice President shall end at noon on the 20th +day of January, and the terms of Senators and Representatives at noon on the 3d +day of January, of the years in which such terms would have ended if this +article had not been ratified; and the terms of their successors shall then +begin. + +2. The Congress shall assemble at least once in every year, and such meeting +shall begin at noon on the 3d day of January, unless they shall by law appoint +a different day. + +3. If, at the time fixed for the beginning of the term of the President, the +President elect shall have died, the Vice President elect shall become +President. If a President shall not have been chosen before the time fixed for +the beginning of his term, or if the President elect shall have failed to +qualify, then the Vice President elect shall act as President until a President +shall have qualified; and the Congress may by law provide for the case wherein +neither a President elect nor a Vice President elect shall have qualified, +declaring who shall then act as President, or the manner in which one who is to +act shall be selected, and such person shall act accordingly until a President +or Vice President shall have qualified. + +4. The Congress may by law provide for the case of the death of any of the +persons from whom the House of Representatives may choose a President whenever +the right of choice shall have devolved upon them, and for the case of the +death of any of the persons from whom the Senate may choose a Vice President +whenever the right of choice shall have devolved upon them. + +5. Sections 1 and 2 shall take effect on the 15th day of October following the +ratification of this article. + +6. This article shall be inoperative unless it shall have been ratified as an +amendment to the Constitution by the legislatures of three-fourths of the +several States within seven years from the date of its submission. + +Amendment 21 +1. The eighteenth article of amendment to the Constitution of the United States +is hereby repealed. + +2. The transportation or importation into any State, Territory, or possession +of the United States for delivery or use therein of intoxicating liquors, in +violation of the laws thereof, is hereby prohibited. + +3. The article shall be inoperative unless it shall have been ratified as an +amendment to the Constitution by conventions in the several States, as provided +in the Constitution, within seven years from the date of the submission hereof +to the States by the Congress. + +Amendment 22 +1. No person shall be elected to the office of the President more than twice, +and no person who has held the office of President, or acted as President, for +more than two years of a term to which some other person was elected President +shall be elected to the office of the President more than once. But this +Article shall not apply to any person holding the office of President, when this +Article was proposed by the Congress, and shall not prevent any person who may +be holding the office of President, or acting as President, during the term +within which this Article becomes operative from holding the office of +President or acting as President during the remainder of such term. + +2. This article shall be inoperative unless it shall have been ratified as an +amendment to the Constitution by the legislatures of three-fourths of the +several States within seven years from the date of its submission to the States +by the Congress. + +Amendment 23 +1. The District constituting the seat of Government of the United States shall +appoint in such manner as the Congress may direct: A number of electors of +President and Vice President equal to the whole number of Senators and +Representatives in Congress to which the District would be entitled if it were +a State, but in no event more than the least populous State; they shall be in +addition to those appointed by the States, but they shall be considered, for +the purposes of the election of President and Vice President, to be electors +appointed by a State; and they shall meet in the District and perform such +duties as provided by the twelfth article of amendment. + +2. The Congress shall have power to enforce this article by appropriate +legislation. + +Amendment 24 +1. The right of citizens of the United States to vote in any primary or other +election for President or Vice President, for electors for President or +Vice President, or for Senator or Representative in Congress, shall not be +denied or abridged by the United States or any State by reason of failure to +pay any poll tax or other tax. + +2. The Congress shall have power to enforce this article by appropriate +legislation. + +Amendment 25 +1. In case of the removal of the President from office or of his death or +resignation, the Vice President shall become President. + +2. Whenever there is a vacancy in the office of the Vice President, the +President shall nominate a Vice President who shall take office upon +confirmation by a majority vote of both Houses of Congress. + +3. Whenever the President transmits to the President pro tempore of the Senate +and the Speaker of the House of Representatives his written declaration that he +is unable to discharge the powers and duties of his office, and until he +transmits to them a written declaration to the contrary, such powers and duties +shall be discharged by the Vice President as Acting President. + +4. Whenever the Vice President and a majority of either the principal officers +of the executive departments or of such other body as Congress may by law +provide, transmit to the President pro tempore of the Senate and the Speaker of +the House of Representatives their written declaration that the President is +unable to discharge the powers and duties of his office, the Vice President +shall immediately assume the powers and duties of the office as Acting +President. + +Thereafter, when the President transmits to the President pro tempore of the +Senate and the Speaker of the House of Representatives his written declaration +that no inability exists, he shall resume the powers and duties of his office +unless the Vice President and a majority of either the principal officers of +the executive department or of such other body as Congress may by law provide, +transmit within four days to the President pro tempore of the Senate and the +Speaker of the House of Representatives their written declaration that the +President is unable to discharge the powers and duties of his office. Thereupon +Congress shall decide the issue, assembling within forty eight hours for that +purpose if not in session. If the Congress, within twenty one days after +receipt of the latter written declaration, or, if Congress is not in session, +within twenty one days after Congress is required to assemble, determines by +two thirds vote of both Houses that the President is unable to discharge the +powers and duties of his office, the Vice President shall continue to discharge +the same as Acting President; otherwise, the President shall resume the powers +and duties of his office. + +Amendment 26 +1. The right of citizens of the United States, who are eighteen years of age or +older, to vote shall not be denied or abridged by the United States or by any +State on account of age. + +2. The Congress shall have power to enforce this article by appropriate +legislation. + +Amendment 27 +No law, varying the compensation for the services of the Senators and +Representatives, shall take effect, until an election of Representatives shall +have intervened. diff --git a/tests/resources/uncompressed.zip b/tests/resources/uncompressed.zip new file mode 100644 index 0000000000000000000000000000000000000000..9517592d266293a6c2f7e97cb3ffe8c6cd194c88 GIT binary patch literal 256 zcmWIWW@Zs#fPwe>*4~Q)azI!Ch)Yt7ON#Z2Qj7CTi;`1|^-J@T^K%P;{NmIUy^@NO zkc`Y?1t3aP0I5_+%gjmDQ}8SS3FYONC?FIoB<7_k6ldg@=A`H-lw_n9rKaT<rRpdo zr7EOWloTZ<m!zg}r4{ApD&$s{=2c}D80aZ*1$Z+u$vNV79ngUcj6ethgxnh7&B_MT L;Rj^Q0c!&Q7imVd literal 0 HcmV?d00001 diff --git a/tests/resources/uncompressed_expected.txt b/tests/resources/uncompressed_expected.txt new file mode 100644 index 0000000..35d9a85 --- /dev/null +++ b/tests/resources/uncompressed_expected.txt @@ -0,0 +1,2 @@ +This is a test file. It is not compressed and should, therefore, be extracted +from myunzip0. diff --git a/tests/test_myunzip0.py b/tests/test_myunzip0.py new file mode 100644 index 0000000..6b29fff --- /dev/null +++ b/tests/test_myunzip0.py @@ -0,0 +1,38 @@ +import unittest +import os +import filecmp +import subprocess + + +EXEC_NAME = './myunzip0' + +class TestMyUnzip0(unittest.TestCase): + + def test_uncompressed(self): + subprocess.run([EXEC_NAME, 'tests/resources/uncompressed.zip']) + + # Check that the correct file was extracted + self.assertTrue(os.path.exists('tests/resources/uncompressed.txt')) + + # Check correct output + self.assertTrue(filecmp.cmp('tests/resources/uncompressed.txt', + 'tests/resources/uncompressed_expected.txt')) + + # Remove output + os.remove('tests/resources/uncompressed.txt') + + def test_compressed(self): + subprocess.run([EXEC_NAME, 'tests/resources/compressed.zip']) + + # Check that we extracted a DEFLATE stream + self.assertTrue(os.path.exists('tests/resources/compressed.txt.deflate')) + + # Check correct output + self.assertTrue(filecmp.cmp('tests/resources/compressed_expected.deflate', + 'tests/resources/compressed.txt.deflate')) + + # Remove output + os.remove('tests/resources/compressed.txt.deflate') + +if __name__ == '__main__': + unittest.main() diff --git a/tests/unit_tests/README.md b/tests/unit_tests/README.md new file mode 100644 index 0000000..586e08f --- /dev/null +++ b/tests/unit_tests/README.md @@ -0,0 +1 @@ +These tests are specific to our implementation and were used for debugging. diff --git a/tests/inflate_test.cpp b/tests/unit_tests/inflate_test.cpp similarity index 100% rename from tests/inflate_test.cpp rename to tests/unit_tests/inflate_test.cpp -- GitLab