Skip to content

chicio/Sales-Taxes

Repository files navigation

Sales-Taxes

Build Status codecov GitHub license Supported platform

An iOS implementation of the Sales Taxes technical interview problem.


Introduction

This is the text of the problem:

Basic sales tax is applicable at a rate of 10% on all goods, except books, food, and medical products that are exempt. Import duty is an additional sales tax applicable on all imported goods at a rate of 5%, with no exemptions.   When I purchase items I receive a receipt which lists the name of all the items and their price (including tax), finishing with the total cost of the items, and the total amounts of sales taxes paid. The rounding rules for sales tax are that for a tax rate of n%, a shelf price of p contains (np/100 rounded up to the nearest 0.05) amount of sales tax.
Write an application that prints out the receipt details for these shopping baskets...

INPUT

    Input 1:
  • 1 book at 12.49
  • 1 music CD at 14.99
  • 1 chocolate bar at 0.85
    Input 2:
  • 1 imported box of chocolates at 10.00
  • 1 imported bottle of perfume at 47.50
    Input 3:
  • 1 imported bottle of perfume at 27.99
  • 1 bottle of perfume at 18.99
  • 1 packet of headache pills at 9.75
  • 1 box of imported chocolates at 11.25

OUTPUT

    Output 1:
  • 1 book : 12.49
  • 1 music CD: 16.49
  • 1 chocolate bar: 0.85
  • Sales Taxes: 1.50
  • Total: 29.83
    Output 2:
  • 1 imported box of chocolates: 10.50
  • 1 imported bottle of perfume: 54.65
  • Sales Taxes: 7.65
  • Total: 65.15
    Output 3:
  • 1 imported bottle of perfume: 32.19
  • 1 bottle of perfume: 20.89
  • 1 packet of headache pills: 9.75
  • 1 imported box of chocolates: 11.85
  • Sales Taxes: 6.70
  • Total: 74.68

Overview

I created two versions of the same iOS app: the first written using Objective-C, the second one written using Swift. The app is a prototype with a simple UI that could be used to test visually that the apps meet the requirments of the problem (see animation below).The three input data set contained in the problem text are also contained in a test suit (SalesTaxesTests.m) that could be used to verify the correctness of the code.


Tools

I used Travis-CI as Continuous Integration service. I used OCMock as Mocking framework for the test implementation (only Objective-C version). I used codecov as Code Coverage service (only Objective-C version). Code coverage has also been activated in XCode scheme. In this way it is possible to see code coverage live inside the IDE (see screenshot below).

All code has been commented using XCode documentation syntax. It is possible to access to the documentation of a class or method using the shorcut Alt + Left Mouse Click on any name (see screenshot below).

About

💵 💳 An iOS implementation of the Sales Taxes technical interview problem.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published