using System.Runtime.InteropServices;
namespace XFEEDToolBox.Plugin;
internal static unsafe partial class Navigation
{
static uint GalaxyAccountTradeSelfTest()
{
var memory=Platform.Allocate(8192);if(memory==0)return 0;
try
{
var fakeImage=unchecked((nuint)0x140000000UL);var manager=memory;var owner=memory+1024;var buckets=memory+2048;var node=memory+4096;
Write(manager,fakeImage+0x552EA70);Write(manager+8,fakeImage+0x552EAA0);Write(manager+0x58,fakeImage+0x552EBA0);
Write(manager+0x10,owner);Write(manager+0x110,buckets);Write(manager+0x118,2UL);Write(manager+0x128,1UL);Write(manager+0xD0,86400UL);
Write(buckets,node);Write(buckets+8,buckets+8);Write(node,buckets);Write(node+8,9007199254740995UL);Write(node+0x10,1700000000UL);
uint passed=0;
if(CopyGalaxyTradeDataManager(manager,owner,fakeImage,out var ttl,out var items)&&ttl==86400&&
items.Length==1&&items[0].systemAddress==9007199254740995&&items[0].timestamp==1700000000)passed|=1;
if(!new GalaxyAccountTradeData(1,2,ttl,items).complete)passed|=2;
Write(manager+0x128,16385UL);if(!CopyGalaxyTradeDataManager(manager,owner,fakeImage,out _,out _))passed|=4;
Write(manager+0x128,1UL);Write(node,node);if(!CopyGalaxyTradeDataManager(manager,owner,fakeImage,out _,out _))passed|=8;
Write(node,buckets);Write(node+8,0UL);if(!CopyGalaxyTradeDataManager(manager,owner,fakeImage,out _,out _))passed|=16;
Write(node+8,9007199254740995UL);Write(manager+0x10,owner+8);if(!CopyGalaxyTradeDataManager(manager,owner,fakeImage,out _,out _))passed|=32;
Write(manager+0x10,owner);Write(manager+0x118,65537UL);if(!CopyGalaxyTradeDataManager(manager,owner,fakeImage,out _,out _))passed|=64;
Write(manager+0x118,2UL);Write(manager+0x128,0UL);Write(buckets,buckets);
if(CopyGalaxyTradeDataManager(manager,owner,fakeImage,out ttl,out items)&&items.Length==0&&
!new GalaxyAccountTradeData(1,2,ttl,items).complete)passed|=128;
return passed;
}
finally{Platform.Free(memory);}
}
#if PLUGIN_NAVIGATION
[UnmanagedCallersOnly(EntryPoint="XFENavigationGalaxyTradeDataSelfTest")]
internal static uint ExportGalaxyAccountTradeSelfTest()=>RunTest(GalaxyAccountTradeSelfTest);
#endif
}
using System.Runtime.InteropServices;
namespace XFEEDToolBox.Plugin;
internal static unsafe partial class Navigation
{
static uint GalaxyAccountTradeSelfTest()
{
var memory=Platform.Allocate(8192);if(memory==0)return 0;
try
{
var fakeImage=unchecked((nuint)0x140000000UL);var manager=memory;var owner=memory+1024;var buckets=memory+2048;var node=memory+4096;
Write(manager,fakeImage+0x552EA70);Write(manager+8,fakeImage+0x552EAA0);Write(manager+0x58,fakeImage+0x552EBA0);
Write(manager+0x10,owner);Write(manager+0x110,buckets);Write(manager+0x118,2UL);Write(manager+0x128,1UL);Write(manager+0xD0,86400UL);
Write(buckets,node);Write(buckets+8,buckets+8);Write(node,buckets);Write(node+8,9007199254740995UL);Write(node+0x10,1700000000UL);
uint passed=0;
if(CopyGalaxyTradeDataManager(manager,owner,fakeImage,out var ttl,out var items)&&ttl==86400&&
items.Length==1&&items[0].systemAddress==9007199254740995&&items[0].timestamp==1700000000)passed|=1;
if(!new GalaxyAccountTradeData(1,2,ttl,items).complete)passed|=2;
Write(manager+0x128,16385UL);if(!CopyGalaxyTradeDataManager(manager,owner,fakeImage,out _,out _))passed|=4;
Write(manager+0x128,1UL);Write(node,node);if(!CopyGalaxyTradeDataManager(manager,owner,fakeImage,out _,out _))passed|=8;
Write(node,buckets);Write(node+8,0UL);if(!CopyGalaxyTradeDataManager(manager,owner,fakeImage,out _,out _))passed|=16;
Write(node+8,9007199254740995UL);Write(manager+0x10,owner+8);if(!CopyGalaxyTradeDataManager(manager,owner,fakeImage,out _,out _))passed|=32;
Write(manager+0x10,owner);Write(manager+0x118,65537UL);if(!CopyGalaxyTradeDataManager(manager,owner,fakeImage,out _,out _))passed|=64;
Write(manager+0x118,2UL);Write(manager+0x128,0UL);Write(buckets,buckets);
if(CopyGalaxyTradeDataManager(manager,owner,fakeImage,out ttl,out items)&&items.Length==0&&
!new GalaxyAccountTradeData(1,2,ttl,items).complete)passed|=128;
return passed;
}
finally{Platform.Free(memory);}
}
#if PLUGIN_NAVIGATION
[UnmanagedCallersOnly(EntryPoint="XFENavigationGalaxyTradeDataSelfTest")]
internal static uint ExportGalaxyAccountTradeSelfTest()=>RunTest(GalaxyAccountTradeSelfTest);
#endif
}