tests/testthat/test-regression-tests.R

context("Regression tests for issues that happened in the past")

test_that("MOQ Error does not happen again when moq lines has one row", {
  options(mknapsack.solver = "cbc")
  units.combined <-
    structure(
      list(
        sku = c(
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "AAA",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "BBB",
          "CCC",
          "DDD",
          "EEE",
          "FFF",
          "III",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK",
          "KKK"
        ),
        utility = c(
          59998.5519230769,
          59998.5519230769,
          59998.5519230769,
          59998.5519230769,
          59998.5519230769,
          59998.5519230769,
          59998.5519230769,
          59998.5519230769,
          59998.5519230769,
          59998.5519230766,
          59998.5519230538,
          59998.5519221785,
          59998.5519009688,
          59998.5515536135,
          59998.5474972447,
          59998.5122251185,
          59998.2755949351,
          59997.0142106363,
          59991.5377153306,
          59971.7616949502,
          59911.2917982081,
          59752.2868170142,
          59387.8906222195,
          58651.4936778548,
          57325.6538810416,
          55179.5253047719,
          52030.9937746193,
          47814.3009149636,
          42625.7355104721,
          36725.6945645825,
          30492.992851614,
          24347.0716513138,
          18665.2334834425,
          13720.520752768,
          9654.2757718684,
          6483.0420157338,
          4128.98634245977,
          2459.39738547864,
          1323.11407945474,
          576.977527912717,
          100.636185964195,
          59998.5519230769,
          59998.5519230769,
          59998.5519230769,
          59998.5519230769,
          59998.5519230769,
          59998.5519230769,
          59998.5519230769,
          59998.5519230769,
          59998.5519230769,
          59998.5519230759,
          59998.5519230174,
          59998.5519210376,
          59998.5518780267,
          59998.5512384183,
          59998.5443807026,
          59998.4891003571,
          59998.1423608205,
          59996.4011199183,
          59989.2309433772,
          59964.5236552979,
          59892.0340224207,
          59708.2228962261,
          59300.1441745521,
          58497.8934403734,
          57087.3375195219,
          54849.6468760472,
          51621.6992155195,
          47357.9563303218,
          42168.744724676,
          36316.8603282089,
          30171.0328447566,
          24132.0608307313,
          18556.5641957053,
          13700.9513230364,
          9697.43778479428,
          6561.21763834759,
          4218.82065706796,
          2544.65550042815,
          1394.83451702943,
          632.01195098921,
          139.614499383264,
          -104.533740249749,
          350.036552941436,
          -449.027291255492,
          26.5595503976877,
          3450.92018679055,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846154,
          51.3202153846153,
          51.320215384611,
          51.3202153844987,
          51.3202153822159,
          51.3202153461669,
          51.3202148970666,
          51.320210420568,
          51.3201742583515,
          51.3199347053684,
          51.318619263814,
          51.3125715681117,
          51.2890777185211,
          51.2112971809364,
          50.9900950595883,
          50.4456777456516,
          49.2779930443495,
          47.0809796796786,
          43.4318651300966,
          38.0486472127056,
          30.9523653802373,
          22.5408887321951,
          13.514138464385,
          4.67330114923893,
          -3.31043905614828
        ),
        volume = c(
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          0.03675,
          21.2589,
          21.0912,
          31.6478999999999,
          20,
          16.632,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124,
          0.376124
        ),
        units = c(
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          150L,
          150L,
          150L,
          100L,
          100L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L
        ),
        moq = c(
          1L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          1L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          1L,
          1L,
          1L,
          1L,
          1L,
          1L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L,
          0L
        )
      ),
      row.names = c(NA,-138L),
      class = c("data.table",
                "data.frame")
    )
  res <- mknapsack::mknapsack(
    units.combined$utility,
    units.combined$volume,
    units.combined$moq,
    65
  )

  expect_true(length(res) > 0)

})
madedotcom/mknapsack documentation built on Jan. 19, 2020, 1:52 p.m.