{"id":461,"date":"2009-09-27T16:52:51","date_gmt":"2009-09-27T15:52:51","guid":{"rendered":"http:\/\/mehm.net\/blog\/?p=461"},"modified":"2009-09-27T16:52:51","modified_gmt":"2009-09-27T15:52:51","slug":"persona-3-fes-calculator-testing","status":"publish","type":"post","link":"https:\/\/mehm.net\/blog\/?p=461","title":{"rendered":"Persona 3 FES Calculator &#8211; Testing"},"content":{"rendered":"<p>With this small <a href=\"http:\/\/mehm.net\/blog\/?p=190\">project<\/a> now about to be finished, I want to describe the way in which I tested the program, before moving on to newer projects (something more in the game-creation way instead of analyzing game outputs&#8230;).<\/p>\n<p>One obvious way of testing if the tool is even remotely doing what it is supposed to do is by loading a save game in the game and testing out some combinations that the tool calculated. Another way is to do the test more automated: get a list of possible fusions, and test all of them against the fusion algorithms in the tool. There are some choices to get such data. One is the <a href=\"http:\/\/www.neoseeker.com\/resourcelink.html?rlid=184195\">fusion list<\/a> by Tony Ye. Unfortunately, that list contains a lot of errors, for example, it lists a lot of fusions which are impossible, very visibly where Persona which require triangle spread fusions are created with normal spread according to the list. A better choice appears to be <a href=\"http:\/\/docs.google.com\/View?docid=dgqvh67s_3cqv67gcz\">eserikto&#8217;s<\/a> list of fusions.<\/p>\n<p>What I did was create a small class which can parse this list and which provides all combinations of Persona found in this list to a unit test. I then feed these combinations into my own fusion algorithms and check if the results differ. The effect was quite good, as I found several spots where my fusion logic didn&#8217;t match that of the game. In other cases, I found out that eserikto&#8217;s list also contains some errors, for example, several combinations which, according to the list, should result in Alilat, actually result in Skadi. Also, the same-arcana fusions required some fiddling until they resulted in the same Persona the game expects. The <a href=\"http:\/\/mehm.net\/blog\/?p=500\">recent finding<\/a> how save games can be modified also proved very useful to create target Persona with arbitrary levels for checking the results.<\/p>\n<p>Overall, I&#8217;m now quite confident that the tool will correctly predict the fusions. The insight I gained from this part of the project is that I should really go more into the direction of <a href=\"http:\/\/en.wikipedia.org\/wiki\/Test_driven_development\">test-driven development<\/a>, as writing that unit test showed a lot of small errors I hadn&#8217;t cought earlier.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With this small project now about to be finished, I want to describe the way in which I tested the program, before moving on to newer projects (something more in the game-creation way instead of analyzing game outputs&#8230;). One obvious way of testing if the tool is even remotely doing what it is supposed to [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[44,45],"_links":{"self":[{"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/461"}],"collection":[{"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=461"}],"version-history":[{"count":11,"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/461\/revisions"}],"predecessor-version":[{"id":562,"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/461\/revisions\/562"}],"wp:attachment":[{"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=461"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=461"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}