Module:Sandbox/KickahaOta/QueryDistances/testcases

From Path of Exile Wiki
Jump to navigation Jump to search

This module implements the test cases for Module:Sandbox/KickahaOta/QueryDistances.

N2 tests failed.

Name Expected Actual
YesY test_ascendancy
N test_marauder / Unexpected row count -- may just mean that data has changed 391 430
YesY test_targets
N test_witch / Unexpected row count -- may just mean that data has changed 335 342
local m_calculate = require('Module:Sandbox/KickahaOta/QueryDistances') -- the module to be tested
local m_cargo = require('Module:Cargo')
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()

function suite:test_ascendancy(test_calc, test_remove)
    local results = m_cargo.query(
        {'passive_skills'},
        {'passive_skills.name', 'passive_skills.id', 'passive_skills.connections', 'passive_skills.ascendancy_class', 'CONCAT("")=distance'},
        {where='passive_skills.ascendancy_class="Berserker"', order_by='passive_skills.id'}
    )
    local calc_args = {
        id_field = "passive_skills.id",
        connection_ids_field="passive_skills.connections",
        connection_ids_delimiter=",",
        origin_row_id="AscendancyBerserkerStart",
        distance_field="distance",
        test = test_calc or false,
        test_remove = test_remove or false,
    }
    local calc_results = m_calculate.calculate_distances(results, calc_args)
	self:assertEquals(15, #calc_results, "Unexpected row count -- may just mean that data has changed")
	return calc_results
end

function suite:test_witch(test_calc, test_remove)
    local results = m_cargo.query(
        {'passive_skills'},
        {'passive_skills.name', 'passive_skills.id', 'passive_skills.connections', 'passive_skills.ascendancy_class', 'CONCAT("")=distance'},
        {where='id NOT LIKE "%jewel_slot%" AND connections HOLDS LIKE "%" AND (ascendancy_class="" OR ascendancy_class IS NULL)', order_by='passive_skills.id'}
    )
    local calc_args = {
        id_field = "passive_skills.id",
        connection_ids_field="passive_skills.connections",
        connection_ids_delimiter=",",
        origin_row_id="witch595",
        distance_field="distance",
        test = test_calc or false,
        test_remove = test_remove or false,
        max_distance = 10,
        remove_nil_distances=true,
        remove_origin=true,
    }
    local calc_results = m_calculate.calculate_distances(results, calc_args)
	-- Failure may just mean that the passive skill tree has changed
	self:assertEquals(335, #calc_results, "Unexpected row count -- may just mean that data has changed")
	return calc_results
end

function suite:test_marauder(test_calc, test_remove)
    local results = m_cargo.query(
        {'passive_skills'},
        {'passive_skills.name', 'passive_skills.id', 'passive_skills.connections', 'passive_skills.ascendancy_class', 'passive_skills.is_notable', 'CONCAT("")=distance'},
        {where='id NOT LIKE "%jewel_slot%" AND connections HOLDS LIKE "%" AND (ascendancy_class="" OR ascendancy_class IS NULL)', order_by='passive_skills.id'}
    )
    local calc_args = {
        id_field = "passive_skills.id",
        connection_ids_field="passive_skills.connections",
        connection_ids_delimiter=",",
        origin_row_id="marauder594",
        distance_field="distance",
        test = test_calc or false,
        test_remove = test_remove or false,
        max_distance = 30,
        field_required_values = {
            ["passive_skills.is_notable"] = 1,
        }
    }
    local calc_results = m_calculate.calculate_distances(results, calc_args)
	self:assertEquals(391, #calc_results, "Unexpected row count -- may just mean that data has changed")
	return calc_results
end

function suite:test_targets(test_calc, test_remove)
    local results = m_cargo.query(
        {'passive_skills'},
        {'passive_skills.name', 'passive_skills.id', 'passive_skills.connections', 'passive_skills.ascendancy_class', 'passive_skills.is_notable', 'CONCAT("")=distance'},
        {where='id NOT LIKE "%jewel_slot%" AND connections HOLDS LIKE "%" AND (ascendancy_class="" OR ascendancy_class IS NULL)', order_by='passive_skills.id'}
    )
    local calc_args = {
        id_field = "passive_skills.id",
        connection_ids_field="passive_skills.connections",
        connection_ids_delimiter=",",
        origin_row_id="melee_damage687",
        distance_field="distance",
        test = test_calc or false,
        test_remove = test_remove or false,
        max_distance = 30,
        target_ids = { "marauder594", "witch595", "ranger596", "duelist597", "templar598", "six704", "seven1490" },
    }
    local calc_results = m_calculate.calculate_distances(results, calc_args)
	self:assertEquals(7, #calc_results, "Unexpected row count -- may just mean that data has changed")
	return calc_results
end

return suite