forked from Mirrors/openclonk
Add test case for #973
parent
68e023651a
commit
7829631f66
|
@ -0,0 +1,5 @@
|
|||
[Head]
|
||||
Title=Test case for #973
|
||||
|
||||
[Definitions]
|
||||
LocalOnly=1
|
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
* OpenClonk, http://www.openclonk.org
|
||||
*
|
||||
* Copyright (c) 2013 Nicolas Hake
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
* See isc_license.txt for full license and disclaimer.
|
||||
*
|
||||
* "Clonk" is a registered trademark of Matthes Bender.
|
||||
* See clonk_trademark_license.txt for full license.
|
||||
*/
|
||||
|
||||
/* Issue #973: {Find,Sort}_* with no origin should use the FindObject call's
|
||||
* context object instead of 0,0 */
|
||||
|
||||
func Initialize()
|
||||
{
|
||||
// Setup testing environment: one object for context, a second object at the context object, one object at 0,0
|
||||
var ctx = CreateObject(Dummy, 100, 100, NO_OWNER);
|
||||
ctx->SetName("ctx");
|
||||
var at_origin = CreateObject(Dummy, 0, 0, NO_OWNER);
|
||||
at_origin->SetName("at_origin");
|
||||
var at_object = CreateObject(Dummy, ctx->GetX(), ctx->GetY(), NO_OWNER);
|
||||
at_object->SetName("at_object");
|
||||
|
||||
TEST("object context Find_Distance");
|
||||
EXPECT_EQ(at_object, ctx->FindObject(Find_Exclude(ctx), Find_Distance(1)));
|
||||
|
||||
TEST("global context Find_Distance");
|
||||
EXPECT_EQ(at_origin, FindObject(Find_Exclude(ctx), Find_Distance(1, at_origin->GetX(), at_origin->GetY())));
|
||||
EXPECT_EQ(at_object, FindObject(Find_Exclude(ctx), Find_Distance(1, at_object->GetX(), at_object->GetY())));
|
||||
|
||||
TEST("object context Find_InRect");
|
||||
EXPECT_EQ(at_object, ctx->FindObject(Find_Exclude(ctx), Find_InRect(0, 0, 1, 1)));
|
||||
EXPECT_EQ(at_origin, ctx->FindObject(Find_Exclude(ctx), Find_InRect(-ctx->GetX(), -ctx->GetY(), 1, 1)));
|
||||
|
||||
TEST("global context Find_InRect");
|
||||
EXPECT_EQ(at_origin, FindObject(Find_Exclude(ctx), Find_InRect(at_origin->GetX(), at_origin->GetY(), 1, 1)));
|
||||
EXPECT_EQ(at_object, FindObject(Find_Exclude(ctx), Find_InRect(at_object->GetX(), at_object->GetY(), 1, 1)));
|
||||
|
||||
TEST("object context Sort_Distance");
|
||||
EXPECT_EQ(at_object, ctx->FindObject(Find_Exclude(ctx), Sort_Distance() ));
|
||||
EXPECT_EQ(at_origin, ctx->FindObject(Find_Exclude(ctx), Sort_Reverse(Sort_Distance())));
|
||||
|
||||
TEST("global context Sort_Distance");
|
||||
EXPECT_EQ(at_object, FindObject(Find_Exclude(ctx), Sort_Distance(at_object->GetX(), at_object->GetY()) ));
|
||||
EXPECT_EQ(at_origin, FindObject(Find_Exclude(ctx), Sort_Distance(at_origin->GetX(), at_origin->GetY()) ));
|
||||
EXPECT_EQ(at_object, FindObject(Find_Exclude(ctx), Sort_Reverse(Sort_Distance(at_origin->GetX(), at_origin->GetY()))));
|
||||
|
||||
END_TEST();
|
||||
GameOver();
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
US:#973: Find_Distance should respect FindObject context
|
Loading…
Reference in New Issue