chore: Test updates
There was an issue in the pattern tests that meant config options where skipped as soon as a static number of string was encountered I've also added testing for non-human models (dolls, giants) as it seems some patterns to not pass the antperson test so this would be a way to catch that (and enforce it)
This commit is contained in:
parent
11d8640fc8
commit
b3fdac8c8c
3 changed files with 73 additions and 4 deletions
|
@ -110,7 +110,9 @@ const testPatternConfig = (design, pattern, expect, models, patterns) => {
|
||||||
* Test validity of the pattern's options
|
* Test validity of the pattern's options
|
||||||
*/
|
*/
|
||||||
it('Pattern options:', () => true)
|
it('Pattern options:', () => true)
|
||||||
|
console.log(pattern.config.options)
|
||||||
for (let name in pattern.config.options) {
|
for (let name in pattern.config.options) {
|
||||||
|
console.log(name)
|
||||||
let option = pattern.config.options[name]
|
let option = pattern.config.options[name]
|
||||||
let type = typeof option
|
let type = typeof option
|
||||||
if (type === 'object' && typeof option.pct !== 'undefined') {
|
if (type === 'object' && typeof option.pct !== 'undefined') {
|
||||||
|
@ -184,10 +186,10 @@ const testPatternConfig = (design, pattern, expect, models, patterns) => {
|
||||||
})
|
})
|
||||||
} else if (type === 'number') {
|
} else if (type === 'number') {
|
||||||
// Static number
|
// Static number
|
||||||
return true
|
it(` - '${name}' is a static number`, () => true)
|
||||||
} else if (type === 'string') {
|
} else if (type === 'string') {
|
||||||
// Static string
|
// Static string
|
||||||
return true
|
it(` - '${name}' is a static string`, () => true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ const testPatternDrafting = (design, Pattern, expect, models, patterns) => {
|
||||||
* Draft pattern for different models
|
* Draft pattern for different models
|
||||||
*/
|
*/
|
||||||
if (isGarment(design)) {
|
if (isGarment(design)) {
|
||||||
it('Draft for different models:', () => true)
|
it('Draft for human models:', () => true)
|
||||||
|
|
||||||
for (let size in ourModels) {
|
for (let size in ourModels) {
|
||||||
it(` - Drafting for ${size} (${breasts ? 'with' : 'no'} breasts)`, () => {
|
it(` - Drafting for ${size} (${breasts ? 'with' : 'no'} breasts)`, () => {
|
||||||
|
@ -54,6 +54,39 @@ const testPatternDrafting = (design, Pattern, expect, models, patterns) => {
|
||||||
).to.equal(true)
|
).to.equal(true)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do the same for fantistical models (dolls, giants)
|
||||||
|
it('Draft for non-human models:', () => true)
|
||||||
|
|
||||||
|
const fractionModel = fraction => {
|
||||||
|
const model = {}
|
||||||
|
for (const [measie, value] of Object.entries(ourModels.size40)) {
|
||||||
|
model[measie] = value * fraction
|
||||||
|
}
|
||||||
|
|
||||||
|
return model
|
||||||
|
}
|
||||||
|
const models = {
|
||||||
|
// These are just names, don't read too much into it
|
||||||
|
'Gnome (0.1)': fractionModel(0.1),
|
||||||
|
'Halfling (0.2)': fractionModel(0.2),
|
||||||
|
'Goblin (0.5)': fractionModel(0.5),
|
||||||
|
'Dwarf (0.75)': fractionModel(0.75),
|
||||||
|
'Elf (1.5)': fractionModel(1.5),
|
||||||
|
'Ogre (2.5)': fractionModel(2.5),
|
||||||
|
'Firbolg (5)': fractionModel(5),
|
||||||
|
}
|
||||||
|
for (let size in models) {
|
||||||
|
it(` - Drafting for ${size} (${breasts ? 'with' : 'no'} breasts)`, () => {
|
||||||
|
expect(
|
||||||
|
doesItDraft(
|
||||||
|
new Pattern({
|
||||||
|
measurements: models[size]
|
||||||
|
})
|
||||||
|
)
|
||||||
|
).to.equal(true)
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -73,7 +73,7 @@ const testPatternSampling = (design, Pattern, expect, models, patterns) => {
|
||||||
/*
|
/*
|
||||||
* Sample pattern for different models
|
* Sample pattern for different models
|
||||||
*/
|
*/
|
||||||
it('Sample pattern for different models:' , () => {
|
it('Sample pattern for size range:' , () => {
|
||||||
expect(doesItSample(new Pattern({
|
expect(doesItSample(new Pattern({
|
||||||
sample: {
|
sample: {
|
||||||
type: 'models',
|
type: 'models',
|
||||||
|
@ -84,6 +84,40 @@ const testPatternSampling = (design, Pattern, expect, models, patterns) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (['rendertest', 'tutorial', 'examples'].indexOf(design) === -1) {
|
||||||
|
/*
|
||||||
|
* Sample pattern with fractional sizes (antperson tests)
|
||||||
|
*/
|
||||||
|
const fractionModel = fraction => {
|
||||||
|
const model = {}
|
||||||
|
for (const [measie, value] of Object.entries(ourModels.size40)) {
|
||||||
|
model[measie] = value * fraction
|
||||||
|
}
|
||||||
|
|
||||||
|
return model
|
||||||
|
}
|
||||||
|
const models = {
|
||||||
|
oneTenth: fractionModel(0.1),
|
||||||
|
oneFifth: fractionModel(0.2),
|
||||||
|
oneHalf: fractionModel(0.5),
|
||||||
|
threeQuarters: fractionModel(0.5),
|
||||||
|
oneFifty: fractionModel(1.5),
|
||||||
|
twoFifty: fractionModel(2.5),
|
||||||
|
five: fractionModel(5),
|
||||||
|
ten: fractionModel(10),
|
||||||
|
}
|
||||||
|
|
||||||
|
it('Sample pattern for fantastic measurements:' , () => {
|
||||||
|
expect(doesItSample(new Pattern({
|
||||||
|
sample: {
|
||||||
|
type: 'models',
|
||||||
|
models,
|
||||||
|
},
|
||||||
|
measurements
|
||||||
|
}))).to.equal(true)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = testPatternSampling
|
module.exports = testPatternSampling
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue