Created
December 10, 2017 15:20
-
-
Save hmlON/ef5a4cb620e1586d945ed9f0a2e30021 to your computer and use it in GitHub Desktop.
Java test parser in Ruby
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "csv" | |
# filename = "Statement.java" | |
# filename = "Conditional.java" | |
filename = "BasicPath.java" | |
MONTH_TO_NUM = { | |
"JANUARY" => "01", | |
"FEBRUARY" => "02", | |
"MARCH" => "03", | |
"APRIL" => "04", | |
"MAY" => "05", | |
"OCTOBER" => "10", | |
"NOVEMBER" => "11", | |
"DECEMBER" => "12" | |
} | |
def parse_date(line) | |
args = line.split("(").last.split(")").first.split(", ") | |
year = args[0] | |
month_name = args[1].split(".")[1] | |
month = MONTH_TO_NUM[month_name] | |
day = args[2] | |
"#{day}.#{month}.#{year}" | |
end | |
def parse_order(line) | |
args = line.split("(").last.split(")").first.split(", ") | |
product_type = args[0].split(".").last | |
quantity = args[1] | |
initial_price = args[2].to_f | |
price = if rand > 0.6 | |
(initial_price - initial_price * 0.1 + rand(initial_price * 0.2)).round.abs | |
else | |
initial_price | |
end | |
gift_wrap = args[3] | |
[product_type, gift_wrap, quantity, price] | |
end | |
def parse_shipment(line) | |
args = line.split("(").last.split(")").first.split(", ") | |
args[0].split(".").last | |
end | |
csv = [] | |
csv_line = [] | |
File.open(filename).each do |line| | |
if line.strip.start_with?("calendar.set") | |
csv_line << parse_date(line) | |
end | |
if line.strip.start_with?("order.addOrderItem") | |
csv_line += parse_order(line) | |
end | |
if line.strip.start_with?("order.setShipment") | |
csv_line << parse_shipment(line) | |
end | |
if csv_line.length == 10 | |
csv << csv_line | |
csv_line = [] | |
end | |
end | |
csv = csv.shuffle | |
CSV.open("./#{filename}.csv", "wb") do |out| | |
out << ["Date", "ProductType1", "GiftWrap1", "Quantity1", "Price1", "ProductType2", "GiftWrap2", "Quantity2", "Price2", "ShipmentType"] | |
csv.each { |line| out << line } | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package whiteBox; | |
import deposit.FixedTotalDeposit; | |
import deposit.TotalDeposit; | |
import order.Order; | |
import order.OrderItem; | |
import order.ProductType; | |
import order.ShipmentType; | |
import org.junit.Test; | |
import java.util.Calendar; | |
import static org.junit.Assert.assertTrue; | |
/** | |
* Created by vashanin on 06.12.17. | |
*/ | |
public class Statement { | |
Calendar calendar = Calendar.getInstance(); | |
@Test | |
public void whiteBoxStatement0() { | |
calendar.set(2017, Calendar.OCTOBER, 10); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.WATCHES, 1, 250, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.DOMESTIC); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement1() { | |
calendar.set(2017, Calendar.OCTOBER, 10); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.BOOKS, 1, 20, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.DOMESTIC_EXPEDITED); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement2() { | |
calendar.set(2017, Calendar.OCTOBER, 10); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.MUSIC, 1, 20, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.DOMESTIC_EXPEDITED); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement3() { | |
calendar.set(2017, Calendar.OCTOBER, 10); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.BOOKS, 2, 50, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement4() { | |
calendar.set(2017, Calendar.OCTOBER, 10); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.MUSIC, 2, 50, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement5() { | |
calendar.set(2017, Calendar.OCTOBER, 10); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.FURNITUREDECOR, 2, 50, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement6() { | |
calendar.set(2018, Calendar.JANUARY, 05); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.ELECTRONICS, 1, 50, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.DOMESTIC); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement7() { | |
calendar.set(2018, Calendar.JANUARY, 20); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.JEWELRY, 2, 260, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.DOMESTIC); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement8() { | |
calendar.set(2018, Calendar.JANUARY, 20); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.BOOKS, 1, 30, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.DOMESTIC); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement9() { | |
calendar.set(2018, Calendar.JANUARY, 20); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.MUSIC, 1, 30, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.DOMESTIC); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement10() { | |
calendar.set(2018, Calendar.JANUARY, 20); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.CLOTHING, 1, 50, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.DOMESTIC); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement11() { | |
calendar.set(2018, Calendar.JANUARY, 20); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.VIDEO, 1, 50, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.DOMESTIC); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement12() { | |
calendar.set(2018, Calendar.JANUARY, 20); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.JEWELRY, 150, 5, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement13() { | |
calendar.set(2018, Calendar.JANUARY, 20); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.ELECTRONICS, 1, 400, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement14() { | |
calendar.set(2018, Calendar.FEBRUARY, 23); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.CLOTHING, 1, 400, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement15() { | |
calendar.set(2018, Calendar.MAY, 30); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.VIDEO, 1, 400, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement16() { | |
calendar.set(2018, Calendar.JANUARY, 20); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.JEWELRY, 2, 5, false)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL_EXPEDITED); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement17() { | |
calendar.set(2018, Calendar.JANUARY, 20); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.BOOKS, 1, 20, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL_EXPEDITED); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement18() { | |
calendar.set(2018, Calendar.JUNE, 23); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.ELECTRONICS, 3, 15, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL_EXPEDITED); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement19() { | |
calendar.set(2018, Calendar.JUNE, 23); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.MUSIC, 1, 20, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL_EXPEDITED); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement20() { | |
calendar.set(2018, Calendar.JULY, 25); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.CLOTHING, 3, 40, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL_EXPEDITED); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement21() { | |
calendar.set(2018, Calendar.JULY, 25); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.FURNITUREDECOR, 1, 20, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL_EXPEDITED); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement22() { | |
calendar.set(2018, Calendar.JULY, 25); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.VIDEO, 3, 23, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL_EXPEDITED); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement23() { | |
calendar.set(2018, Calendar.FEBRUARY, 25); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.FURNITUREDECOR, 1, 30, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.DOMESTIC); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement24() { | |
calendar.set(2018, Calendar.MARCH, 01); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.JEWELRY, 1, 25, false)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.DOMESTIC_EXPEDITED); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement25() { | |
calendar.set(2018, Calendar.MARCH, 01); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.ELECTRONICS, 2, 200, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.DOMESTIC_EXPEDITED); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement26() { | |
calendar.set(2018, Calendar.MARCH, 01); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.VIDEO, 2, 200, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.DOMESTIC_EXPEDITED); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement27() { | |
calendar.set(2018, Calendar.MARCH, 01); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.WATCHES, 2, 20, false)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement28() { | |
calendar.set(2018, Calendar.MARCH, 01); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.WATCHES, 2, 850, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement29() { | |
calendar.set(2018, Calendar.MARCH, 01); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.WATCHES, 1, 0.9, false)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.INTERNATIONAL_EXPEDITED); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement30() { | |
calendar.set(2018, Calendar.MAY, 02); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.CLOTHING, 2, 200, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.DOMESTIC_EXPEDITED); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement31() { | |
calendar.set(2018, Calendar.OCTOBER, 11); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.FURNITUREDECOR, 1, 20, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.DOMESTIC_EXPEDITED); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
@Test | |
public void whiteBoxStatement32() { | |
calendar.set(2018, Calendar.NOVEMBER, 20); | |
Order order = new Order(); | |
order.addOrderItem(new OrderItem(ProductType.WATCHES, 1, 0.9, true)); | |
order.setDate(calendar.getTime()); | |
order.setShipment(ShipmentType.DOMESTIC_EXPEDITED); | |
TotalDeposit deposit = new TotalDeposit(order); | |
FixedTotalDeposit fixedDeposit = new FixedTotalDeposit(order); | |
assertTrue(Math.abs(deposit.getTotalDeposit() - fixedDeposit.getTotalDeposit()) < 1e-10); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment