tests/testthat/test-pricesensitivitymeter.R

context("Price sensitivity meter")

dat <- as.matrix(data.frame(`Too cheap` = c(1, 0.5, 0.75, 0.5, 0.25, 0.5, 0.5, 1, 1, 0.1,
                                            1, 0.5, 1, 0, 0.5, 0.25, 1, 2, 0.75, 0.25,
                                            0.75, 0.5, 0.75, 0.25, 1.5, 0.2),
                            `Cheap` = c(1, 2.1, 2, 2, 0.75, 2,0.5, 1.5, 4, 1.5,
                                        0.5, 3.5, 0.9, 2.5, 0.8, 3, 0.25, 5, 2.5, 1,
                                        1, 1, 1, 2, 1, 1),
                            'Expensive' = c(2, 2.8, 5, 2.5, 1.5, 4, 1.5, 2, 5.5, 3,
                                            1.7, 7, 2, 3.5, 1.1, 5, 1, 6, 3, 3,
                                            2, 1.5, 1.5, 3, 1.5, 2.5),
                            'Too expensive' = c(6, 2.5, 3, 2, 2, 3, 5, 3.5, 8, 1.5,
                                                6, 1.2, 4.5, 3, 8, 2, 3, 6, 2, 2,
                                                7, 5, 8, 7, 3, 5)))

data.with.likelihoods <- structure(c(8.13, 8.34, 8.65, 8.84, 8.09, 7.83, 6.47, 7.55, 8.25,
                                     10.13, 7.85, 6.77, 7.3, 8.86, 5.19, 7.05, 7.94, 10.16, 6.62,
                                     7.98, 8.33, 8.75, 10.5, 6.49, 8.59, 5.75, 9.86, 8.06, 6.44, 8.23,
                                     6.43, 9.05, 9.14, 6.83, 6.03, 7.44, 7.87, 7.61, 8.33, 8.55, 9.36, 
                                     8.6, 7.78, 7.85, 7.51, 7.9, 5.2, 8.42, 7.24, 7.8, 8.73, 6.18,
                                     6.7, 8.52, 8.01, 9.96, 6.58, 7.98, 9.8, 7.86, 8.47, 7.27, 12.63,
                                     8.05, 6.15, 8.04, 8.7, 8.25, 8.47, 6.99, 8.07, 8.14, 9.26, 10.73,
                                     8.09, 9.32, 9.94, 8.01, 10.05, 10.3, 7.71, 5.17, 6.81, 5.96,
                                     6.47, 10.06, 6.6, 7.97, 5.14, 9.24, 7.5, 9.41, 8.53, 5.97, 7.09,
                                     9.14, 11.46, 8.31, 8.15, 8.4, 8.57, 8.33, 9.37, 6.21, 7, 6.23,
                                     4.65, 7.85, 9.16, 7.88, 5.78, 8.57, 5.6, 7.19, 7.09, 8.02, 8.03,
                                     6.93, 7.76, 7.4, 7.13, 8.35, 9.55, 8.66, 10.09, 6.67, 10.1, 8.39,
                                     6.57, 9.16, 10.09, 7.68, 7.2, 8.98, 8.69, 9.94, 6.84, 5.54, 8.62, 
                                     8.15, 9.58, 8.36, 6.97, 6.88, 6.46, 8.38, 8.42, 10.03, 8.57,
                                     9.65, 8.4, 7.01, 7.39, 7.93, 8.93, 9.14, 8.64, 8.1, 6.76, 7.88,
                                     9.24, 8.57, 9.63, 7.79, 5.47, 9.67, 7.93, 9.11, 9.9, 6.82, 6.68,
                                     8.02, 6.86, 7.2, 7.47, 7.9, 9.08, 6.5, 7.31, 8.86, 8.5, 8.94, 
                                     7.44, 5.45, 9.06, 8.55, 8.02, 7.96, 7.53, 7.11, 7.16, 9.16, 6.14,
                                     7.48, 7.82, 10.65, 6.92, 5.37, 6.5, 10.6, 9.56, 7.66, 8.86, 9.1,
                                     7.15, 6.84, 8.42, 7.4, 9.84, 4.52, 9.18, 8.4, 7.55, 8.95, 9.95,
                                     6.39, 8.52, 4.51, 6.47, 7.8, 5.33, 7.7, 7.29, 7.44, 9.87, 5.58,
                                     6.63, 7.97, 8.25, 6.56, 13.68, 8.58, 9.35, 7.51, 9.6, 6.52, 8.57,
                                     8.95, 8.04, 7.77, 6.83, 11.85, 9.41, 8.56, 11.88, 7.12, 5.06,
                                     8.9, 9.43, 7.71, 10.07, 10.45, 11.98, 9.98, 15.72, 14.92, 11.74,
                                     10.06, 11.24, 9.18, 13.2, 6.57, 14.72, 13.53, 12.27, 12.21, 12.22,
                                     10.86, 11.93, 13.89, 12.7, 12.22, 11.04, 10.84, 13.61, 13.27,
                                     15.95, 14.9, 9.92, 11.18, 13.57, 10.88, 11.71, 14.43, 12.45,
                                     12.42, 11.31, 10.94, 13.16, 13.55, 11.36, 11.63, 10.84, 9.57,
                                     13.24, 13.38, 13.07, 9.9, 12.79, 14.3, 10.18, 11.16, 13.71, 14.16,
                                     11.76, 11.24, 12.68, 13.26, 17.25, 7.2, 12.97, 9.28, 18.38, 14.8,
                                     13.4, 12.93, 12.79, 11.21, 12.25, 11.74, 7.82, 10.63, 14.88,
                                     11.33, 12.62, 13.6, 11.92, 10.7, 12.32, 11.33, 11.67, 9.3, 13.53,
                                     12.93, 9.91, 10.07, 14.32, 9.03, 14.19, 12.93, 11.71, 15.06,
                                     10.3, 10.09, 14.43, 13.62, 14.68, 11.81, 11.73, 12.68, 11.78,
                                     8.85, 11.57, 14.19, 11.77, 10.09, 9.54, 10.83, 13.49, 9.69, 10.77,
                                     12.93, 9.75, 9.76, 13.96, 15.6, 10.85, 11.9, 10.57, 13.41, 10.43,
                                     11.54, 12.74, 10.18, 10.93, 9.33, 12.77, 13.36, 10.54, 13.88,
                                     12.05, 11.91, 13.08, 11.15, 13.21, 15.36, 12.77, 11.13, 7.98, 
                                     11.52, 11.39, 15.54, 12.8, 11.63, 13.11, 9.34, 11.74, 14.11, 
                                     11.96, 9.36, 14.94, 14.5, 9.23, 12.1, 12.03, 6.16, 9.37, 10.44, 
                                     11.56, 13.61, 11.39, 12.18, 16.22, 9.73, 9.9, 12.31, 12.59, 12.24, 
                                     11.26, 6.56, 9.93, 16.25, 12.54, 11.38, 11.11, 9.04, 14.07, 10.88, 
                                     10.79, 10.92, 15.5, 11.06, 11.2, 14.08, 10.25, 13.59, 11.35, 
                                     11.83, 15.23, 13.8, 9.87, 14.71, 11.21, 11.4, 12.06, 14.92, 10, 
                                     7.44, 11.23, 10.55, 12.55, 10.83, 9.3, 13.32, 12.29, 12, 12.98, 
                                     12.24, 14.53, 10.39, 14.28, 12.46, 12.85, 12.86, 16.78, 11.04, 
                                     13.18, 9.26, 13.38, 13.57, 13.86, 10.46, 10.93, 11.8, 10.18, 
                                     13.25, 9.7, 12.18, 8.86, 12.45, 11.03, 12.75, 10.25, 15.46, 14.25, 
                                     12.83, 15.15, 14.25, 13.12, 9.61, 13.37, 13.21, 14.99, 12.67, 
                                     12.28, 12.26, 8.64, 13.22, 12.54, 13.87, 12.65, 11.07, 12.24, 
                                     15.34, 10.93, 11.96, 13.3, 12.62, 12.69, 14.02, 12.83, 13.23, 
                                     13.04, 12.78, 11.95, 13.89, 12.75, 12.16, 11.68, 13.7, 11.38, 
                                     12.82, 13.86, 12.47, 13.96, 12.07, 13.74, 11.4, 12.56, 13.3, 
                                     13.66, 13.8, 13.28, 11.77, 13.24, 12.34, 13, 13.07, 14.26, 13.64, 
                                     14.45, 12.21, 15.08, 11.57, 15.21, 12.49, 10.88, 13.72, 12.86, 
                                     11.74, 12.52, 12.29, 13.61, 13.73, 13.37, 12.98, 15.33, 10.53, 
                                     12.68, 12.32, 13.33, 15.27, 14.51, 14.24, 11.11, 13.86, 12.36, 
                                     12.73, 15.5, 13.07, 11.88, 13.57, 10.68, 12.82, 13.88, 13.36, 
                                     14.01, 13.05, 12.41, 14.46, 11.64, 13.22, 13.8, 13.33, 11.92, 
                                     12.09, 12.29, 13.08, 13.09, 12.65, 11.6, 13.35, 14.95, 11.48,
                                     12.82, 13.62, 12.98, 12.03, 14.3, 13.32, 13.94, 12.08, 13.42, 
                                     10.61, 12.49, 11.88, 12.95, 13.41, 12.04, 13.28, 14.12, 13.34, 
                                     10.68, 13.43, 13.3, 12.42, 13.38, 14.12, 13.1, 12.53, 13.94, 
                                     13.25, 12.63, 13.59, 11.49, 12.86, 11.02, 12.68, 12.35, 12.89, 
                                     15.06, 13.31, 11.97, 12.65, 13.07, 12.23, 13, 14.44, 12.28, 13.84, 
                                     13.68, 11.44, 12.78, 12.45, 10.02, 13.93, 13.23, 13.28, 13.26, 
                                     13.07, 14.29, 14.33, 14.03, 12.01, 12.91, 14, 12.58, 14.81, 12.79, 
                                     13.16, 12.97, 12.94, 12.08, 12.69, 12.64, 13.82, 15.13, 12.33, 
                                     13.61, 12.88, 12.57, 11.8, 14.32, 11.24, 13.77, 13.82, 13.55, 
                                     12.12, 13.26, 13.81, 12.8, 13.49, 15.53, 13.2, 12.73, 13.22, 
                                     12.82, 11.31, 12.07, 13.11, 10.78, 12.71, 11.55, 12.83, 12.66, 
                                     11.7, 13.12, 14.18, 14.19, 13.01, 12.8, 12.61, 14.3, 11.54, 13.06, 
                                     14.55, 12.96, 12.92, 12.45, 12.09, 12.95, 13.97, 14.76, 13.39, 
                                     11.95, 12.57, 12.07, 12.55, 13.85, 12.97, 12.4, 12.48, 13.41, 
                                     12.61, 13.42, 14.69, 13.46, 12.21, 12.11, 12.15, 12.79, 11.65, 
                                     13.44, 12.62, 12.82, 12.94, 11.25, 12.15, 13.02, 12.66, 11.06, 
                                     13.48, 13.69, 13.53, 11.86, 13.82, 12.96, 13.62, 13.58, 15.13, 
                                     15.3, 16.31, 16.36, 15.25, 15.39, 14.84, 13.12, 14.87, 15.56, 
                                     15.55, 16.21, 14.3, 15.01, 14.4, 14.29, 14.83, 13.02, 14.5, 16.51, 
                                     14.71, 14.77, 15.82, 15.64, 14.21, 15.2, 14.19, 16.3, 13.59, 
                                     13.04, 15.8, 15.1, 15.04, 14.7, 15.88, 16.37, 15.02, 14.66, 14.08, 
                                     13.6, 15.33, 14.04, 13.81, 14.93, 16.03, 14.99, 14.78, 15.58, 
                                     14.54, 13.84, 14.57, 15.23, 12.89, 14.74, 16.94, 14.83, 14.91, 
                                     15.1, 13.24, 15.5, 14.18, 16.57, 16.39, 14.28, 14.44, 14.59, 
                                     16.66, 15.47, 13.14, 15.03, 14.69, 14.32, 14.49, 15.92, 14.9, 
                                     15.45, 16.17, 14.67, 13.88, 16.55, 14.77, 15.02, 14.38, 13.85, 
                                     13.93, 17.02, 15.56, 16.46, 14.27, 15.15, 15.26, 14.61, 15.56, 
                                     16.44, 16.06, 14.94, 15.08, 15.76, 14.99, 14.31, 14.69, 13.85, 
                                     15.26, 13.8, 14.38, 16.7, 16.49, 14.17, 15.18, 15.26, 14.1, 14.51, 
                                     14.81, 14.01, 13.81, 15.49, 15.71, 14.04, 14.62, 14.41, 13.21, 
                                     15.45, 15.14, 14.38, 15.29, 15.53, 15.98, 14.51, 15.2, 14.15, 
                                     13.58, 16.64, 15.37, 15.88, 14.22, 13.28, 15.36, 16.1, 13.73, 
                                     16.02, 16.22, 13.75, 16.85, 13.58, 14.92, 14.99, 17.05, 14.47, 
                                     15.42, 17.37, 13.13, 15.22, 14.86, 15.13, 14.85, 14.75, 15.76, 
                                     13.6, 15.54, 13.83, 14.32, 15.06, 14.09, 14.26, 15.3, 16.54, 
                                     15.72, 15.62, 16.04, 16.75, 13.51, 14.65, 17.68, 16.18, 15.06, 
                                     15.56, 14.26, 14.36, 14.91, 16.58, 15.32, 15.81, 14.18, 14.73, 
                                     13.27, 16.2, 14.81, 14.7, 13.81, 15.09, 16.93, 15.98, 14.34, 
                                     16.6, 15.27, 15.47, 15.7, 15.11, 16.19, 15.18, 15.72, 15.53, 
                                     16.16, 13.99, 14.12, 15.16, 13.89, 13.39, 15.69, 15.35, 14.73, 
                                     15.03, 16.12, 14.11, 15.12, 14.07, 15.17, 19.33, 15.19, 14.35, 
                                     14.05, 17.75, 14.63, 14.06, 14.19, 13.84, 16.07, 16.87, 16.31, 
                                     14.75, 14.51, 15.09, 14.93, 13.91, 15.65, 17.23, 14.66, 12.86, 
                                     15.01, 15.52, 16.06, 15.74, 16.29, 15.66, 15.77, 14.87, 13.9, 
                                     17.55, 16.48, 13.55, 14.73, 3, 3, 3, 2, 2, 5, 2, 3, 5, 5, 4, 
                                     5, 5, 5, 4, 4, 4, 5, 5, 3, 1, 1, 4, 1, 5, 4, 5, 5, 2, 4, 3, 4, 
                                     4, 2, 2, 4, 5, 5, 3, 4, 1, 5, 4, 4, 1, 5, 4, 5, 4, 5, 1, 5, 3, 
                                     4, 5, 5, 1, 5, 4, 4, 1, 3, 3, 2, 2, 5, 5, 4, 4, 5, 4, 4, 2, 5, 
                                     1, 5, 3, 2, 1, 4, 5, 5, 3, 4, 3, 5, 1, 4, 4, 1, 1, 5, 4, 5, 5, 
                                     4, 1, 1, 4, 4, 3, 3, 5, 4, 4, 2, 5, 2, 4, 4, 3, 5, 5, 4, 5, 4, 
                                     2, 3, 3, 5, 3, 5, 5, 5, 5, 5, 3, 4, 5, 2, 4, 5, 4, 2, 1, 4, 5, 
                                     4, 5, 1, 4, 2, 5, 3, 4, 4, 3, 4, 4, 4, 3, 1, 4, 5, 5, 3, 2, 3, 
                                     5, 4, 5, 5, 4, 5, 4, 3, 3, 3, 1, 4, 4, 5, 4, 5, 3, 4, 3, 5, 4, 
                                     2, 4, 4, 3, 4, 1, 3, 5, 5, 4, 4, 1, 5, 4, 4, 1, 5, 5, 4, 2, 4, 
                                     3, 5, 4, 4, 1, 4, 4, 1, 5, 5, 4, 5, 3, 4, 4, 1, 5, 1, 5, 2, 3, 
                                     2, 5, 4, 3, 1, 4, 4, 5, 1, 5, 4, 4, 2, 4, 5, 4, 3, 5, 1, 3, 3, 
                                     1, 1, 4, 4, 4, 4, 3, 5, 1, 2, 2, 2, 1, 2, 1, 2, 1, 3, 1, 2, 4, 
                                     1, 1, 4, 3, 2, 1, 5, 1, 1, 2, 2, 4, 1, 5, 1, 2, 5, 2, 1, 2, 2, 
                                     2, 2, 2, 2, 1, 1, 1, 5, 4, 3, 3, 2, 1, 2, 3, 2, 5, 1, 1, 2, 2, 
                                     2, 1, 1, 1, 3, 3, 5, 5, 2, 4, 1, 2, 3, 4, 2, 4, 2, 5, 3, 1, 5, 
                                     3, 1, 3, 2, 2, 1, 4, 3, 4, 4, 2, 2, 2, 1, 1, 1, 3, 1, 3, 2, 2, 
                                     1, 1, 2, 3, 2, 5, 4, 1, 2, 4, 3, 5, 2, 5, 1, 5, 1, 1, 2, 1, 2, 
                                     1, 3, 1, 1, 2, 1, 5, 4, 5, 4, 2, 1, 5, 3, 2, 3, 1, 1, 2, 4, 2, 
                                     1, 4, 5, 1, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 
                                     3, 3, 2, 1, 1, 2, 1, 3, 2, 2, 1, 1, 5, 1, 2, 4, 3, 2, 1, 2, 4, 
                                     2, 2, 1, 2, 2, 1, 4, 2, 2, 1, 1, 1, 4, 2, 1, 2, 3, 4, 3, 3, 2, 
                                     3, 2, 2, 2, 3, 2, 4, 1, 4, 1, 2, 5, 3, 1, 3, 2, 3, 1, 1, 2, 4, 
                                     2, 3, 2, 1, 1, 4, 4, 3, 3, 3, 1, 2, 1, 2, 3, 4, 2, 1, 2, 3, 1, 
                                     3, 1, 2, 3, 3, 3), dim = c(250L, 6L), dimnames = list(c("1", 
                                     "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", 
                                     "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", 
                                     "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", 
                                     "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", 
                                     "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", 
                                     "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", 
                                     "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", 
                                     "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", 
                                     "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", 
                                     "101", "102", "103", "104", "105", "106", "107", "108", "109", 
                                     "110", "111", "112", "113", "114", "115", "116", "117", "118", 
                                     "119", "120", "121", "122", "123", "124", "125", "126", "127", 
                                     "128", "129", "130", "131", "132", "133", "134", "135", "136", 
                                     "137", "138", "139", "140", "141", "142", "143", "144", "145", 
                                     "146", "147", "148", "149", "150", "151", "152", "153", "154", 
                                     "155", "156", "157", "158", "159", "160", "161", "162", "163", 
                                     "164", "165", "166", "167", "168", "169", "170", "171", "172", 
                                     "173", "174", "175", "176", "177", "178", "179", "180", "181", 
                                     "182", "183", "184", "185", "186", "187", "188", "189", "190", 
                                     "191", "192", "193", "194", "195", "196", "197", "198", "199", 
                                     "200", "201", "202", "203", "204", "205", "206", "207", "208", 
                                     "209", "210", "211", "212", "213", "214", "215", "216", "217", 
                                     "218", "219", "220", "221", "222", "223", "224", "225", "226", 
                                     "227", "228", "229", "230", "231", "232", "233", "234", "235", 
                                     "236", "237", "238", "239", "240", "241", "242", "243", "244", 
                                     "245", "246", "247", "248", "249", "250"), c("toocheap", "cheap",
                                     "expensive", "tooexpensive", "pi_cheap", "pi_expensive")))


test_that("PSM",
{
    expect_warning(PriceSensitivityMeter(dat, check.prices.ordered = TRUE),
                   "should be supplied in increasing order")
    dat[5,1] <- NA
    dat[6,4] <- NA
    expect_error(PriceSensitivityMeter(dat), NA)

    dat.missing <- cbind(dat[,1:3], 'Very expensive' = rep(NA, NROW(dat)))
    expect_warning(PriceSensitivityMeter(dat.missing), "Missing values have been omitted")
})

fake <- data.frame(A = 1:10, B = (1:10) + 1, C = (1:10) + 2, D = (1:10) + 3)
test_that("Check proportions",
{
   psm0 <- PriceSensitivityMeter(fake)
   expect_equal(attr(psm0, "ChartData")[,1], c((10:1)/10, 0.0, 0.0, 0.0), check.attributes = FALSE)
   psm1 <- PriceSensitivityMeter(fake, resolution = 0.1)
   expect_equal(attr(psm1, "ChartData")[,3],
           c(`1` = 0, `1.1` = 0, `1.2` = 0, `1.3` = 0, `1.4` = 0, `1.5` = 0,
           `1.6` = 0, `1.7` = 0, `1.8` = 0, `1.9` = 0, `2` = 0, `2.1` = 0,
           `2.2` = 0, `2.3` = 0, `2.4` = 0, `2.5` = 0, `2.6` = 0, `2.7` = 0,
           `2.8` = 0, `2.9` = 0, `3` = 0.1, `3.1` = 0.1, `3.2` = 0.1, `3.3` = 0.1,
           `3.4` = 0.1, `3.5` = 0.1, `3.6` = 0.1, `3.7` = 0.1, `3.8` = 0.1,
           `3.9` = 0.1, `4` = 0.2, `4.1` = 0.2, `4.2` = 0.2, `4.3` = 0.2,
           `4.4` = 0.2, `4.5` = 0.2, `4.6` = 0.2, `4.7` = 0.2, `4.8` = 0.2,
           `4.9` = 0.2, `5` = 0.3, `5.1` = 0.3, `5.2` = 0.3, `5.3` = 0.3,
           `5.4` = 0.3, `5.5` = 0.3, `5.6` = 0.3, `5.7` = 0.3, `5.8` = 0.3,
           `5.9` = 0.3, `6` = 0.4, `6.1` = 0.4, `6.2` = 0.4, `6.3` = 0.4,
           `6.4` = 0.4, `6.5` = 0.4, `6.6` = 0.4, `6.7` = 0.4, `6.8` = 0.4,
           `6.9` = 0.4, `7` = 0.5, `7.1` = 0.5, `7.2` = 0.5, `7.3` = 0.5,
           `7.4` = 0.5, `7.5` = 0.5, `7.6` = 0.5, `7.7` = 0.5, `7.8` = 0.5,
           `7.9` = 0.5, `8` = 0.6, `8.1` = 0.6, `8.2` = 0.6, `8.3` = 0.6,
           `8.4` = 0.6, `8.5` = 0.6, `8.6` = 0.6, `8.7` = 0.6, `8.8` = 0.6,
           `8.9` = 0.6, `9` = 0.7, `9.1` = 0.7, `9.2` = 0.7, `9.3` = 0.7,
           `9.4` = 0.7, `9.5` = 0.7, `9.6` = 0.7, `9.7` = 0.7, `9.8` = 0.7,
           `9.9` = 0.7, `10` = 0.8, `10.1` = 0.8, `10.2` = 0.8, `10.3` = 0.8,
           `10.4` = 0.8, `10.5` = 0.8, `10.6` = 0.8, `10.7` = 0.8, `10.8` = 0.8,
           `10.9` = 0.8, `11` = 0.9, `11.1` = 0.9, `11.2` = 0.9, `11.3` = 0.9,
           `11.4` = 0.9, `11.5` = 0.9, `11.6` = 0.9, `11.7` = 0.9, `11.8` = 0.9,
           `11.9` = 0.9, `12` = 1, `12.1` = 1, `12.2` = 1, `12.3` = 1, `12.4` = 1,
           `12.5` = 1, `12.6` = 1, `12.7` = 1, `12.8` = 1, `12.9` = 1, `13` = 1)
         )
    psm2 <- PriceSensitivityMeter(fake, weights = 1:10)
    expect_equal(attr(psm2, "ChartData")[,2],
        c(`1` = 1, `2` = 1, `3` = 0.981818181818182, `4` = 0.945454545454545,
        `5` = 0.890909090909091, `6` = 0.818181818181818, `7` = 0.727272727272727,
        `8` = 0.618181818181818, `9` = 0.490909090909091, `10` = 0.345454545454545,
        `11` = 0.181818181818182, `12` = 0, `13` = 0)
    )
})

test_that("PSM with two axes",
{
    expect_error(PriceSensitivityMeter(data.with.likelihoods, output = "Likelihood to buy and Revenue",
            currency = "€", y2.tick.prefix = "(€", y2.tick.suffix = ")", 
            y2.tick.font.family = "Courier New", y2.tick.font.color = "#0000FF",
            y2.title.font.family = "Courier New", y2.title.font.color = "#0000FF",
            y2.bounds.minimum = 0.5, y2.bounds.maximum = 5, y2.title = "R"), NA)
})
NumbersInternational/flipStartup documentation built on June 9, 2025, 9 a.m.