Spaces:
Running
Running
import random | |
# MBTI type response patterns for generating test data | |
MBTI_PATTERNS = { | |
"INTJ": { | |
"E": [1, 2], "I": [4, 5], "S": [1, 2], "N": [4, 5], | |
"T": [4, 5], "F": [1, 2], "J": [4, 5], "P": [1, 2] | |
}, | |
"ENFP": { | |
"E": [4, 5], "I": [1, 2], "S": [1, 2], "N": [4, 5], | |
"T": [1, 2], "F": [4, 5], "J": [1, 2], "P": [4, 5] | |
}, | |
"ISTJ": { | |
"E": [1, 2], "I": [4, 5], "S": [4, 5], "N": [1, 2], | |
"T": [4, 5], "F": [1, 2], "J": [4, 5], "P": [1, 2] | |
}, | |
"ESTP": { | |
"E": [4, 5], "I": [1, 2], "S": [4, 5], "N": [1, 2], | |
"T": [4, 5], "F": [1, 2], "J": [1, 2], "P": [4, 5] | |
} | |
} | |
def generate_test_data(mbti_type=None, count=1): | |
"""Generate test questionnaire responses""" | |
# Import actual question dimensions | |
import sys | |
import os | |
sys.path.append(os.path.dirname(__file__)) | |
from questionnaire import load_questionnaire | |
questions = load_questionnaire() | |
question_dimensions = {q['id']: q['dimension'] for q in questions} | |
results = [] | |
for _ in range(count): | |
# Choose random type if not specified | |
if mbti_type is None: | |
target_type = random.choice(list(MBTI_PATTERNS.keys())) | |
else: | |
target_type = mbti_type | |
pattern = MBTI_PATTERNS.get(target_type, MBTI_PATTERNS["INTJ"]) | |
responses = {} | |
for question_id, dimension in question_dimensions.items(): | |
# Get response range for this dimension | |
response_range = pattern.get(dimension, [3]) | |
# Add some randomness | |
if random.random() < 0.9: # 90% follow pattern for better accuracy | |
response = random.choice(response_range) | |
else: # 10% random noise | |
response = random.randint(1, 5) | |
responses[question_id] = response | |
results.append({ | |
"target_type": target_type, | |
"responses": responses | |
}) | |
return results if count > 1 else results[0] | |
if __name__ == "__main__": | |
# Test data generation | |
test_data = generate_test_data("INTJ") | |
print(f"Generated test data for INTJ:") | |
print(f"Responses: {test_data['responses']}") | |
# Generate multiple random types | |
multiple_data = generate_test_data(count=3) | |
for i, data in enumerate(multiple_data): | |
print(f"Sample {i+1}: {data['target_type']}") |