objectsemantics / smallsuitegenerator Goto Github PK
View Code? Open in Web Editor NEWPowered by SEMANTICS SRL
Home Page: http://semantics.bo
License: MIT License
Powered by SEMANTICS SRL
Home Page: http://semantics.bo
License: MIT License
CompiledMethod>>isAbstract
^ self isShort and:[ self messages anySatisfy:[:m | m = #subclassResponsibility]].
CompiledMethod>>isReturnField
|c a b|
self isShort ifFalse:[ ^ false].
a := false.
b := false.
c := 0.
self withAllBlockMethodsDo:[ :meth |
|scanner |
scanner := InstructionStream on: meth.
scanner scanFor: [ :byte |
c isZero
ifTrue:[ a:= scanner isLoadInst.].
c =1 ifTrue:[ b:= scanner willReturn].
c := c+1.
false.
].
].
^ (c = 2 and:[ a]) and:[ b].
InstructionStream>>isLoadInst
| byte |
byte := self baseBytecodeAt: self pc.
^ byte between: OpLoadInst and: (OpLoadInst+MaxLoadInst)
What does it mean?
Here is another error:
smallSuiteGenerator := SSmallSuiteGenerator newInstance.
smallSuiteGenerator seed: [RTRoassalExample new exampleAligningGroups ];
profilingOnClass: RTView;
fitness: (SMultiFitnessFunction
with: SMethodCoverage;
with: SStatementCoverage).
smallSuiteGenerator classNameOfTest: 'DemoRoassalTest'.
smallSuiteGenerator run.
The error I get is that nil
is passed to RTView>>add:
. This is weird because the following code
(SSGenerator
profile: [RTRoassalExample new exampleAligningGroups ]
onClass: RTView) asTypeInfo.
does not report nil
as a possible value.
We need to make some simple experiment to show this.
Integration of SmallSuiteTestCase with project Mutalk
El instalador debe tener dos opciones, cargar ambos, o solo cargar el código sin test.
All packages are instrumented even when these are extensions. This must be modified because it's necessary save instances that don't belong package's classes to.
If SGAEngine is executed with default values, it means with 100 statements, an error is showed because the method does not support more than a certain number of statements.
Currently, the examples provided in the readme page do not work. We need some a reliable documentation :-)
We should use Roassal2 to display this graphic. You can take inspiration from https://agileartificialintelligence.github.io/book/build/10-GeneticAlgorithm.html
why is generating that statement, review
Cree un nuevo paquete llamado Demo, y puse un test dentro. El mismo no aparecía en la lista de paquetes. Luego pense que era pq mi paquete no tenia la palabra test, lo renombre a Demo-Test ... y tampoco aparecio. Luego renombre a Demo-Tests y recien aparecicio.
Los paquetes no necesariamente tienen que tener el keyword Tests, deber inspecionar las clases del paquete y ver si existe alguna que herede de TestCase, (directa o indirectamente isKindOf)... seguro hay mas test en la imagen y no los estamos viendo
Migrate parcels of VW8 to VW7
I have generated the test code given below. It does some self assert: _var1 initializeContent equals: RTView new.
I think that there is no trivial solution to this. We should not generate such assertions.
test4
| _var0 _var1 _var2 _var3 _var4 _var5 _var6 _var7 _var8 _var9 _var10 _var11 _var12 _var13 _var14 _var15 _var16 _var17 _var18 _var19 _var20 _var21 _var22 _var23 _var24 _var25 _var26 _var27 _var28 _var29 _var30 _var31 |
_var0 := RTElement new.
_var1 := RTView new.
_var2 := RTEdge new.
_var3 := RTElement new.
_var4 := RTEdge new.
_var5 := _var1 add: _var4.
_var6 := TRCanvas new.
_var7 := _var1 initializeContent.
_var8 := RTGroup new.
_var9 := _var1 addAll: _var8.
_var10 := RTEdge new.
_var11 := TRCanvas new.
_var12 := RTElement new.
_var13 := RTView new.
_var14 := _var1 initialize.
_var15 := RTView new.
_var16 := RTGroup new.
_var17 := _var1 addAll: _var8.
_var18 := _var1 addElement: _var12.
_var19 := _var1 add: _var4.
_var20 := TRCanvas new.
_var21 := _var1 addElement: _var3.
_var22 := RTElement new.
_var23 := TRCanvas new.
_var24 := _var1 initializeContent.
_var25 := _var1 addElement: _var0.
_var26 := _var1 setCanvas: _var11.
_var27 := _var5 initialize.
_var28 := _var1 addElement: _var12.
_var29 := RTView new.
_var30 := RTView new.
_var31 := RTElement new.
self assert: _var0 className equals: 'RTElement'.
self assert: _var1 className equals: 'RTView'.
self assert: _var1 initializeContent equals: RTView new.
self assert: _var2 className equals: 'RTEdge'.
self assert: _var3 className equals: 'RTElement'.
self assert: _var4 className equals: 'RTEdge'.
self assert: _var5 className equals: 'RTView'.
self assert: _var5 initializeContent equals: RTView new.
self assert: _var6 className equals: 'TRCanvas'.
self assert: _var7 className equals: 'RTView'.
self assert: _var7 initializeContent equals: RTView new.
self assert: _var8 isEmpty.
self assert: _var8 equals: RTGroup new.
self assert: _var8 asString equals: 'a RTGroup()'.
self assert: _var9 className equals: 'RTView'.
self assert: _var9 initializeContent equals: RTView new.
self assert: _var10 className equals: 'RTEdge'.
self assert: _var11 className equals: 'TRCanvas'.
self assert: _var12 className equals: 'RTElement'.
self assert: _var13 className equals: 'RTView'.
self assert: _var13 initializeContent equals: RTView new.
self assert: _var14 className equals: 'RTView'.
self assert: _var14 initializeContent equals: RTView new.
self assert: _var15 className equals: 'RTView'.
self assert: _var15 initializeContent equals: RTView new.
self assert: _var16 isEmpty.
self assert: _var16 equals: RTGroup new.
self assert: _var16 asString equals: 'a RTGroup()'.
self assert: _var17 className equals: 'RTView'.
self assert: _var17 initializeContent equals: RTView new.
self assert: _var18 className equals: 'RTView'.
self assert: _var18 initializeContent equals: RTView new.
self assert: _var19 className equals: 'RTView'.
self assert: _var19 initializeContent equals: RTView new.
self assert: _var20 className equals: 'TRCanvas'.
self assert: _var21 className equals: 'RTView'.
self assert: _var21 initializeContent equals: RTView new.
self assert: _var22 className equals: 'RTElement'.
self assert: _var23 className equals: 'TRCanvas'.
self assert: _var24 className equals: 'RTView'.
self assert: _var24 initializeContent equals: RTView new.
self assert: _var25 className equals: 'RTView'.
self assert: _var25 initializeContent equals: RTView new.
self assert: _var26 className equals: 'RTView'.
self assert: _var26 initializeContent equals: RTView new.
self assert: _var27 className equals: 'RTView'.
self assert: _var27 initializeContent equals: RTView new.
self assert: _var28 className equals: 'RTView'.
self assert: _var28 initializeContent equals: RTView new.
self assert: _var29 className equals: 'RTView'.
self assert: _var29 initializeContent equals: RTView new.
self assert: _var30 className equals: 'RTView'.
self assert: _var30 initializeContent equals: RTView new.
self assert: _var31 className equals: 'RTElement'
I tried the following:
smallSuiteGenerator := SSmallSuiteGenerator newInstance.
smallSuiteGenerator seed: [RTRoassalExample new exampleAligningGroups].
smallSuiteGenerator fitness: (SMultiFitnessFunction
with: SMethodCoverage;
with: SStatementCoverage).
smallSuiteGenerator profilingOnClass: RTView.
smallSuiteGenerator classNameOfTest: 'GeneratedRTViewTest'.
smallSuiteGenerator run.
It indeed produces the class GeneratedRTViewTest
with some test methods.
All the test methods are green, which is very good.
I wanted to know about the fitness evolution, so I tried:
smallSuiteGenerator engine logs collect: #fitness
But this gives me:
Which means that the fitness is not increasing.
I wanted to see what's going on, so I run Hapao on it.
I put the generated class in a new package called TTTTT
and run hapao on Roassal-Core
and the new package TTTTT
.
The method addAll:
is not covered by Hapao. This means that the generated test does not call it (I did not verify this). But the code in exampleAligningGroups
actually do call addAll:
. Something is very weird here. I would guess that addAll:
should be called by the generated tests
Update of TestCase's AST and cleaning of code in Core
Check if we can give more meaningful names to variables. Instead of having _varX
, give _aLabelX
if the variable points to a RTLabel
for example...
We should be able to define new fitness. For example, which accepts the dictionary as argument.
We should also support multi-objective fitness function. Have a look at: https://en.wikipedia.org/wiki/Multi-objective_optimization
El error es porque busca el método allTestSelectors. Este método existían antes, pero por alguna razon cuando sale un error o un test falla, no se puede encontrar ese método.
Currently it seems to only work on Pharo 7. When loaded in Pharo 8, the class SSTypeCollector
does not exist
Classes that have implemented methods in class side and these are not factoty methods, they are created as factoryMessages, e.g:
SFoo score.
If the message 'score' just returns a number it can be added in testCase, as follows:
_var0 := SmallInteger score.
Because the return type of this expression is added
Each generated should should have a descriptive comment. For example, also como:
test3
"
Fitness = ZZ
This test covers XX % of the class YY
"
| _var0 _var1 _var2 _var3 _var4 _var5 _var6 _var7 _var8 _var9 _var10 _var11 _var12 _var13 _var14 _var15 _var16 _var17 _var18 _var19 _var20 _var21 _var22 _var23 _var24 _var25 _var26 |
_var0 := RTElement new.
...
We should be able to do some structural equality, if the message =
is not defined.
It's necessary add tests for Exception classes which manage different kind of exceptions in tests generation.
For example the case for SMessageNotUnderstood
would be:
| testCase aException |
testCase := SSTestCase
with: utility typeInfosOnPackageExamplesOthers first.
testCase addMessage: #canRegister: from: #SEvent.
SStatementCoverage
coverageOf: [ | aConference aPerson |
aConference := SConference new offerPrice: 95.
aPerson := SStudent new name: 'Mary'.
aConference canRegister: aPerson ]
onPackagesMatching: 'SmallSuiteGenerator-Examples-Others'.
self
assertCollection: (testCase statements collect: #printString)
hasSameElements:
(Array
with: '_var0 := SEvent new.'
with: '_var1 := ' , (SStudent new name: 'Mary') storeString , '.'
with: '_var2 := _var0 canRegister: _var1.').
SStatementCoverage compileTestCase: testCase.
self
should: [ SStatementCoverage executeStatements ]
raise: MessageNotUnderstood.
[ SStatementCoverage executeStatements ]
on: Exception
do: [ :exception | aException := exception ].
self assert: (SMessageNotUnderstood canResolve: aException)
If the found patterns were considered in the test generation maybe it wouldn't be necessary
I think that the problem is when you do cross over.... or maybe you are fixing the code after the cross over... please check
If we apply the new implementation of isReturnField and isAbstract, this method is not necesary, because we do not need anymore the code, we do that at bytecode level.
We should be able to provide a random number generator to STestCaseFactory
. Algo como STestCaseFactory new random: (Random seed: 42)
.
In that case, if we execute twice the same test generation, we should obtain the very very same generated tests.
Some variables in visual works have generic names generated by the compiler ... we should have readable variable..
Now it seems that the number of generations is the same than the number of generated tests, which is not good
If the methodClass doesn't have its typeInfo, an statement with the selector of this methodClass is created and if it has argTypes, they aren't created and the statement is created without args. E.g:
If it's added:
_var0 := RTCircleGeometry new.
and it has problems, it is necessary change its selector by another and in this case the other option is: center:radius:, but like this does not have its typeInfo, it's added:
_var0 := RTCircleGeometry center:radius:
instead
debería haber un botón en el menú principal..
367 samples, 530.6 average ms/sample, 3051 scavenges, 12 incGCs,
4.46s active, 190.22s other processes,
194.73s real time, 0.06s profiling overhead
** Tree **
100.0 BlockClosure [] in VWTestRunner.TestRunner>>profileTests
100.0 VWTestRunner.TestRunner>>runTests
99.5 BlockClosure>>ensure:
99.5 [] in VWTestRunner.TestRunner>>runTests
99.5 BlockClosure>>ifCurtailed:
99.5 [] in [] in VWTestRunner.TestRunner>>runTests
99.5 SUnit.TestSuite>>run
99.5 SUnit.TestSuite>>runTests
99.5 SUnit.TestSuite>>runUsing:
99.5 SUnit.Results class>>collectWhile:
99.5 SUnit.Results>>collectWhile:
99.5 BlockClosure>>ensure:
99.5 [] in SUnit.TestSuite>>runUsing:
99.5 Dictionary>>keysAndValuesDo:
99.5 [] in [] in SUnit.TestSuite>>runUsing:
99.5 Object>>ifNotNil:
99.5 [] in [] in [] in SUnit.TestSuite>>runUsing:
99.5 BlockClosure>>ensure:
99.5 [] in [] in [] in [] in SUnit.TestSuite>>runUsing:
99.5 SUnit.TestSuite>>testCasesFrom:do:
99.5 SUnit.TestSuite>>testCasesFrom:randomDo:
99.5 SequenceableCollection>>do:
99.5 [] in SUnit.TestSuite>>testCasesFrom:randomDo:
99.5 [] in SUnit.TestSuite>>runTests
99.5 SUnit.TestCase>>run
99.5 BlockClosure>>on:do:
99.5 [] in SUnit.TestCase>>run
99.5 SUnit.TestCase>>doTestCycle
99.5 BlockClosure>>ensure:
99.5 [] in SUnit.TestCase>>doTestCycle
99.5 SUnit.TestCase>>performTest
99.5 PTests>>test1
99.5 SmallSuiteGenerator.SConfigGenerationTestCase class>>generateTests
99.3 SmallSuiteGenerator.STestCaseFactory>>createTestCases
58.2 SmallSuiteGenerator.STestCaseFactory>>tearDown
58.2 SmallSuiteGenerator.STestCaseFactory>>exportTests
55.2 SequenceableCollection>>doWithIndex:
55.2 [] in SmallSuiteGenerator.STestCaseFactory>>exportTests
37.0 SmallSuiteGenerator.STestCaseFactory>>unboundMethodwith:with:
23.8 BlockClosure>>on:do:
23.8 [] in SmallSuiteGenerator.STestCaseFactory>>unboundMethodwith:with:
22.6 SmallSuiteGenerator.SSTestShifter>>generateAssertions
22.6 SmallSuiteGenerator.SSTestShifter>>generateAssertions:
22.2 SequenceableCollection>>flatCollect:
22.2 SequenceableCollection>>do:
22.2 [] in SequenceableCollection>>flatCollect:
22.2 [] in SmallSuiteGenerator.SSTestShifter>>generateAssertions:
22.2 SmallSuiteGenerator.SInspectorAssertion class>>for:
22.2 SequenceableCollection>>flatCollect:
22.2 SequenceableCollection>>do:
22.2 [] in SequenceableCollection>>flatCollect:
22.2 [] in SmallSuiteGenerator.SInspectorAssertion class>>for:
22.2 SmallSuiteGenerator.SInspectorAssertion class>>inspectorAssertionOf:
22.2 OrderedCollection>>select:
22.2 OrderedCollection>>do:
22.2 [] in OrderedCollection>>select:
21.8 Symbol>>value:
21.8 CompiledMethod>>isReturnField
17.5 CompiledMethod>>getSource
17.5 CompiledMethod>>methodSources
17.5 SourceFileManager>>methodSourceAt:ifAbsent:
17.5 SourceFileManager>>retrieveMethodSourceAt:using:ifAbsent:
12.3 BlockClosure>>on:do:
11.7 [] in SourceFileManager>>retrieveMethodSourceAt:using:ifAbsent:
11.7 XMLSourceFileFormat>>methodSourceAt:in:
11.7 BlockClosure>>on:do:
11.7 [] in XMLSourceFileFormat>>methodSourceAt:in:
11.4 XML.XMLParser>>parseElement:
8.2 XML.XMLParser>>on:
8.2 XML.XMLParser>>wrapDataSource:
13.2 SmallSuiteGenerator.STestCaseFactory>>getClassOf:
13.2 UndefinedObject>>ifNil:
13.2 [] in SmallSuiteGenerator.STestCaseFactory>>getClassOf:
13.2 SmallSuiteGenerator.SPlatform class>>createTestCaseClass:inPackage:
13.2 SmallSuiteGenerator.SPlatformVisualWorks class>>createTestCaseClass:inPackage:
13.0 ClassBuilder>>reviseSystem
13.0 ClassBuilder>>reviseSystemSilently
13.0 SystemUtils class>>modifySystem:
13.0 BlockClosure>>ensure:
13.0 BlockClosure>>valueAsUnwindBlockFrom:
13.0 [] in SystemUtils class>>modifySystem:
13.0 SystemUtils class>>linkSystem
13.0 SequenceableCollection>>do:
8.5 [] in SystemUtils class>>linkSystem
18.1 SmallSuiteGenerator.STestCaseFactory>>export:with:
12.5 BlockClosure>>on:do:
12.5 [] in SmallSuiteGenerator.STestCaseFactory>>export:with:
11.2 SmallSuiteGenerator.SSTestShifter>>generateAssertions
11.2 SmallSuiteGenerator.SSTestShifter>>generateAssertions:
11.1 SequenceableCollection>>flatCollect:
11.1 SequenceableCollection>>do:
11.1 [] in SequenceableCollection>>flatCollect:
11.1 [] in SmallSuiteGenerator.SSTestShifter>>generateAssertions:
11.1 SmallSuiteGenerator.SInspectorAssertion class>>for:
11.1 SequenceableCollection>>flatCollect:
11.1 SequenceableCollection>>do:
11.1 [] in SequenceableCollection>>flatCollect:
11.1 [] in SmallSuiteGenerator.SInspectorAssertion class>>for:
11.1 SmallSuiteGenerator.SInspectorAssertion class>>inspectorAssertionOf:
11.1 OrderedCollection>>select:
11.1 OrderedCollection>>do:
11.1 [] in OrderedCollection>>select:
11.1 Symbol>>value:
11.1 CompiledMethod>>isReturnField
9.8 CompiledMethod>>getSource
9.8 CompiledMethod>>methodSources
9.8 SourceFileManager>>methodSourceAt:ifAbsent:
9.8 SourceFileManager>>retrieveMethodSourceAt:using:ifAbsent:
5.7 BlockClosure>>on:do:
5.7 [] in SourceFileManager>>retrieveMethodSourceAt:using:ifAbsent:
5.7 XMLSourceFileFormat>>methodSourceAt:in:
5.7 BlockClosure>>on:do:
5.7 [] in XMLSourceFileFormat>>methodSourceAt:in:
5.7 SmallSuiteGenerator.STestCaseFactory>>getClassOf:
5.7 UndefinedObject>>ifNil:
5.7 [] in SmallSuiteGenerator.STestCaseFactory>>getClassOf:
5.7 SmallSuiteGenerator.SPlatform class>>createTestCaseClass:inPackage:
5.7 SmallSuiteGenerator.SPlatformVisualWorks class>>createTestCaseClass:inPackage:
5.7 ClassBuilder>>reviseSystem
5.7 ClassBuilder>>reviseSystemSilently
5.7 SystemUtils class>>modifySystem:
5.7 BlockClosure>>ensure:
5.7 BlockClosure>>valueAsUnwindBlockFrom:
5.7 [] in SystemUtils class>>modifySystem:
5.7 SystemUtils class>>linkSystem
5.7 SequenceableCollection>>do:
34.1 SmallSuiteGenerator.STestCaseFactory>>run
34.1 SmallSuiteGenerator.SGAEngine>>run
23.1 Collection>>do:displayingProgress:
23.1 Interval>>do:
23.1 [] in SmallSuiteGenerator.SGAEngine>>run
16.0 SmallSuiteGenerator.SGAEngine>>doSelection
16.0 SmallSuiteGenerator.SGAEngine>>createNewPopulation
10.0 SmallSuiteGenerator.SSimpleFitnessFunction>>compute:
10.0 SmallSuiteGenerator.SSimpleFitnessFunction>>run:
10.0 SequenceableCollection>>do:
10.0 [] in SmallSuiteGenerator.SSimpleFitnessFunction>>run:
10.0 SmallSuiteGenerator.SSTestCase>>runWithoutAssertions
10.0 SmallSuiteGenerator.SSTestRunner>>runWithoutAssertions:
10.0 SmallSuiteGenerator.SSTestRunner>>compile:
10.0 ClassDescription>>compile:
10.0 ClassDescription>>compile:classified:
10.0 ClassDescription>>compile:classified:notifying:
10.0 ClassDescription>>compile:classified:notifying:attributes:
5.3 ClassDescription>>compile:notifying:attributes:selectorBlock:ifFail:
5.7 SmallSuiteGenerator.SGAEngine>>updateTypeInfoWith:
5.7 OrderedCollection>>do:
5.7 [] in SmallSuiteGenerator.SGAEngine>>updateTypeInfoWith:
5.7 SmallSuiteGenerator.SSTestCase>>runWithoutAssertions
5.7 SmallSuiteGenerator.SSTestRunner>>runWithoutAssertions:
5.7 SmallSuiteGenerator.SSTestRunner>>compile:
5.7 ClassDescription>>compile:
5.7 ClassDescription>>compile:classified:
5.7 ClassDescription>>compile:classified:notifying:
5.7 ClassDescription>>compile:classified:notifying:attributes:
7.1 SmallSuiteGenerator.SGALog class>>logOf:inGeneration:inTime:
7.1 SmallSuiteGenerator.SSimpleFitnessFunction>>runPopulation:
7.1 OrderedCollection>>do:
7.1 [] in SmallSuiteGenerator.SSimpleFitnessFunction>>runPopulation:
7.1 SmallSuiteGenerator.SSTestCase>>runWithoutAssertions
7.1 SmallSuiteGenerator.SSTestRunner>>runWithoutAssertions:
7.1 SmallSuiteGenerator.SSTestRunner>>compile:
7.1 ClassDescription>>compile:
7.1 ClassDescription>>compile:classified:
7.1 ClassDescription>>compile:classified:notifying:
7.1 ClassDescription>>compile:classified:notifying:attributes:
11.0 SmallSuiteGenerator.SGAEngine>>initializePopulation
6.2 SmallSuiteGenerator.SGAEngine>>createRandomPopulation
6.2 Interval>>collect:
6.2 Interval>>do:
6.2 [] in Interval>>collect:
6.2 [] in SmallSuiteGenerator.SGAEngine>>createRandomPopulation
7.0 SmallSuiteGenerator.STestCaseFactory>>setUp
7.0 SmallSuiteGenerator.SGAEngine>>typeInfo:
7.0 SmallSuiteGenerator.STypeInfo>>completeTypeInfo
7.0 Dictionary>>keysDo:
7.0 Dictionary>>keysAndValuesDo:
7.0 [] in Dictionary>>keysDo:
7.0 [] in SmallSuiteGenerator.STypeInfo>>completeTypeInfo
** Totals **
13.0 PCFilename class>>getFileSystemAttributes:
11.6 PCDiskFileAccessor>>TimeProfilerCore_commit
6.3 SequenceableCollection>>do:
5.8 ScreenGraphicsContext>>primDisplayMappedString:from:to:at:withMap:
Something like generatedTestName: #MyTEST;
for example
I need to press the button filter to get the action done. I think would be better if the action may be done also when I press enter...
if a string contains 'a ... (12323123)'
then we should not do a comparison
The following code does not make progress. When I interrupt it, it seems that many TRMorph are created.
smallSuiteGenerator := SSmallSuiteGenerator newInstance.
smallSuiteGenerator seed: [RTRoassalExample new exampleAligningGroups open delete];
profilingOnClass: RTView;
fitness: (SMultiFitnessFunction
with: SMethodCoverage;
with: SStatementCoverage).
smallSuiteGenerator classNameOfTest: 'DemoRoassalTest'.
smallSuiteGenerator run.
One way to fix this, is to have an expression that is evaluated after each fitness evaluation. Something like: TRMorph allInstances do: #delete
First time that I use the installer it throws and error. I executed again, and then work!... but this messages appear in the console
tally is Undeclared
SMemo is Undeclared
RSYLabelDecoration is Undeclared
RSHighlightEvent is Undeclared
Margin is Undeclared
Monitor is Undeclared
SubscriptOutOfBounds is Undeclared
RSGroup is Undeclared
S2Profiler is Undeclared
RSVerticalLineLayout is Undeclared
RSGridLayout is Undeclared
KeyNotFound is Undeclared
RSVerticalTick is Undeclared
RSSparkCircle is Undeclared
RSComposite is Undeclared
RSHorizontalTick is Undeclared
RPackage is Undeclared
TestCase is Undeclared
RSUnHighlightEvent is Undeclared
RSEdgeBuilder is Undeclared
STON is Undeclared
RSLinePlot is Undeclared
RSPolyline is Undeclared
RSCanvasController is Undeclared
RSChart is Undeclared
RSLine is Undeclared
RSBox is Undeclared
OrderedDictionary is Undeclared
RSLabel is Undeclared
TinyLogger is Undeclared
SSTypeCollector is Undeclared
RSLocation is Undeclared
RSCanvas is Undeclared
RSLegend is Undeclared
RSBorder is Undeclared
NeoCSVWriter is Undeclared
RSHorizontalLineLayout is Undeclared
NSScale is Undeclared
RBParser is Undeclared
SystemVersion is Undeclared
RSHighlightable is Undeclared
LinearGradientPaint is Undeclared
Color is Undeclared
Spy2 is Undeclared
This means that there are dependencies that are not there... this may cause several errors....
packagesInfos return nil and not clean
cleanInstrumentation
profiler class removeFromPackages: packageInfos.
For example, at the beginning of each test method we could have:
"
Coverage =
Number of generations =
Number of assertions =
Number of objects =
Number of direct classes =
Number of indirect classes =
Number of messages =
Resume: Involved classes, involved methods.
"
The graphic showing the result should also indicate the worse fitness of a population, and the average fitness of a population.
The reports (such as graphs and comments in the tests) should indicates the coverage for the class, and not the whole application
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.