App/Test: implement unit test for PR #7250
This commit is contained in:
@@ -1991,6 +1991,7 @@ void Application::initTypes()
|
||||
App ::GeoFeature ::init();
|
||||
App ::FeatureTest ::init();
|
||||
App ::FeatureTestException ::init();
|
||||
App ::FeatureTestColumn ::init();
|
||||
App ::FeaturePython ::init();
|
||||
App ::GeometryPython ::init();
|
||||
App ::Document ::init();
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
|
||||
#include "FeatureTest.h"
|
||||
#include "Material.h"
|
||||
#include "Range.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning( disable : 4700 )
|
||||
@@ -179,6 +180,7 @@ DocumentObjectExecReturn *FeatureTest::execute()
|
||||
return DocumentObject::StdReturn;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
PROPERTY_SOURCE(App::FeatureTestException, App::FeatureTest)
|
||||
|
||||
@@ -195,3 +197,21 @@ DocumentObjectExecReturn *FeatureTestException::execute()
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
PROPERTY_SOURCE(App::FeatureTestColumn, App::DocumentObject)
|
||||
|
||||
|
||||
FeatureTestColumn::FeatureTestColumn()
|
||||
{
|
||||
ADD_PROPERTY_TYPE(Column, ("A"), "Test", App::Prop_None, "");
|
||||
ADD_PROPERTY_TYPE(Silent, (false), "Test", App::Prop_None, "");
|
||||
ADD_PROPERTY_TYPE(Value, (0L), "Test", App::Prop_Output, "");
|
||||
}
|
||||
|
||||
DocumentObjectExecReturn *FeatureTestColumn::execute()
|
||||
{
|
||||
Value.setValue(decodeColumn(Column.getStrValue(), Silent.getValue()));
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -134,6 +134,23 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class FeatureTestColumn : public DocumentObject
|
||||
{
|
||||
PROPERTY_HEADER_WITH_OVERRIDE(App::FeatureTestColumn);
|
||||
|
||||
public:
|
||||
FeatureTestColumn();
|
||||
|
||||
// Standard Properties (PropertyStandard.h)
|
||||
App::PropertyString Column;
|
||||
App::PropertyBool Silent;
|
||||
App::PropertyInteger Value;
|
||||
|
||||
/** @name methods override Feature */
|
||||
//@{
|
||||
DocumentObjectExecReturn *execute() override;
|
||||
//@}
|
||||
};
|
||||
|
||||
|
||||
} //namespace App
|
||||
|
||||
@@ -2182,3 +2182,127 @@ class DocumentObserverCases(unittest.TestCase):
|
||||
#closing doc
|
||||
FreeCAD.removeDocumentObserver(self.Obs)
|
||||
self.Obs = None
|
||||
|
||||
class FeatureTestColumn(unittest.TestCase):
|
||||
def setUp(self):
|
||||
doc = FreeCAD.newDocument("TestColumn")
|
||||
self.obj = doc.addObject("App::FeatureTestColumn", "Column")
|
||||
|
||||
def testEmpty(self):
|
||||
value = self.obj.Value
|
||||
self.obj.Column = ""
|
||||
self.assertFalse(self.obj.recompute())
|
||||
self.assertEqual(self.obj.Value, value)
|
||||
|
||||
def testA(self):
|
||||
self.obj.Column = "A"
|
||||
self.obj.recompute()
|
||||
self.assertEqual(self.obj.Value, 0)
|
||||
|
||||
def testZ(self):
|
||||
self.obj.Column = "Z"
|
||||
self.obj.recompute()
|
||||
self.assertEqual(self.obj.Value, 25)
|
||||
|
||||
def testAA(self):
|
||||
self.obj.Column = "AA"
|
||||
self.obj.recompute()
|
||||
self.assertEqual(self.obj.Value, 26)
|
||||
|
||||
def testAB(self):
|
||||
self.obj.Column = "AB"
|
||||
self.obj.recompute()
|
||||
self.assertEqual(self.obj.Value, 27)
|
||||
|
||||
def testAZ(self):
|
||||
self.obj.Column = "AZ"
|
||||
self.obj.recompute()
|
||||
self.assertEqual(self.obj.Value, 51)
|
||||
|
||||
def testBA(self):
|
||||
self.obj.Column = "BA"
|
||||
self.obj.recompute()
|
||||
self.assertEqual(self.obj.Value, 52)
|
||||
|
||||
def testCB(self):
|
||||
self.obj.Column = "CB"
|
||||
self.obj.recompute()
|
||||
self.assertEqual(self.obj.Value, 79)
|
||||
|
||||
def testZA(self):
|
||||
self.obj.Column = "ZA"
|
||||
self.obj.recompute()
|
||||
self.assertEqual(self.obj.Value, 676)
|
||||
|
||||
def testZZ(self):
|
||||
self.obj.Column = "ZZ"
|
||||
self.obj.recompute()
|
||||
self.assertEqual(self.obj.Value, 701)
|
||||
|
||||
def testAAA(self):
|
||||
self.obj.Column = "AAA"
|
||||
self.obj.recompute()
|
||||
self.assertEqual(self.obj.Value, 702)
|
||||
|
||||
def testAAZ(self):
|
||||
self.obj.Column = "AAA"
|
||||
self.obj.recompute()
|
||||
self.assertEqual(self.obj.Value, 727)
|
||||
|
||||
def testCBA(self):
|
||||
self.obj.Column = "CBA"
|
||||
self.obj.recompute()
|
||||
self.assertEqual(self.obj.Value, 2080)
|
||||
|
||||
def testAZA(self):
|
||||
self.obj.Column = "AZA"
|
||||
self.obj.recompute()
|
||||
self.assertEqual(self.obj.Value, 1352)
|
||||
|
||||
def testZZA(self):
|
||||
self.obj.Column = "ZZA"
|
||||
self.obj.recompute()
|
||||
self.assertEqual(self.obj.Value, 18252)
|
||||
|
||||
def testZZZ(self):
|
||||
self.obj.Column = "ZZZ"
|
||||
self.obj.recompute()
|
||||
self.assertEqual(self.obj.Value, 18277)
|
||||
|
||||
def testALL(self):
|
||||
self.obj.Column = "ALL"
|
||||
self.obj.recompute()
|
||||
self.assertEqual(self.obj.Value, 999)
|
||||
|
||||
def testAb(self):
|
||||
value = self.obj.Value
|
||||
self.obj.Column = "Ab"
|
||||
self.assertFalse(self.obj.recompute())
|
||||
self.assertEqual(self.obj.Value, value)
|
||||
|
||||
def testABCD(self):
|
||||
value = self.obj.Value
|
||||
self.obj.Column = "ABCD"
|
||||
self.assertFalse(self.obj.recompute())
|
||||
self.assertEqual(self.obj.Value, value)
|
||||
|
||||
def testEmptySilent(self):
|
||||
self.obj.Column = ""
|
||||
self.obj.Silent = True
|
||||
self.assertTrue(self.obj.recompute())
|
||||
self.assertEqual(self.obj.Value, -1)
|
||||
|
||||
def testAbSilent(self):
|
||||
self.obj.Column = "Ab"
|
||||
self.obj.Silent = True
|
||||
self.assertTrue(self.obj.recompute())
|
||||
self.assertEqual(self.obj.Value, -1)
|
||||
|
||||
def testABCDSilent(self):
|
||||
self.obj.Column = "ABCD"
|
||||
self.obj.Silent = True
|
||||
self.assertTrue(self.obj.recompute())
|
||||
self.assertEqual(self.obj.Value, -1)
|
||||
|
||||
def tearDown(self):
|
||||
FreeCAD.closeDocument("TestColumn")
|
||||
|
||||
Reference in New Issue
Block a user