پیپ یا `pip` یکی از بازیگران مهم دنیای پایتون است. این نرمافزار که سابقا نامش `pyinstall` بود الان به نام `pip` تغییر نام داده است. این نام همانند `GNU` یک مخفف بازگشتی است. در واقعا `pip` مخفف `Pip Install Paackages` است. اطلاعات بیشتر در [صفحهی ویکیپدیای پیپ](https://en.wikipedia.org/wiki/Pip_%28package_manager%29#History) در دسترس است.
از شما میخواهیم در ادامه، این پکیجمنیجر دوست داشتنی را با زبان گو و برای زبان گو پیادهسازی کنید. پس بدون معطلی فایلهای اولیهی پروژه را از [این لینک](/contest/assignments/53485/download_problem_initial_project/181479/) دانلود کنید.
## آنچه باید پیادهسازی کنید
برای این سوال از شما میخواهیم به شکل Test Driven Development عمل کنید. در واقع آنچه باید پیادهسازی کنید، هرچیزی است که باعث پاس شدن تستهای نمونه که در اختیار شماست میشود. برای این سوال تستهای اصلی دقیقا همان تستهای نمونه هستند و به این ترتیب شما میتوانید با خواندن دقیق تستها متوجه جزئیات سوال شوید و کد خودتان را همراه با پیادهسازی تست کنید.
## راهنمایی و تضمینها
+ تضمین میشود دقیقا همین تستی که در اختیار شماست در کوئرا اجرا میشود.
+ میتوانید برای راحتی کار از کتابخانهی [این لینک](https://github.com/otiai10/copy) و [این لینک](https://github.com/lithammer/fuzzysearch) استفاده کنید. اما استفاده از هیچ کتابخانهی دیگری مجاز نیست.
+ برای اینکه از بین تستهای فیل شونده بتوانید توسعه را جلو ببرید، ابزار اجرای تست خود را طوری تنظیم کنید که با اولین فیل شدن تست، اجرا را متوقف کند.
+ با دقت در پکیجها و ایمپورتها، انتخاب کنید که باید توسعه را از کدام پکیج شروع کنید.
+ سعی کنید در قدم اول یک نسخهی قابل کامپایل پیاده کنید و بعدا به سراغ تکمیل متدها بروید.
+ اشکالی ندارد اگر همهی تستها پاس نمیشود، هر مقدار از تستها را که میتوانید پاس کنید، میتوانید نمره همان را بگیرید. فقط برنامه لازم است کامپایل شود.
+ برای اجرای تستها میتوانید از دستور زیر شروع کنید و بسته به نیاز آن را تغییر دهید:
```bash
go test "./..." -count=1 -v
```
## آنچه باید آپلود کنید
+ یک فایل زیپ آپلود کنید که وقتی آن را باز میکنیم دقیقا پوشه های `fs` و `commands` را بببینیم. داخل این پوشهها فایلهای `go` را قرار دهید.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.